As the English medieval writer Geoffrey Chaucer wrote, ‘Time and tide wait for no man’, and so it is with a live conference. Time constraints, which are even more rigid with a virtual conference, often mean that the Q&A session has to be cut short. While this is often a signal that a speaker’s session has been engaging, it is nonetheless frustrating for those whose questions went unanswered.
So, without further ado, we will now turn to those answered questions. Thankfully the DevCon speakers are responding to our request to address those questions, and here they are. More answers will be added when they arrive.
Stefan Kopf, Writing Future-Proof AMPs.
Why extending the WebScrips API is discouraged? How to extend then Share and ADF based applications if a new REST service is required?
Webscripts are not discouraged per-se. But it is not recommended to host massive business logic inside the repository. To extend Share, you will need to create custom webscripts. But if you build an ADF based application, then you should consider hosting your business logic in a separate service outside of the repository.
For some use cases there are no extension mechanism available (like Repo WebScript). What can be done in this case (as it's not recommended to overwrite the file)?
I assume this question is referring to webscripts backing some pages in Share. Problems like these are one of the reasons why we started to invest in a general-purpose REST API and the Alfresco Development Framework a couple of years ago.
In some situations, this is the only available option. But you need to be aware that you need to adopt your changes whenever the base file you are overwriting is changing.
From what version for alfresco, this extension inspector is available?
It currently knows all supported versions of Alfresco starting from 5.2 onwards.
Where can I get the alfresco-extension-inspector?
It has not yet been released yet. However, the plans are to release it in Q1 2021.
Implement policies and behaviours as events can only be done when the business logic can run in a async way and doesn't require transactionality, correct?
Yes correct. We are aware that there are use cases where an extension needs to run code inside the repository. But these use cases are quite rare. You should still consider to host the majority of your extensions outside of the repository, and limit the code in your AMP or Simple jar modules.
Will there be new maven archetype for creating extension outside Alfresco?
We are currently planning a new SDK that supports building services outside of the ACS repository. But it is too early to tell yet.
Does the tool get the information about Alfresco repository from the Alfresco source code on GitHub or does it have it built in?
The tool has the inventories of all supported Alfresco versions built-in.
Jeff Potts, No Docker? No Problem. Automating Install & Config Management with Ansible
What tools are best used for pipeline and IaS?
Ansible does not care where your servers are running. They can be on-premises or on any cloud provider.
Is there an open source Ansible playbook sample avaliable ? For Linux ? For Windows ?
Do we need to worry about the differences between Ansible and Ansible Tower?- any changes to the language or deployment approach? - How would you tie this into an infrastructure deployment ?
Ansible is the command line tool that runs the playbooks. Ansible Tower is a web application that can be used to help teams execute playbooks from a GUI rather than only from the command line. If you decide to use Ansible Tower any playbooks you created with Ansible will still function as-is, as far as I know.
Which installation you recommend if I want to go production with a client today and "on premis"? Docker-compose, K8s, Ansible or Zip? Can you answer for both requirements HA with cluster or a single installation. Thx
I cannot provide a generic answer to this question because it depends on the people, processes, and technology that the client has in place. If the client is already experienced with Docker and Kubernetes, I would go with Docker and Kubernetes. If they are not, I would go with Ansible.
What’s the difference between ansible and puppet? - they do similar things?
But can be categorized under "IT automation" tools, but beyond that, I am not a Puppet expert so I will differ to others on how they differ from a technical standpoint.
Would you suggest to use Ansible also to automate backups, log rotation and generic alfresco maintenance?
You could use Ansible to automate backups and perform other maintenance tasks. For log rotation I would use something like logrotate.
Is it compatible with Windows? Is this ansible project supported by alfresco and downloadable? Can it run on Windows?
You can use Ansible to manage Windows servers, but you cannot yet run Ansible from a Windows machine, according to the Ansible Windows FAQ (link below). The Ansible project I've linked to is an example project based on what has worked well for my customers. Alfresco does not officially support that project or any community-contributed add-on/extension. However, Alfresco has said that providing supported Ansible playbooks is on their roadmap.
Would you say that Ansible is better than Chef or Puppet? if so why?
I like Ansible better because it does not require me to install anything on any of the servers being managed. However, all tools have trade-offs, and you should consider what works best for your projects given your context.
How do you deal with files that need to be removed on a rollback?
A rollback is not a different action that simply pushing out config. If you have a file that gets updated when you push from one branch and also gets updated when you push from another branch, then no special rollback handling is needed. You simply push config from the appropriate branch. If your playbook creates a new file, then your playbook would need to handle when that file should be present and when it should be absent. It would probably base this decision on a variable. When this is working properly, rolling back is, again, just a matter of running the playbook with the variables set to the desired values.
Do you also have tested to use ZFS features together with ansible changes to roll back and forward?
I have not used ZFS features together with Ansible to manage changes.
For the testing playbooks, are there unit testing tools you would recommend?
I use locally installed Vagrant boxes to test my playbooks. I just bring up the Vagrant boxes, which will be provisioned by Vagrant to be configured as if the box was just handed to me by the infrastructure team, and then I test my playbooks against those boxes. Other than that, I have no specific testing frameworks in mind.
For the install steps, how do you get the binaries by switching git branches
I don't. If I have multiple branches that install different versions of Alfresco, for example, then my files/third-party directory will have all versions of all binaries that I need for those playbooks to run. We do not check binaries into source code control. On some of my clients we have a script that downloads the binaries from various sources prior to running the install playbook. In the example playbook I've provided, it is up to you to gather those manually.
You can't run on Windows yet (but Ansible does manage Windows hosts)