Deploying your software can be a complex series of steps. Everyone has a horror story of a deployment gone wrong and “that time we took down production.” When an issue with a deployment arises, it’s an all-hands-on-deck situation. Your team gets paged and scrambles to get production working for customers. What we want as engineers is to release features to customers and have the deployment be a routine event, maybe even so routine that the deployment is boring (to borrow a phase from Camille Fournier and her essay Make Boring Plans.) In continuous deployment, we want to create a repeatable process to deploy new software and to discover any issues before the release hits production.
If you’re manually running steps in your deployment process, you juggle a complex workflow, and it’s easy to introduce errors that can lead to a failed deployment. Automating deployments with tools and processes simplifies your deployment workflow and gives you a repeatable and testable process to safely release your latest change to customers.