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

Continuous Delivery

isa
January 21, 2013

Continuous Delivery

Broad definition of Continuous Delivery and some aspects around it like infrastructure as code, pipeline, mtbf, mtsr, etc

isa

January 21, 2013
Tweet

More Decks by isa

Other Decks in Programming

Transcript

  1. Agenda • Level Set! • Very rough outline of IMKB

    delivery mechanism! • Who cares?! • What is Continuous Delivery! • What is Continuous Delivery Pipeline!
  2. Level Set • Some terminology! • SDLC! • Waterfall vs

    Agile! • Continuous Build / Integration / Deployment / Delivery! • DevOps! • Infrastructure as code & Configuration Management! • Quality Assurance! • MTBF & MTRS
  3. Waterfall (won’t cover) • Adapted from manufacturing! • Introduced by

    Winston Royce as a practice that should NOT BE followed in his book
  4. Agile 101 (won’t cover) • Declared in Agile Manifesto around

    2001! • 4 core ideas! • Individuals and interactions over processes and tools! • Working Software over comprehensive documentation! • Customer Collaboration over contract negotiation! • Responding to Change over following a plan! • 12 principles around working software! • Many implementations! • Scrum, Kanban, Lean, Scrum-ban, Crystal, etc..
  5. Continuous What? • Continuous Build (won’t cover)! • An automated

    build from mainline! • Continuous Integration (won’t cover)! • An automated build from mainline! • An automated testing suite (unit, integration)! • Measuring quality of the code base! • Continuous Deployment (won’t cover)! • Continuously deploying into a prod-like environment! • An automated testing suite (acceptance)
  6. DevOps (won’t cover) • Introduced by Patrick Debois! • Key

    principles! • Communication! • Collaboration! • Integration! • Everything should be automated, repeatable w/o risk Dev  +  QA  +  Ops
  7. Infrastructure as Code (won’t cover) • Infrastructure should be treated

    as code! • Outcomes should be deterministic & predictable! • Modeling infrastructure rather than on-demand ops on it! • And many other core values! • Who uses?! • Amazon handles 2 major EC2 DC’s with this (close to 500K machines)! • Facebook manages 150K machines! • Google manages 40K machines
  8. Quality Assurance (won’t cover) • Allows quality to be transparent!

    • 5 major test blocks! • Regression (automated)! • Smoke (automated)! • Acceptance (automated)! • Performance (periodical)! • Load (periodical)! • Exploratory Tests (every time)
  9. MTBF & MTRS (won’t cover) • Mean Time Between Failures!

    • Mean Time Recovery of Service! • Business (therefore project) dependent! • Real-time systems usually goes for MTRS! • 0-ing MTBF removes the need for MTRS
  10. Rough Outline • Different cultures, techniques and methodologies! • No

    global visibility (monitoring, errors, reporting, etc)
  11. Rough Outline • Indispensable people + overtime, overtime, overtime !

    • Not sustainable (kills passion + quality)! • Keeping business promises?
  12. Is there a Silver Bullet? • Not really! • Failure

    will always happen, and we should accept that!! • What do we do then?! • We should be ready for it!! ! ! Let’s look at some case studies..
  13. Case Study: Netflix • Zero downtime! • 27.1M users with

    average 7GB/month! • Yeap, that is 189 EB average! • Killer bots
  14. Case Study: Google Wallet • Zero downtime! • $8B annually!

    • 192M users! • Only <50 people built it
  15. How did they do? • Small and frequent releases! •

    One pipeline! • Repeatable & risk-free deployments! • Always production ready philosophy! • DevOps
  16. Continuous Delivery • Philosophy! • Automation! • Patterns & Practices!

    • Collaboration! • Ingredients! • Configuration Management! • Continuous Integration! • Automated Testing
  17. Continuous Delivery • Only valid measure of software: production readiness!

    • Super Fast feedback loop! • Business decides, IT follows
  18. Continuous Delivery • Clear visibility with Continuous Delivery pipeline! •

    Quality has to be built into the product! • Priority is not on the features, it’s always on
  19. Continuous Delivery Pipeline • Pipeline tries to prove your software

    is broken! • Creativity can only be done by fast feedback! • Fungible and cross functional teams! • Repeatable, risk-free, proven and visible by everyone! • Anybody can do it!