Migrating from Alfresco 5 to Alfresco 6, the Community Guide
Alfresco has been releasing EA (Early Access) releases for Alfresco 6 since November 2017. But now, the first Alfresco 6 GA (Generally Available) release is near. Probably it will be released before summer.
Alfresco 6 is a step forward to Native Cloud Platforms, named by the company as “Digital Business Platform” some months ago. This is why the product has been split into smaller services (not microservices by now) and this is why it will be delivered to be deployed in a Kubernetes cluster. ADF framework, designed to provide low-code applications for the platform, is increasing in maturity and in stability. Despite ADF works from Alfresco 5.2, the framework provides even better support and extended features for Alfresco 6. Additionally, Alfresco repository has been powered up to the last releases of core Java Libraries in order to increase integration capabilities with external components.
UST Global has been delivering Docker Compositions for Alfresco 5.X during the last year, so we know that the product fits perfectly in this kind of deployments.
Below, a short guide on migrating from Alfresco 5 to Alfresco 6 is detailed. Every scenario requires some analysis before going on, but these steps could help to start planning the work for the process.
We’re not covering Enterprise Architectures in this post, as is expected that the company itself publish a guide in the future.
Alfresco Community adopters does not require a K8s deployment, so Docker Compose or installation by components is the recommended approach.
Installing Alfresco 6 by components will be similar to Alfresco 5 process, so previous documentation will apply.
When installing Alfresco 6 with Docker Compose, apart from configuring a running server with Docker software on it, some elements should be selected in order to get a working service.
Alfresco and Share web applications are built from Java with Tomcat Docker images. Alfresco will provide a base configuration for this image (currently Apache Tomcat 8 and Oracle Java 8 running in CentOS 7), but it can be created an alternative Docker image to meet company requirements or the make image size smaller (currently is 2+ GB). This means that if you were using Ubuntu with Alfresco 5, you can still follow on using it with Alfresco 6.
Repository and Share web applications will be delivered as Docker images. Configuration and customizations from Alfresco 5 should be applied on a local Dockerfile extending these official images, so future upgradings will keep identified what’s coming from Alfresco and what’s coming from the installation.
ADF web applications, who knows if Alfresco Content App will be recognized as official Share replacement in the future, will be delivered also as Docker images. If you had some ADF application running for Alfresco 5, no action is expected to migrate to Alfresco 6.
Third Party Software
LibreOffice, ImageMagick and Alfresco PDF Renderer will be released inside Alfresco Docker image.
It looks that Enterprise customers will have access to a Docker image for every service:
This feature will not be shared with Community Edition.
In any case, if you installed a LibreOffice server isolated with Alfresco 5, a customised Dockerfile can be written in order to provide the same configuration for Alfresco 6 Community.
Alfresco is providing by default PostgreSQL database, but MySQL or MariaDB can be used easily by modifying Docker Compose configuration to include official MariaDB image and by including JDBC driver in Alfresco image.
Alfresco is not including any Web Server in default Docker Composition, as they are making all this orchestration in Kubernetes. However, both Apache HTTPd and NGINX images can be added to Docker Compose in order to provide a standard HTTP interaction by using default ports (80/443) with every service.
Every Protocol from Alfresco 5.2 will work in Alfresco 6.0 but CIFS. Since Windows is deprecating SAMBAv1, this service will stop working both with Alfresco 5 & 6 in the future.
Every Subsystem from Alfresco 5.2 will work in Alfresco 6.0. However, in cases like Kerberos and Active Directory, external servers based in Windows must be connected to Docker Composition as there are few options to build a Docker image for this kind of services. Alfresco is developing a Keycloak integration to solve integration scenarios, but it’s not clear if this module will be also available for Community.
Alfresco Share webapp was discontinued with Alfresco 5, so every addon for Share working in Alfresco 5 will work with Alfresco 6, as the software is basically the same.
Alfresco Repository does not include many new features, but a huge Java Libraries upgrading has been done.Probably every addon for Repository must be recompiled for Alfresco 6, as they will require minor dependency adaptations in the source code. Since Alfresco has confirmed that the new version of Alfresco SDK will not be ready when Alfresco 6 is released, it will be hard to adapt repository addons running currently in Alfresco 5.
Storage for files, database and search indexes from Alfresco 5 can be re-used for Alfresco 6, as external volumes can be configured for Docker containers. If you were using SOLR 4 with Alfresco 5, then a re-indexation will be required in order to use SOLR 6 with the new release.
Since Alfresco announced that Activiti Engine will be removed from Alfresco Core along release 6 lifecycle, no new workflows must be designed inside Alfresco 6. On the other hand, if you were using Alfresco 5 to design Activiti workflows, it’s time to think on how to export definition and data to other BPM software like APS or Activiti. Some elements from every workflow designed within Alfresco 5 (as content model definition, forms and Alfresco Services integration) must be re-created in this process.
Worth the upgrade
Every scenario requires a detailed study, but following statements can help you to decide if upgrading to Alfresco 6 is worthy or it is not.
- You are using Alfresco mainly as backend Alfresco Repository
- You are planning to move your infrastructure to Docker or you are moving your infrastructure to Docker
- You are developing ADF applications
- You are using mainly Alfresco Share for collaborating on Content
- You have designed hundreds of Activiti workflows inside Alfresco
- You are running currently Alfresco 5 with Docker Compose
Let us know if you are planning to adopt Alfresco 6, we’ll join your team to make the process easier!