General Continuous Delivery for Agile Practitioners Meetup May 2014

Preview:

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

Continuous DeliveryChris Hilton

chris@dctank.com Some images courtesy of ThoughtWorks, Inc.

Why Continuous Delivery?

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"

Continuous Delivery

Customer

Delivery teamConstant flow of new features into production

Benefits?

Reduced Risk

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

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

Less Waste, More Innovation

Eric Ries, The Lean Startup

Ideas

CodeData

Build

Measure

Learn

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/

Challenges

Organizational Silos

The DevOps ConundrumDevs want change! Ops wants stability!

Lack of Training

Resistance to Change

Fear of Failure

Principles• culture of innovation

• encourage failure

• incremental improvement

• everybody is responsible for release process

• automate everything

• done means released

Business Value!

Workshop Break !

Vladimir Zelmanov ThoughtWorks

Techniques

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

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

low risk releases are incremental

blue-green deployments

canary releases

dark launching

production immune system

Infrastructure Automation

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

Infrastructure In Pipelinesystem

configuration

(puppet code)

SCM CI Test Prod

Orchestrator(puppetmaster,

cron, etc)

Web servers App servers DB servers

Deployment Pipeline

Fusion Testing

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

Semi-fluid Dependencies

Continuous DeliveryChris Hilton

chris@dctank.com Some images courtesy of ThoughtWorks, Inc.