DevOps Resources

DevOps Resources

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

Production Deployment Guides

Step-by-step guides that show you how to go to production on top of AWS. Learn how to deploy a production-grade Kubernetes cluster on AWS, how to configure your AWS account structure, how to deploy VPCs, and much more.

Automated Testing for Terraform, Docker, Packer, Kubernetes, and More

This talk from QCon SF is a step-by-step, live-coding class on how to write automated tests for infrastructure code, including the code you write for use with tools such as Terraform, Kubernetes, Docker, and Packer. Topics covered include unit tests, integration tests, end-to-end tests, test parallelism, retries, error handling, static analysis, and more.

How to Build an End to End Production-Grade Architecture on AWS

This blog series will take you on a guided tour of a modern production-grade architecture for AWS. You’ll see what an end-to-end solution looks like, including how to combine Kubernetes, AWS VPCs, data stores, CI/CD, secrets management, and a whole lot more to deploy your applications for production use. We’ll cover both the specific choices and patterns employed in the architecture, as well as why some of those patterns make sense in the context of AWS.

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.