Continuous Delivery (CD) is the practice of building software that is ready to be deployed to production at all times. CD requires a stable, automated build pipeline, with simple, push button deployments, guided by feedback and metrics on the health of the production system. By refining and shortening feedback loops throughout the entire software process, it is possible to continually be delivering high-quality, working software to happy customers.
At GitHub, we deploy hundreds of times in the course of an average day. We practice continuous delivery from design, development and ops, through our release processes and into customer support. This talk will cover many of the techniques and tools we use for continuous delivery at GitHub, including pull requests, feature toggles, chat ops and continuous integration and deployment. We will also discuss core principles so you can apply these lessons in your own Ruby deployment environment, software process, and business.