Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Keith and Mario's Guide to Continuous Deployment

Keith Pitt
February 22, 2014

Keith and Mario's Guide to Continuous Deployment

This is a presentation that @mariovisic (http://twitter.com/mariovisic) and I (http://twitter.com/keithpitt) performed at RubyConf Australia, 2014.

Recently it has become common practise for development teams to deploy their code several times a day, as well as encouraging new developers to deploy on their first day at work.

In our talk Mario and I will discussed how we used continuous deployment to push these practises to the extreme. Automatically deploying the master branch on new changes is an awesome way to improve your development process.

Automatically deploying master will fundamentally change how you work. Gone are the days of the epic pull request. You'll quickly find yourself writing smaller more manageable chunks of code, that overall have a great impact on the quality of the software you produce.

By the end of the talk you'll know how to change the GitHub merge pull request button into a deploy button - and have the confidence to do so.

Some things we'll go over in the talk:

- How to setup your CI environment for deployments
- Why having fast tests are important
- How to use your Staging environment for testing deployments
- How to use feature flags to hide deployed features from some users
- Zero downtime deploys, even when there are database migrations
- Your new deploy button, AKA The GitHub merge pull request button
- What to do when deployment goes wrong

Proposal: https://github.com/keithpitt/rubyconfau-2014-cfp/tree/master/keith-and-marios-guide-to-continuous-deployment

Keith Pitt

February 22, 2014
Tweet

More Decks by Keith Pitt

Other Decks in Programming

Transcript

  1. CONTINUOUS DEPLOYMENT Keith & Mario’s Guide To @keithpitt @mariovisic OR

    Why automatically deploying your master branch to production is a good idea.
  2. INGREDIENTS Feature Planning! Code Reviews! Feature Toggles! Automated Tests! Smoke

    Tests! Zero Downtime Deploys! Rollback Strategy! Handling Database Migrations! Application Monitoring
  3. INGREDIENTS Feature Planning! Code Reviews! Feature Toggles! Automated Tests! Smoke

    Tests! Zero Downtime Deploys! Rollback Strategy! Handling Database Migrations! Application Monitoring
  4. AVERAGE NUMBER OF DEPLOYS PER DAY 1.9 4.7 130 Additions!

    Per Deploy 245 Additions! Per Deploy Manual! Deploys Continuous! Deploys