Successfully reported this slideshow.

Continuous Delivery: Responding to Change Faster Than Ever Before - SDEC14

0

Share

1 of 24
1 of 24

Continuous Delivery: Responding to Change Faster Than Ever Before - SDEC14

0

Share

Download to read offline

Presentation given at SDEC14 in Winnipeg. The slides likely aren't very useful without the attending discussion but people have asked for the slides to be made available

Presentation given at SDEC14 in Winnipeg. The slides likely aren't very useful without the attending discussion but people have asked for the slides to be made available

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

Continuous Delivery: Responding to Change Faster Than Ever Before - SDEC14

  1. 1. Continuous Delivery Responding to change, faster than ever before Mike Bowler @mike_bowler Thank you to our Sponsors Media Sponsor:
  2. 2. 2 “Continuous delivery is a software development discipline where you build software in such a way that the software can be released to production at any time.” Martin Fowler
  3. 3. “A key test is that a business sponsor could request that the current development version of the software can be deployed into production at a moments notice - and nobody would bat an eyelid, let alone panic.” Martin Fowler 3
  4. 4. 4 Why would we want to do that?
  5. 5. Agile manifesto says…. “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.” “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.” 5
  6. 6. How far can we push that? • In 2011, Amazon was deploying to production every 11.6 seconds • In 2013, Github deployed to production almost 11,000 times (About 42 times/business day) • In 2013, Shopify deployed to production ~1,835 times (About 7 times/business day) • Today, Etsy deploys 50+ times a day • Today, Netflix deploys “hundreds of times a day” 6
  7. 7. “Wait a minute! My company doesn’t want to deploy that often!” important is that you CAN deliver that fast important is What’s
  8. 8. How to make it work… 8
  9. 9. 9 Extreme quality Automate & Streamline Feature flags Monitoring Continuous Delivery Whole team & alerts
  10. 10. Digging deeper, we find…. 10 Continuous Delivery Individuals Courage Pride of work Design Agile modeling Evolutionary design Simple design Usability Engaged people Continuous improvement Sustainable pace Regular retrospectives Executable specifications ATDD BDD TDD Exploratory testing Functional Performance Incremental development Pair programming Refactoring Dev Team Configuration management Version control Frequent check-ins Single codebase Dependency management Cross-functional teams High communication Co-located teams Daily standups Shared understanding Coding standards Collective code ownership Informational workspace Simple architecture Small Stories Whole Team Automation DB migration Continuous integration One click deploy One click rollback Zero downtime deploy Configuration management Provisioning Cluster immune system Common Goal Feature flags Measurements Comparative testing Stress testing Alerts Monitoring Planning Capacity Compliance Scalability Rapid Feedback © 2013 Gargoyle Software Inc
  11. 11. CD Pipeline 11
  12. 12. 12 What about more complicated environments?
  13. 13. HP does continuous delivery for printer drivers, including running tests against physical hardware. 13
  14. 14. APPLYING IT AT SCALE “Each Facebook data center operations staffer can manage at least 20,000 servers, and for some admins the number can be as high as 26,000 systems” 14 — Delfina Eberly Director of Data Center Operations, Facebook November 2013
  15. 15. CD on the Mainframe 15
  16. 16. INTEGRATION AT GOOGLE SCALE In 2010, Google had… • 5000+ developers • 20+ changes per minute • 50% code base changes every month • 50 million automated tests run every day • Single branch, across five languages • Development on head; all releases from source • Each check-in isolated from all others http://google-engtools.blogspot.ca/2011/05/welcome-to-google-engineering-tools.html 16
  17. 17. Deploy to production Verify expected behaviour Compile and Package Pull from master branch Monitoring and Alerts Rollbacks on error Production
  18. 18. Verify expected behaviour Compile and Package Pull from Amy’s branch Deploy to production Monitoring and Alerts Rollbacks on error Production Verify expected behaviour Compile and package Merge with master branch One branch per developer Merge with local copy of master Verify expected behaviour Compile and Package Merge with local copy of master Pull from Bob’s branch Verify expected behaviour Compile and Package Merge with local copy of master Pull from Carol’s branch
  19. 19. 19 Extreme quality Automate & Streamline Feature flags Monitoring Continuous Delivery Whole team & alerts
  20. 20. TOOLING 20
  21. 21. MORE READING
  22. 22. CONTACTING ME Mike Bowler Agile & Technical Coach mbowler@GargoyleSoftware.com Cell: 905 409-7052 Twitter: @mike_bowler Other links for me on Facebook, Google+ etc at http://www.GargoyleSoftware.com/mike_bowler
  23. 23. HANDOUTS
  24. 24. Mike Bowler Agile & Technical Coach (905) 409-7052 mbowler@GargoyleSoftware.com @mike_bowler Pillars of Continuous Delivery 1) Extreme Quality 2) Automate & Streamline 3) Feature Flags 4) Monitoring & Alerts 5) Whole Team

×