Deployment automation enables you to update your testing, staging and live environments with a single command. Automating the tasks involved in deploying a new build to both pre-production and production environments creates a fast, repeatable, and reliable process.
Deployment automation forms the second half of a CI/CD pipeline. Having published build artifacts as part of the continuous integration stage, the next steps involve deploying those artifacts to pre-production environments for automated integration, end-to-end, performance, and security tests. These are followed by manual exploratory tests and collecting feedback from staging.
The final stage involves releasing changes to production, either with a fully automated process (continuous deployment) or with a scripted process that is triggered manually (continuous delivery).
It’s good practice to reuse the same build artifacts for each environment, pulling them down from the artifact repository each time, and keeping the deployment process as similar as possible between environments.
Doing so means you will test the process on each build multiple times before you reach production, giving you more confidence in your release. If your organization is new to CI/CD and DevOps, agreeing on a unified deployment process can be a challenge that will require teams to collaborate and align around a common goal.
Automating the deployment process is essential for being able to release changes frequently. Without deployment automation, you would need to update test environments and manually deploy new builds each time you want to put a build through your complete automated testing regime. This will slow down the feedback loop and increase the time it takes to deliver your changes to users.