Adobe has made a significant contribution towards facilitating new capabilities and enhancements in the world of web experience management. Many businesses have leveraged products and services of Adobe Suite in their journey of digital transformation. The Adobe Cloud Manager is one such solution that enables customers using Adobe Managed Services to build, deploy, and manage their custom codebase with ease and efficiency. It reduces dependency on Adobe’s customer service executives to a great extent.
The purpose of this blog is to help the developers, architects, and business practitioners understand the significance of migrating to Cloud Manager and the best practices of successfully completing the migration process.
The Benefits of Migrating to Cloud Manager for Adobe Experience Manager
Check out various significant benefits of migrating to Cloud Manager for multi-brand companies using Adobe Experience Manager (AEM).
- Better Performance – Ensure that your code meets Adobe’s standards through enhanced quality gates.
- Automated CI/CD Pipeline – Schedule automatic deployments through trigger modes.
- Extensibility Through Adobe I/O - Integrate custom processes into CI/CD pipeline using Cloud Manager APIs.
- Faster Time to Market – Easily trigger production deployments without any manual intervention or sending an advance notice to Adobe’s customer service executives. After ten successful deployments, you can independently carry-out the deployments.
- Autoscaling – When subjected to unusually high load, Cloud Manager detects the need for additional resources and automatically brings additional capacity online via autoscaling.
- Adobe’s Git Repository – A standard Git repository that resides within the Cloud Manager platform. It is helpful for the customers when they change their service provider. The code will continue to reside at a place that belongs to the customer.
- Dispatcher Configurations – It maintains the code and avoids the need to have a separate production deployment process.
- Auto Back-up – Cloud Manager always takes a back-up just before deploying the code, which cuts down manual back-ups.
Steps for Migrating to Cloud Manager
First, set-up local to simulate the Cloud Manager environment before starting the project. This can be done by setting up the sonar server/SonarLint. It helps with code quality and coverage. It is always better to find issues in a local environment before building it on the Cloud Manager.
Other steps are as follows:
- Code Set-up in Adobe Git – It can be done by following the steps given in the next section (Integrating Customer Managed Repository with the Adobe Cloud Manager Repository).
- Building the Code – It is the first step of the CI/CD pipeline and can be triggered via the Cloud Manager console.
- Unit Testing – Performed to check for the unit test coverage. 50% of code coverage is required to pass this step.
- Code Inspection – Done for any code quality issues, including Sonar violations.
- Deploying on the Staging Environment – Done to test before deploying on the production environment.
- Security Testing – It is based on pre-configured health checks.
- Performance Testing – Carried out on pre-defined criteria that can be overridden.
- Deployment on the Production Environment – Done after the approval of a Team Lead or Manager.
To understand the steps further, refer to Adobe’s documentation.
Integrating Customer-managed Repository with the Adobe Cloud Manager Repository
When the Cloud Manager Git repository is created and connected to the cloud Manager pipelines, the below-mentioned steps can be followed to integrate an external Git repository:
- Clone the customer-managed Git repository (can be on Bitbucket, GitLab, etc.) in the file system.
- Run the command mentioned below:
git remote -v
and ensure that the remote origin is pointing to the customer-managed repository.
- Now, add the second remote for the Cloud Manager Git repository using the command:
git remote add <name> <URI>
Where <name> is what you want to name your second remote and <URI> link is provided by the Adobe’s customer service executive. For example:
git remote add adobe https://git.cloudmanager.adobe.com/abcproject/abcproject
- To test both are added and pointing to the correct repositories, type command
git remote -v
- To get the Git history for both remotes, run the command given below
git fetch –all
and notice that there is a new reference to the master branch of the Cloud Manager repository. It means that the pipeline is set-up properly.
- Open the project in Eclipse and import the existing maven project. In the Git perspective, under branches, there will be one local branch and two remote branches (one associated with the customer-managed repository and other associated with the Cloud Manager repository).
Best Practices for Migrating to Cloud Manager
Here are some of the best practices that you can follow to ensure a smooth migration to the cloud manager.
1. You can overwrite some testing criteria of the Cloud Manager. This helps in meeting the strict deadlines where the development team wants to keep fixing the issues in the incremental approach.
2. In the case of a multi-bundle project, it is always hard to calculate the code coverage in an integrated development environment (IDE) since the code coverage results are for the individual bundles. As a solution, you can set-up SonarQube with JaCoCo.
3. There is always a doubt about the versioning of a project. Cloud Manager adds a random hex to the versions of bundles and packages, which is nothing but a build number in the Cloud Manager. The final version looks like <pom-version>.<build Number>.
4. For estimating the effort of migration, an architect or lead must consider the below points.
- Set-up required in the local environment to simulate the cloud manager checks
- The effort required in building the code locally to deal with the sonar-related issues
- Number of checks for the unit test coverage
- Code duplication
- Security checks
- Website performance
5. To make the changes production-ready
- Create a production pipeline
- Update the branch and inform the Adobe customer service executive
6. Upload some heavy assets in the pipeline to test the performance.
This blog is an attempt to share our experiences while implementing AEM with Cloud Manager. These include estimating the effort before starting the project, stimulating the Cloud Manager environment in your local, and integrating with the Cloud Manager GIT repository. Businesses can get a lot of benefits by migrating to the Adobe Cloud Manager and using AEM with Cloud manager, and it’s a step towards ‘AEM as a Cloud Service.’