Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Continuous Delivery 
Responding to change, faster 
than ever before 
Mike Bowler @mike_bowler 
Thank you to our Sponsors 
...
2 
“Continuous delivery is a 
software development 
discipline where you build 
software in such a way that 
the software ...
“A key test is that a business 
sponsor could request that the 
current development version of 
the software can be deploy...
4 
Why would we 
want to do that?
Agile manifesto says…. 
“Our highest priority is to satisfy 
the customer through early and 
continuous delivery of valuab...
How far can we 
push that? 
• In 2011, Amazon was deploying to production 
every 11.6 seconds 
• In 2013, Github deployed ...
“Wait a minute! My 
company doesn’t want 
to deploy that often!” 
important is that 
you CAN deliver that fast 
important ...
How to make it work… 
8
9 
Extreme 
quality 
Automate & 
Streamline 
Feature 
flags 
Monitoring 
Continuous 
Delivery 
Whole team & alerts
Digging deeper, we find…. 
10 
Continuous 
Delivery 
Individuals 
Courage 
Pride of work 
Design 
Agile modeling 
Evolutio...
CD Pipeline 
11
12 
What about more 
complicated 
environments?
HP does continuous 
delivery for printer 
drivers, including 
running tests against 
physical hardware. 
13
APPLYING IT AT SCALE 
“Each Facebook data center operations 
staffer can manage at least 20,000 
servers, and for some adm...
CD on the Mainframe 
15
INTEGRATION AT GOOGLE SCALE 
In 2010, Google had… 
• 5000+ developers 
• 20+ changes per minute 
• 50% code base changes e...
Deploy to 
production 
Verify expected 
behaviour 
Compile and 
Package 
Pull from 
master branch 
Monitoring and 
Alerts ...
Verify expected 
behaviour 
Compile and 
Package 
Pull from 
Amy’s branch 
Deploy to production 
Monitoring and 
Alerts 
R...
19 
Extreme 
quality 
Automate & 
Streamline 
Feature 
flags 
Monitoring 
Continuous 
Delivery 
Whole team & alerts
TOOLING 
20
MORE READING
CONTACTING ME 
Mike Bowler 
Agile & Technical Coach 
mbowler@GargoyleSoftware.com 
Cell: 905 409-7052 
Twitter: @mike_bowl...
HANDOUTS
Mike Bowler 
Agile & Technical Coach 
(905) 409-7052 
mbowler@GargoyleSoftware.com 
@mike_bowler 
Pillars of Continuous De...
Upcoming SlideShare
Loading in …5
×

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

459 views

Published on

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

Published in: Software
  • Be the first to comment

  • Be the first to like this

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

×