Chapter 12. Infrastructure as Code: Automated Deployments with Ansible
Automate, automate, automate.
Cay S. Horstmann
Now that our server is up and running, we want to install our app on it, using our Docker image and container.
We could do this manually, but a key insight of modern software engineering is that small, frequent deployments are a must.
Note
This insight about the importance of frequent deployments we owe to Nicole Forsgren and the State of DevOps reports. They are some of the only really firm science we have in the field of software engineering.
Frequent deployments rely on automation,1 so we’ll use Ansible.
Automation is also key to making sure our tests give us true confidence over our deployments. If we go to the trouble of building a staging server,2 we want to make sure that it’s as similar as possible to the production environment. By automating the way we deploy, and using the same automation for staging and prod, we give ourselves much more confidence.
The buzzword for automating your deployments these days is “infrastructure as code” (IaC).
Note
Why not ping me a note once your site is live on the web, and send me the URL? It always gives me a warm and fuzzy feeling…Email me at obeythetestinggoat@gmail.com.
A First Cut of an Ansible Playbook for Deployment
Let’s start using Ansible a little more seriously. We’re not going to jump all the way to the end though! Baby steps, as always. Let’s see if we can get it to run a simple “hello world” Docker ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access