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

Lather, Rinse, Release - WDCNZ 2013

Lather, Rinse, Release - WDCNZ 2013

Why you'd want an automated release process, and how to build one. Find bugs early, get code out faster, and get a good night's sleep.

Donald Gordon

July 25, 2013
Tweet

Other Decks in Programming

Transcript

  1. Lather, Rinse, Release: Endlessly • Release Engineering lite for web

    devs • Release is the end goal of development • Release is what your users wait for • Do it faster • Do it often • Do it without gnawing your fingernails
  2. Release Engineering for Web Devs • High level • Process-lite

    • Microsoft? Open Source / Linux? No problem. • Get around to it! • Lots of low hanging fruit
  3. Why do I need any of this? • What’s causing

    you pain? • What’s slowing you down? • What keeps your CEO awake at night? • “Company threatening events”
  4. Fail fast! • Test your assumptions • Fail builds, rather

    than tests • Fail tests, rather than QA • Fail QA before your code goes live
  5. Builds • Repeatable builds are important • Repeatable builds are

    trustworthy • Hermetic builds are auditable • Builds on developer workstations are not trustworthy • Manual tests: exactly what’s going into production • Confidently apply tiny patches to live • Fail fast
  6. Builds • TeamCity / Hudson / Jenkins / … •

    Build server hygiene: Be a tidy kiwi • Be a really OCD, disciplined kiwi • Pre-tested commits
  7. Automated Deployment: why? • Human error • “Let’s just edit

    this in production” • Automate configuration changes • Your workstation is an environment, too
  8. Requirements for Deployment • Cut over or staggered rollout? •

    Per-environment settings • Password management • Infrastructure management?
  9. Environments should be similar • Fail fast • HTTPS everywhere

    • Database usernames • Similar URL scheme • Software Load Balancer • Use a proxy
  10. Generic Ops Advice • Keep it simple • Let someone

    else live on the bleeding edge • Even if you’re small, you can still be disciplined • You will need this if you grow • Does every developer need Adminstrator/root access? • At least they won’t need to use it often
  11. Homework • Automate your builds • Invest in automation •

    Start small, your automation is a work-in-process • A release is everyone’s concern • Don’t wake up in a cold sweat