Startup Resources: Deployment Tools

Instead of deploying code manually, learn about tools such as Terraform, Chef, Puppet, Ansible, and Docker. See the "Software Delivery" chapter in Part II, Technologies for more info.

  1. Configuration Management and Deployment Automation
  2. Virtualization and Containers
  3. Further Reading

These startup resources are based on the book Hello, Startup: A Programmer's Guide to Building Products, Technologies, and Teams by Yevgeniy Brikman. These resources are a work in a progress. They are also open source, so you can add your contributions by submitting a pull request to the Hello, Startup GitHub Repository. To see how these resources fit into the bigger picture, check out the The Startup Checklist, which is a comprehensive collection of everything you need to do to launch a startup.

Configuration Management and Deployment Automation


Manage IT infrastructure as code across all environments.


Extremely fast and scalable systems and configuration management software for predictive orchestration, cloud and data center automation, server provisioning, application deployment and more.


Automate large-scale, complex and mission critical IT infrastructure


A remote server automation and deployment tool written in Ruby.


Really fast deployer and server automation tool


Configure, manage, maintain, deploy and scale efficiently with best-practice Charms on any public, private or hybrid cloud from a powerful GUI or the command-line.


A system administration toolkit providing a powerful, portable, and modular set of tools for the automated installation, configuration, and management of clusters, farms, grids and clouds.

AWS CodeDeploy

AWS CodeDeploy is a service that automates code deployments to Amazon EC2 instances

Virtualization and Containers


Create and configure lightweight, reproducible, and portable development environments.


VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use.


KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V).


Docker - An open platform for distributed applications for developers and sysadmins.


Rocket is a CLI for running App Containers. The goal of rocket is to be composable, secure, and fast.

No screenshot available

Amazon EC2 Container Service

Amazon EC2 Container Service is a highly scalable, high performance container management service that supports Docker containers and allows you to easily run distributed applications on a managed cluster of Amazon EC2 instances.

Further Reading

Terraform: Up & Running

This book is the fastest way to get up and running with Terraform, an open source tool that allows you to define your infrastructure as code and to deploy and manage that infrastructure across a variety of cloud providers (e.g., AWS, Azure, Google Cloud, DigitalOcean).

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 that discusses the safety mechanisms that allow you to build software faster.

No screenshot available

Continuous Integration

Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.