About 20 years ago, we’ve rented our first virtual machine. Our goal was to deploy WordPress, a Content Management System. To do so, we logged into the machine using SSH, downloaded WordPress, installed the scripting language PHP and the web server Apache, edited configuration files, and started the web server.
To this day, the steps for deploying software - whether open source, proprietary, or homegrown - have remained the same.
- Fetch source code or binaries
- Install dependencies
- Edit configuration files
- Start services
These activities are also summarized under the term configuration management.
In this chapter, you will learn how to deploy Etherpad on EC2 instances in an automated way. Etherpad is a web application to edit text documents collaboratively. To do so, you will learn about three different deployment options:
- AWS CodeDeploy to deploy to running EC2 instances
- AWS CloudFormation, auto-scaling group, and user data to perform a rolling update
- Bundling an application into a customized AMI for immutable deployments with Packer by HashiCorp