24
Continuous Delivery Responding to change, faster than ever before Mike Bowler @mike_bowler Thank you to our Sponsors Media Sponsor:

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

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

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

Continuous DeliveryResponding to change, faster than ever before Mike Bowler @mike_bowler

Thank you to our Sponsors

Media Sponsor:

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

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

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

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

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

4

Why would we want to do that?

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

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.”

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

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”

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

“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

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

8

How to make it work…

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

9

Extreme quality

Automate & Streamline

Feature flags

Monitoring & alertsWhole team

ContinuousDelivery

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

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

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

CD Pipeline

11

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

12

What about more complicated

environments?

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

13

HP does continuous delivery for printer drivers, including running tests against physical hardware.

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

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

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

CD on the Mainframe

15

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

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

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

Pull frommaster branch

Compile andPackage

Verify expectedbehaviour

Deploy toproduction

Monitoring and Alerts

Rollbacks on error

Production

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

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

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

19

Extreme quality

Automate & Streamline

Feature flags

Monitoring & alertsWhole team

ContinuousDelivery

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

TOOLING

20

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

MORE READING

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

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

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

HANDOUTS

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

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