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.
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
SaltStack
http://saltstack.com/Extremely fast and scalable systems and configuration management software for predictive orchestration, cloud and data center automation, server provisioning, application deployment and more.
juju
https://juju.ubuntu.com/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.
Quattor
http://www.quattor.org/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
http://aws.amazon.com/codedeploy/AWS CodeDeploy is a service that automates code deployments to Amazon EC2 instances
Virtualization and Containers
Vagrant
https://www.vagrantup.com/Create and configure lightweight, reproducible, and portable development environments.
VirtualBox
https://www.virtualbox.org/VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use.
KVM
http://www.linux-kvm.org/page/Main_PageKVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V).
Docker
https://www.docker.com/Docker - An open platform for distributed applications for developers and sysadmins.
Rocket
https://github.com/coreos/rocketRocket is a CLI for running App Containers. The goal of rocket is to be composable, secure, and fast.
Amazon EC2 Container Service
http://aws.amazon.com/ecs/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
https://www.terraformupandrunning.com/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
https://www.ybrikman.com/writing/2016/02/14/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.
Continuous Integration
http://martinfowler.com/tags/continuous%20integration.htmlContinuous 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.