The popularity of cloud infrastructures and serverless designs is still going up. Adobe doesn't fall behind and proposes a myriad of cloud tools meant to revolutionize ways of working with AEM projects. The new solutions bring lots of changes to both developing and deploying the code. DevOps engineers have to face a challenging task of adapting the current deployment pipelines into the new, cloud-based approaches based on Adobe's Cloud Manager.
First, let's delve deeper into the subject of code deployments and the way it's done with Cloud Manager.
Usual deployment pipelines
Deploying your code is all about making your software available to the end-users. However, as the project you're working on is growing you might need to perform multiple additional actions revolving around this process. This is where the concept of deployment pipelines comes into play - in most real-world scenarios deploying software is much more than simply pushing your code to the production environment. Deployment pipelines aim to automate as much as possible - all additional tasks related to the deployment are incorporated into a pipeline. This process can be roughly divided into the deployment itself and pre and post deployment steps. When it comes to the actions you might want to perform, the possibilities are limitless. Some of the most commonly implemented pre-deployment steps are:
static code analysis,
running unit and integration tests,
notifying all interested parties about the upcoming deployment.
Post-deployment steps are as much important and may include:
clearing cache (CDN or other),
running AET suites,
running performance tests (e.g. SiteSpeed or Blazemeter),
deploying the code to other services (e.g FaaS or Docker),