About 20 years ago, we rented our first virtual machine. Our goal was to deploy WordPress, a content management system. To do so, we logged in to the machine using SSH, downloaded WordPress, installed the scripting language PHP and the web server Apache, edited the configuration files, and started the web server.
To this day, the following steps for deploying software—whether open source, proprietary, or homegrown—have remained the same:
These activities are also summarized under the term configuration management. The two main reasons for why automating deployments is a must-have in the cloud follow:
- To ensure high availability and scalability, you need to configure an Auto Scaling group to launch EC2 instances automatically. A new machine could spin up at any time, so deploying changes manually is not an option.
- Manual changes are error prone and expensive to reproduce. Automating increases reliability and reduces the costs per deployment.
From what we have learned from our consulting clients, organizations that implement automated deployments have a higher chance of success in the cloud.