Upload
mike-bowler
View
152
Download
0
Embed Size (px)
DESCRIPTION
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
Citation preview
Continuous DeliveryResponding to change, faster than ever before Mike Bowler @mike_bowler
Thank you to our Sponsors
Media Sponsor:
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
“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
4
Why would we want to do that?
Agile manifesto says….
5
“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.”
How far can we push that?
6
• 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”
“Wait a minute! My company doesn’t want to deploy that often!”
What’s important is that
What’s important is that
you CAN deliver that fast
8
How to make it work…
9
Extreme quality
Automate & Streamline
Feature flags
Monitoring & alertsWhole team
ContinuousDelivery
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 managementCross-functional teams
High communication
Co-located teams
Daily standups
Shared understanding
Coding standards
Collective code ownership
Informational workspace
Simple architectureSmall Stories
Whole
Team
Automation
Continuous integrationDB migration
One click deploy
One click rollback
Zero downtime deploy
Configuration management
Provisioning
Cluster immune
system
Common Goal
Feature flags
Measurements
Comparative testing
Stress testing
MonitoringAlerts
Planning
Capacity
Compliance
Scalability
Rapid Feedback
© 2013 Gargoyle Software Inc
CD Pipeline
11
12
What about more complicated
environments?
13
HP does continuous delivery for printer drivers, including running tests against physical hardware.
APPLYING IT AT SCALE
14
“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”
— Delfina Eberly Director of Data Center Operations, FacebookNovember 2013
CD on the Mainframe
15
INTEGRATION AT GOOGLE SCALE
16
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
Pull frommaster branch
Compile andPackage
Verify expectedbehaviour
Deploy toproduction
Monitoring and Alerts
Rollbacks on error
Production
Pull fromAmy’s branch
Compile andPackage
Verify expectedbehaviour
Deploy to production
Monitoring and Alerts
Rollbacks on error
Production
Merge with master branch
Compile and package
Verify expected behaviour
One branch per developer
Merge with local copy of master
Pull fromBob’s branch
Compile andPackage
Verify expectedbehaviour
Merge with local copy of master
Pull fromCarol’s branch
Compile andPackage
Verify expectedbehaviour
Merge with local copy of master
19
Extreme quality
Automate & Streamline
Feature flags
Monitoring & alertsWhole team
ContinuousDelivery
TOOLING
20
MORE READING
CONTACTING ME
Mike BowlerAgile & Technical Coach
[email protected]: 905 409-7052
Twitter: @mike_bowler
Other links for me on Facebook, Google+ etc athttp://www.GargoyleSoftware.com/mike_bowler
HANDOUTS
Mike Bowler Agile & Technical Coach
(905) [email protected]
@mike_bowler
Pillars of Continuous Delivery 1) Extreme Quality 2) Automate & Streamline 3) Feature Flags 4) Monitoring & Alerts 5) Whole Team