In this talk I’ll draw on my professional experience developing disposable infrastructure.
WHAT IS DISPOSABLE INFRASTRUCTURE & HOW IS IT POSSIBLE To get the room on the same page I’ll start with my definition of disposable infrastructure, “Automating the process of provisioning, configuring, deploying, and tearing down cloud infrastructure and services.”. Essentially 1 script to go from 0 to live application and from live application back to 0 again.
I will make the case for disposable infrastructure starting with a survey of current infrastructure practices and their pain points.
Next up are appropriate use cases for disposable infrastructure:
First walking through the what and why for tools my team chose:
Terraform for provisioning - terraform is cloud-agnostic allowing us to continue using it even as we build out into new cloud environments (e.g. Google Cloud)
Ansible for configuration - also cloud-agnostic (yay extensibility!). The application my team deploys is multi-language and instead of baking special AMI’s per installation my team decided to use Ansible to create 1 playbook for configuring the host with necessary dependencies and 1 playbook for steps to deploy the service via supervisord.
AWS for hosting - this was less of a choice and more of a “we have an AWS account that someone is already paying for” but we would have chosen it anyways as it’s a major cloud provider.
Then talk through and show the code for each major step the program is running through: