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

Continuous Deployment

Continuous Deployment

Conferences Box

March 16, 2012
Tweet

More Decks by Conferences Box

Other Decks in Technology

Transcript

  1. From Timothy Fitz: •Continuously integrate (commit early and often) •On

    commit automatically run all tests •If the tests pass deploy to the cluster •If the deploy succeeds, repeat
  2. Things We Needed • Simplified Release Process • Thorough Testing

    • Continuous Integration • Monitoring All things we should have anyway
  3. Fast and Efficient Tests • Profiling • Don't disguise integration

    tests as unit tests (isolate) • Avoid test duplication • Create fewer objects • Load dependencies as needed • Don't test/use Rails
  4. CI Should Be Fast Previous CI Server: • Quad-Core AMD

    Opteron(tm) Processor • 16GiB RAM • Rackspace Cloud instance • 30 minutes to run tests Current CI Server: • 16 Core Intel(R) Xeon(R) CPU 2.40GHz • 32GiB RAM • SSD • 7 minutes to run tests
  5. Monitoring • A user should not be the first one

    to notify you that something broke • Something automatic should freak out when stuff breaks
  6. Excuses • More releases would be more pain • Our

    tests are insufficient • Our users/stakeholders won't be cool with it