28
Continuous Delivery Chris Hilton [email protected] Some images courtesy of ThoughtWorks, Inc.

General Continuous Delivery for Agile Practitioners Meetup May 2014

Embed Size (px)

DESCRIPTION

A generalized version of the presentation on Continuous Delivery given at the Agile Practitioners meetup at Gap headquarters in San Francisco on May 28, 2014.

Citation preview

Page 1: General Continuous Delivery for Agile Practitioners Meetup May 2014

Continuous DeliveryChris Hilton

[email protected] Some images courtesy of ThoughtWorks, Inc.

Page 2: General Continuous Delivery for Agile Practitioners Meetup May 2014

Why Continuous Delivery?

Page 3: General Continuous Delivery for Agile Practitioners Meetup May 2014

Agile Practices

Iteration 0 1 2 3 4

Analysis + Design

Development

Testing + Showcase

Integration + QA Release and operation

Customer

Centralized QA IT Operations

"Agile" team

The "last mile"

Page 4: General Continuous Delivery for Agile Practitioners Meetup May 2014

Continuous Delivery

Customer

Delivery teamConstant flow of new features into production

Page 5: General Continuous Delivery for Agile Practitioners Meetup May 2014

Benefits?

Page 6: General Continuous Delivery for Agile Practitioners Meetup May 2014

Reduced Risk

John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIr

Page 7: General Continuous Delivery for Agile Practitioners Meetup May 2014

Better Quality

“Cease dependence on mass inspection to achieve quality. Improve the process and build quality into the product in the first place.”

W. Edwards Deming

Page 8: General Continuous Delivery for Agile Practitioners Meetup May 2014

Less Waste, More Innovation

Eric Ries, The Lean Startup

Ideas

CodeData

Build

Measure

Learn

Page 9: General Continuous Delivery for Agile Practitioners Meetup May 2014

the cd test

can I release my latest good build on demand at the push of a button while relaxing on the beach with a caipirinha?

http://www.flickr.com/photos/minimiapics/3049363735/

Page 10: General Continuous Delivery for Agile Practitioners Meetup May 2014

Challenges

Page 11: General Continuous Delivery for Agile Practitioners Meetup May 2014

Organizational Silos

Page 12: General Continuous Delivery for Agile Practitioners Meetup May 2014

The DevOps ConundrumDevs want change! Ops wants stability!

Page 13: General Continuous Delivery for Agile Practitioners Meetup May 2014

Lack of Training

Page 14: General Continuous Delivery for Agile Practitioners Meetup May 2014

Resistance to Change

Page 15: General Continuous Delivery for Agile Practitioners Meetup May 2014

Fear of Failure

Page 16: General Continuous Delivery for Agile Practitioners Meetup May 2014

Principles• culture of innovation

• encourage failure

• incremental improvement

• everybody is responsible for release process

• automate everything

• done means released

Page 17: General Continuous Delivery for Agile Practitioners Meetup May 2014

Business Value!

Page 18: General Continuous Delivery for Agile Practitioners Meetup May 2014

Workshop Break !

Vladimir Zelmanov ThoughtWorks

Page 19: General Continuous Delivery for Agile Practitioners Meetup May 2014

Techniques

Page 20: General Continuous Delivery for Agile Practitioners Meetup May 2014

Commit stageCompileUnit testAnalysis

Build installers

Acceptance test stage

User acceptance

testing

Performance testing

Production

Increasing confidence in build's production readiness

Environments become more production-like

Faster feedback

Delivery Pipeline

Page 21: General Continuous Delivery for Agile Practitioners Meetup May 2014

Branch by abstraction

STATIC CONTENT

/static/1.1

/static/1.0

DEPENDENT SERVICE

1.0 1.1

Abstraction layer Abstraction layer

APPLICATION

Database

Router /Load balancer

Interwebs

Page 22: General Continuous Delivery for Agile Practitioners Meetup May 2014

low risk releases are incremental

blue-green deployments

canary releases

dark launching

production immune system

Page 23: General Continuous Delivery for Agile Practitioners Meetup May 2014

Infrastructure Automation

If someone threw a server out of the window, how long would it take to recreate it?

Page 24: General Continuous Delivery for Agile Practitioners Meetup May 2014

Infrastructure In Pipelinesystem

configuration

(puppet code)

SCM CI Test Prod

Orchestrator(puppetmaster,

cron, etc)

Web servers App servers DB servers

Deployment Pipeline

Page 25: General Continuous Delivery for Agile Practitioners Meetup May 2014

Fusion Testing

Page 26: General Continuous Delivery for Agile Practitioners Meetup May 2014

Cloud-y Pipelines

Base VM

Isolation Tests Isolation Tests

Production

Staging

Integration Tests

Other App Env Scripts

IT Scripts

Env Scripts App WAR3.6

A JAR2.3

Common JAR4.3

B JAR1.4

2.3 : 2.0+ 1.4 : 1.0+

4.3 : 4.0+ 4.3 : 4.0+

Staging

Integration Tests

Isolation Tests

App WAR

A JAR B JAR

Common JAR

Page 27: General Continuous Delivery for Agile Practitioners Meetup May 2014

Semi-fluid Dependencies

Page 28: General Continuous Delivery for Agile Practitioners Meetup May 2014

Continuous DeliveryChris Hilton

[email protected] Some images courtesy of ThoughtWorks, Inc.