Upload
chris-hilton
View
505
Download
4
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
Continuous DeliveryChris Hilton
[email protected] 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?
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
[email protected] Some images courtesy of ThoughtWorks, Inc.