DevOps Resources

A collection of blog posts, talks, books, and checklists for learning about DevOps, AWS, Terraform, Docker, Packer, and more

Reusable, composable, battle-tested Terraform modules

A talk from HashiConf 2017 that will show you how Terraform modules work, how to design modules so they are highly configurable and reusable, how to write automated tests for your Terraform code, and how you can use modules to build your entire tech stack on top of proven, battle-tested infrastructure code—in minutes.

Terraform Up & Running

This book is the fastest way to get up and running with Terraform. You'll go from deploying a basic "Hello, World" Terraform example all the way up to running a full tech stack (server cluster, load balancer, database) that can support a large amount of traffic and a large team of developers—all in the span of just a few chapters.

Lessons learned from writing over 300,000 lines of infrastructure code

This talk from HashiConf 2018 is a concise masterclass on how to write infrastructure code. I share key lessons from the "Infrastructure Cookbook" we developed at Gruntwork while creating and maintaining a library of over 300,000 lines of infrastructure code that's used in production by hundreds of companies. Come and hear our war stories, laugh about all the mistakes we’ve made along the way, and learn what Terraform, Packer, Docker, and Go look like in the wild.

A Comprehensive Guide to Building a Scalable Web App on Amazon Web Services

A definitive guide on how to think about building apps on AWS, including how to think about scalability and high availability, an overview of how to use the most important AWS services, and an introduction to cloud-native architecture.

A Comprehensive Guide to Terraform

Our blog post series on how to use Terraform that covers how Terraform compares to Chef, Puppet, Ansible, and CloudFormation, introduces Terraform syntax, discuss how to manage Terraform state, shows how to build reusable infrastructure with Terraform modules, and introduces a workflow for how to use Terraform as a team.

The Production Readiness Checklist for AWS

This checklist is your guide to the best practices for deploying secure, scalable, and highly available infrastructure in AWS. Before you go live, go through each item, and make sure you haven't missed anything important!

Running microservices on AWS using Docker, Terraform, and ECS

A talk from DevOps Italia 2016 that shows how to use Terraform, Docker, and Amazon's EC2 Container Service to run microservices in AWS.

A Comprehensive Guide to AWS Authentication

Our blog post series on how to authenticate to AWS on the command-line, including how to use Access Keys, IAM Roles, MFA, the Credentials File, Environment Eariables, Instance Metadata, and Gruntwork Houston.

Terratest: a swiss army knife for testing infrastructure code

Terratest is a Go library that makes it easier to write automated tests for your infrastructure code. It provides a variety of helper functions and patterns for testing Terraform code, Docker images, Packer templates, AWS resources, and much more.

Agility Requires Safety

To go faster in a car, you need not only a powerful engine, but also safety mechanisms like brakes, air bags, and seat belts. This is a talk about the safety mechanisms that allow you to build software faster, including continuous integration, microservices, feature toggles, and canary deployments.

Choosing the Right Framework for Running Docker Containers in Production

A talk from Iterate.PHX on choosing the right framework for running docker containers in production. Goes over the trade-offs between Amazon ECS, Docker Swarm, CoreOS Fleet, Deis, Flynn, Mesos, and Kubernetes.