Technology trends are driven by the business needs. As competition soaring high in the market and software eating the business, the time to convert ideas into usable software is demanded to be very short, in fact in minutes for certain verticals.
There comes in the Continuous Delivery (CD). Continuous delivery is all about delivering the changes to the end-users super fast, may be for every code merge.
Here find the moving pieces in building a continuous delivery pipeline
- Configuration Management – Right branching strategy is critical. Has to have a master branch that reflects the production code all the time.
- Automation testing – More the automation, shorter the time to production. Little place for manual testing.
- Continuous integration – CI is part of the game. Build only once and manage the end-states in artifacts repository such as Nexus, Bamboo.
- Artifacts repository – Use the same end-state in all your environments including stage, UAT and production.
- Deployment – Need deployment management tools such as GO, RunDeck to install the end-state in your environments with the ability to rollback.
- Environment management – Once deployment, you need to have the ability to test the deployment and toolset to monitor the environment.
- Release management – Push button releases
- Canary release (Blue green deployment) – Changes to production inĀ short time has the risk of carrying defects. You cannot afford to have all your servers exposed to the revised code. Test the change with a small percentage of real traffic.
Now coming to AEM.
- First question to ask is — Does your business need continuous delivery pipeline? If your web presence is not your main mean of business, you may not need a CD pipeline at all. Constructing a CD pipeline is expensive and an upfront investment.
- Second question — AEM (CMS) provides content agility with no code change. Content is what changes often in systems. AEM also provides ability to play around with UI elements (called as components). Does it address your need for change?
If you still see the need for a CD pipeline for AEM deployments, you may have to consider the following AEM specific inputs in addition to the moving pieces of CD pipleline described in the top of the page.
- Prefer smaller packages. OSGi is modular and the impact of your revised bundle is minimal.
- Achieve test automation. You have to address the quality aspect of bot the authoring and end-user aspects.
- Cache invalidation. You may have to give special attention to caching layers at dispatcher, CDN, etc.