AEM as a Cloud Service | Fact Sheet for Beginners
Adobe released AEM as a Cloud Service which is the cloud-native way of leveraging the AEM applications. It's very powerful but has some limitations too in comparison to conventional AEM product which is again for the better reasons. In this article, I am going to present a fact sheet which can act as a short hand guide to understand various capabilities and limitations of AEMaaCS.
1. Inbuilt CI/CD- Provides Continuous Delivery and Continuous Integration for updates with zero downtime. The build pipelines comes with code quality check, performance testing and security checks ( via automated tests to scan for common vulnerabilities). Code quality check is done through a combination of SonarQube and content package-level examination using OakPAL.
2. Zero Downtime- Follows green - blue deployment model so your application never goes down even while deploying code or going through maintenance tasks.
3. Inbuilt CDN- It has built-in Content Delivery Network (CDN).
4. Auto-scaling- It is based on a dynamic architecture that autoscales (up and down both) the infrastructure vertically a well as horizontally based on site load.
5. Always Optimized- Performance topologies optimized for maximum resilience and efficiency. No need to run compaction and maintenance on server as it trashes itself once in a day and replaced by newer and healthy nodes.
6. Always current and evolving- Comes with automated updates up to several times a month. By keeping you always on the most recent version, it solves a critical challenge of AEM applications: Eliminating need to worry about upgrade to next AEM Version. Evolves on a daily basis, based on the projects implemented by customers. Content, code and configurations are constantly reviewed and vetted against best practices.
Code running in AEMaaCS must be aware of the fact that it is always running in a cluster. This means that there is always more than one instance running. The code must be resilient especially as an instance might be stopped at any point in time. During the update of AEMaaCS, there will be instances with old and new code running in parallel. Therefore, old code must not break with content created by new code and new code must be able to deal with old content.