SlideShare a Scribd company logo
Continuous Delivery
for the rest of us
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations
/cd-tips-tricks
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Presented at QCon San Francisco
www.qconsf.com
About me
• Lisa van Gelder
• Consultant at Cyrus Innovation
• lvangelder@cyrusinnovation.com
• @techbint
Continuous Delivery
Is not:!
• Continuous deployment
• Automating all the things
Is:
• Removing the bottlenecks that stop you delivering
Ooda loop
• observe, orient, decide, and act
- John Boyd, Father of the F16
Continuous Delivery
• Measure the total cycle time
• Reduce your cycle time
• Improve your reaction time
How do you choose
where to start?
Double the frequency
of releases
Benefits of smaller releases
• Code only has value in production - get it there
quicker!
• Less co-ordination required
• Easier to test
• Easier to see if it caused issues in production
• Easier to rollback
If you can’t release,
fake it
Blockers
• Releases cause problems for users
• Ops team don’t have time to do more releases
• Ops/dev don’t have time to support more releases
• QA don’t have time to test new features
• Takes too long to get a green build
Releases cause problems
for users
• data loss
• performance issues
• broken functionality
The cms that made journalists
stop work for 20 minutes…
• db changes tied to code changes
• too much state in session
Releases cause
performance problems
• play back logs
• soak test
• dark launch
• performance test as soon as you can
Releases break existing
functionality
• missing tests
• no env like prod to test on
The cdn that broke the
release
• POST /myapp/comment/123/recommend
Ops don’t have the time
to perform more releases
Ops/dev don’t have time to
watch releases
• Release interrupts normal work
• Team on standby in case of issues
Help!
Rollbacks
• The risk is much higher when rollback isn’t possible
• Rollbacks should be normal operation, not a failure
• Users don’t care about your new feature if the site
is down
1. It should be possible to rollback
2. It should be quick to rollback
Rollbacks
A release should be a non-
event
• Done in working hours
• Easy to monitor
• Easy to rollback
QA don’t have time to test
Cross-functional issues
• release waiting on qa sign off
• release waiting on product manager sign off
• developers waiting on designs
• ux waiting on developers
• front-end developers waiting on back-end
Cross functional teams
• don’t start story if all resources aren’t available
• blockers should block
• when work is held up - can someone else perform
that function?
Takes too long to get a
green build
• Flaky tests
• Slow-running tests
• Merge hell
Flaky tests
• The tests that cry wolf
• Isolate them
• Fix them or delete them
Slow running tests
• More than 5 minutes is slow
• Waste of developer time
• Interrupt flow to fix
• People deploy without waiting for tests
• Frequent broken build
Slow running tests
• separate unit tests from acceptance tests
• limit the amount of acceptance tests
• mock dependencies - limit calls to db
• run tests in parallel
Merge hell
• Continuous Integration is more often than you think!
• Don’t have long lived feature branches
• Check in to master at least once a day
• Feature switches
• Branch by abstraction
QA define automated testing
strategy
Automate performance tests
What criteria do humans use to evaluate
performance tests?
• Have a performance test environment that is a scaled-
down replica of production
• Automate log collection, make sure tests reflect current
traffic patterns.
• Use your application-specific metrics
• Define acceptable ranges for your application
Automate release process
What criteria do humans use to evaluate
a successful release?
Use your application-specific metrics
and acceptable ranges
Summary
• Measure your cycle time
• Fix your bottlenecks
• Improve your reaction time
Questions?
Feedback please!
http://bit.ly/1q3FFIo
Suggestions for further
reading
• Continuous Delivery by Jez Humble & David Farley
• The Phoenix Project by Gene Kim, Kevin Behr &
George Spafford
• The Goal by Eliyahu M. Goldratt & Jeff Cox
• Lean Software Development by Mary Poppendieck
& Tom Poppendieck
• Release It! by Michael T. Nygard
Watch the video with slide synchronization on
InfoQ.com!
http://www.infoq.com/presentations/cd-tips-
tricks

More Related Content

What's hot

Agile at LIC (GTPF 2011)
Agile at LIC (GTPF 2011)Agile at LIC (GTPF 2011)
Agile at LIC (GTPF 2011)
Software Education
 
The Kanban Retrospective
The Kanban RetrospectiveThe Kanban Retrospective
The Kanban Retrospective
Colleen Johnson
 
Best Practices for Database Deployments
Best Practices for Database DeploymentsBest Practices for Database Deployments
Best Practices for Database Deployments
Red Gate Software
 
Batch v Lean 1 piece flow training
Batch v Lean 1 piece flow trainingBatch v Lean 1 piece flow training
Batch v Lean 1 piece flow training
Julian Kalac P.Eng
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
Batyr Nuryyev
 
1 piece flow training
1 piece flow training1 piece flow training
1 piece flow training
Julian Kalac P.Eng
 
Database Deployment Pipeline - SQL In The City Workshop 2014
Database Deployment Pipeline - SQL In The City Workshop 2014Database Deployment Pipeline - SQL In The City Workshop 2014
Database Deployment Pipeline - SQL In The City Workshop 2014
Red Gate Software
 
Intro to Kanban
Intro to KanbanIntro to Kanban
Intro to Kanban
Colleen Johnson
 
Evolving Architecture and Organization - Lessons from Google and eBay
Evolving Architecture and Organization - Lessons from Google and eBayEvolving Architecture and Organization - Lessons from Google and eBay
Evolving Architecture and Organization - Lessons from Google and eBay
Randy Shoup
 
Agile engineering practices
Agile engineering practicesAgile engineering practices
Agile engineering practices
Mustafa Savaşcı
 
DevOps for Speed and Agility - DevOpsTO May 2014
DevOps for Speed and Agility - DevOpsTO May 2014DevOps for Speed and Agility - DevOpsTO May 2014
DevOps for Speed and Agility - DevOpsTO May 2014
DevOps Ltd.
 
Agile North East Agile + DevOps by Craig Pearson of CAP Project Services
Agile North East Agile + DevOps by Craig Pearson of CAP Project ServicesAgile North East Agile + DevOps by Craig Pearson of CAP Project Services
Agile North East Agile + DevOps by Craig Pearson of CAP Project Services
Craig Pearson
 
2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo
Jon Arild Tørresdal
 
Software operability and run book collaboration London Feb 2014
Software operability and run book collaboration London Feb 2014Software operability and run book collaboration London Feb 2014
Software operability and run book collaboration London Feb 2014Matthew Skelton
 
Serverless On Stage - Serverless URL Shortener
Serverless On Stage - Serverless URL ShortenerServerless On Stage - Serverless URL Shortener
Serverless On Stage - Serverless URL Shortener
Luca Bianchi
 
Software architecture in a DevOps world
Software architecture in a DevOps worldSoftware architecture in a DevOps world
Software architecture in a DevOps world
Bert Jan Schrijver
 
Reducing S/W Development Cycle Time Through Lean Six Sigma
Reducing S/W Development Cycle Time Through Lean Six SigmaReducing S/W Development Cycle Time Through Lean Six Sigma
Reducing S/W Development Cycle Time Through Lean Six Sigma
Agile Ethos
 
Evolutionary Patterns in Portfolio Kanban
Evolutionary Patterns in Portfolio KanbanEvolutionary Patterns in Portfolio Kanban
Evolutionary Patterns in Portfolio Kanban
Colleen Johnson
 
Introduction to kanban
Introduction to kanbanIntroduction to kanban
Introduction to kanban
Robert Dempsey
 

What's hot (20)

Agile at LIC (GTPF 2011)
Agile at LIC (GTPF 2011)Agile at LIC (GTPF 2011)
Agile at LIC (GTPF 2011)
 
The Kanban Retrospective
The Kanban RetrospectiveThe Kanban Retrospective
The Kanban Retrospective
 
Best Practices for Database Deployments
Best Practices for Database DeploymentsBest Practices for Database Deployments
Best Practices for Database Deployments
 
Batch v Lean 1 piece flow training
Batch v Lean 1 piece flow trainingBatch v Lean 1 piece flow training
Batch v Lean 1 piece flow training
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
 
1 piece flow training
1 piece flow training1 piece flow training
1 piece flow training
 
Database Deployment Pipeline - SQL In The City Workshop 2014
Database Deployment Pipeline - SQL In The City Workshop 2014Database Deployment Pipeline - SQL In The City Workshop 2014
Database Deployment Pipeline - SQL In The City Workshop 2014
 
Intro to Kanban
Intro to KanbanIntro to Kanban
Intro to Kanban
 
Evolving Architecture and Organization - Lessons from Google and eBay
Evolving Architecture and Organization - Lessons from Google and eBayEvolving Architecture and Organization - Lessons from Google and eBay
Evolving Architecture and Organization - Lessons from Google and eBay
 
Agile engineering practices
Agile engineering practicesAgile engineering practices
Agile engineering practices
 
DevOps for Speed and Agility - DevOpsTO May 2014
DevOps for Speed and Agility - DevOpsTO May 2014DevOps for Speed and Agility - DevOpsTO May 2014
DevOps for Speed and Agility - DevOpsTO May 2014
 
Agile scrum
Agile scrumAgile scrum
Agile scrum
 
Agile North East Agile + DevOps by Craig Pearson of CAP Project Services
Agile North East Agile + DevOps by Craig Pearson of CAP Project ServicesAgile North East Agile + DevOps by Craig Pearson of CAP Project Services
Agile North East Agile + DevOps by Craig Pearson of CAP Project Services
 
2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo
 
Software operability and run book collaboration London Feb 2014
Software operability and run book collaboration London Feb 2014Software operability and run book collaboration London Feb 2014
Software operability and run book collaboration London Feb 2014
 
Serverless On Stage - Serverless URL Shortener
Serverless On Stage - Serverless URL ShortenerServerless On Stage - Serverless URL Shortener
Serverless On Stage - Serverless URL Shortener
 
Software architecture in a DevOps world
Software architecture in a DevOps worldSoftware architecture in a DevOps world
Software architecture in a DevOps world
 
Reducing S/W Development Cycle Time Through Lean Six Sigma
Reducing S/W Development Cycle Time Through Lean Six SigmaReducing S/W Development Cycle Time Through Lean Six Sigma
Reducing S/W Development Cycle Time Through Lean Six Sigma
 
Evolutionary Patterns in Portfolio Kanban
Evolutionary Patterns in Portfolio KanbanEvolutionary Patterns in Portfolio Kanban
Evolutionary Patterns in Portfolio Kanban
 
Introduction to kanban
Introduction to kanbanIntroduction to kanban
Introduction to kanban
 

Similar to Continuous Delivery for the Rest of Us

The Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ LinkedinThe Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ Linkedin
C4Media
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.com
Aviran Mordo
 
Hacker News Meetup April 2014
Hacker News Meetup April 2014Hacker News Meetup April 2014
Hacker News Meetup April 2014
Dan Quine
 
Project Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerProject Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on Docker
RightScale
 
Releasing To Production Every Week India
Releasing To Production Every Week   IndiaReleasing To Production Every Week   India
Releasing To Production Every Week Indiaexortech
 
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018 Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
Suzie Prince
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
SPC Adriatics
 
The Agile Mindset
The Agile MindsetThe Agile Mindset
The Agile Mindset
Tony Caniglia
 
Change Management in Hybrid landscapes 2017
Change Management in Hybrid landscapes 2017Change Management in Hybrid landscapes 2017
Change Management in Hybrid landscapes 2017
Chris Kernaghan
 
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps worldLucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
DevOps Enterprise Summit
 
DevOpsDays Rockies - Living in a Hybrid World
DevOpsDays Rockies - Living in a Hybrid WorldDevOpsDays Rockies - Living in a Hybrid World
DevOpsDays Rockies - Living in a Hybrid World
Courtney Kissler
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
Nick Josevski
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsCprime
 
Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​
Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​
Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​
Eggplant
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
DevOps for Enterprise Systems
 
Emptying Your Cup an Agile Primer
Emptying Your Cup an Agile Primer Emptying Your Cup an Agile Primer
Emptying Your Cup an Agile Primer
Todd Shelton
 
UX in Action: IBM Watson
UX in Action: IBM WatsonUX in Action: IBM Watson
UX in Action: IBM Watson
UserTesting
 
Resilience Planning & How the Empire Strikes Back
Resilience Planning & How the Empire Strikes BackResilience Planning & How the Empire Strikes Back
Resilience Planning & How the Empire Strikes Back
C4Media
 

Similar to Continuous Delivery for the Rest of Us (20)

The Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ LinkedinThe Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ Linkedin
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.com
 
Hacker News Meetup April 2014
Hacker News Meetup April 2014Hacker News Meetup April 2014
Hacker News Meetup April 2014
 
QA Best Practices in Agile World_new
QA Best Practices in Agile World_newQA Best Practices in Agile World_new
QA Best Practices in Agile World_new
 
Project Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerProject Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on Docker
 
Releasing To Production Every Week India
Releasing To Production Every Week   IndiaReleasing To Production Every Week   India
Releasing To Production Every Week India
 
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018 Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
 
Agile methodologies
Agile methodologiesAgile methodologies
Agile methodologies
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
The Agile Mindset
The Agile MindsetThe Agile Mindset
The Agile Mindset
 
Change Management in Hybrid landscapes 2017
Change Management in Hybrid landscapes 2017Change Management in Hybrid landscapes 2017
Change Management in Hybrid landscapes 2017
 
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps worldLucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
 
DevOpsDays Rockies - Living in a Hybrid World
DevOpsDays Rockies - Living in a Hybrid WorldDevOpsDays Rockies - Living in a Hybrid World
DevOpsDays Rockies - Living in a Hybrid World
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​
Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​
Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
 
Emptying Your Cup an Agile Primer
Emptying Your Cup an Agile Primer Emptying Your Cup an Agile Primer
Emptying Your Cup an Agile Primer
 
UX in Action: IBM Watson
UX in Action: IBM WatsonUX in Action: IBM Watson
UX in Action: IBM Watson
 
Resilience Planning & How the Empire Strikes Back
Resilience Planning & How the Empire Strikes BackResilience Planning & How the Empire Strikes Back
Resilience Planning & How the Empire Strikes Back
 

More from C4Media

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
C4Media
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
C4Media
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
C4Media
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
C4Media
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
C4Media
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
C4Media
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
C4Media
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
C4Media
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
C4Media
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
C4Media
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
C4Media
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
C4Media
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
C4Media
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
C4Media
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
C4Media
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
C4Media
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
C4Media
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
C4Media
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
C4Media
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
C4Media
 

More from C4Media (20)

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 

Recently uploaded

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 

Recently uploaded (20)

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 

Continuous Delivery for the Rest of Us

  • 2. InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /cd-tips-tricks
  • 3. Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide Presented at QCon San Francisco www.qconsf.com
  • 4. About me • Lisa van Gelder • Consultant at Cyrus Innovation • lvangelder@cyrusinnovation.com • @techbint
  • 5. Continuous Delivery Is not:! • Continuous deployment • Automating all the things Is: • Removing the bottlenecks that stop you delivering
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. Ooda loop • observe, orient, decide, and act - John Boyd, Father of the F16
  • 18.
  • 19. Continuous Delivery • Measure the total cycle time • Reduce your cycle time • Improve your reaction time
  • 20. How do you choose where to start?
  • 22. Benefits of smaller releases • Code only has value in production - get it there quicker! • Less co-ordination required • Easier to test • Easier to see if it caused issues in production • Easier to rollback
  • 23. If you can’t release, fake it
  • 24.
  • 25. Blockers • Releases cause problems for users • Ops team don’t have time to do more releases • Ops/dev don’t have time to support more releases • QA don’t have time to test new features • Takes too long to get a green build
  • 26. Releases cause problems for users • data loss • performance issues • broken functionality
  • 27. The cms that made journalists stop work for 20 minutes… • db changes tied to code changes • too much state in session
  • 28. Releases cause performance problems • play back logs • soak test • dark launch • performance test as soon as you can
  • 29. Releases break existing functionality • missing tests • no env like prod to test on
  • 30. The cdn that broke the release • POST /myapp/comment/123/recommend
  • 31. Ops don’t have the time to perform more releases
  • 32.
  • 33.
  • 34. Ops/dev don’t have time to watch releases • Release interrupts normal work • Team on standby in case of issues
  • 35. Help!
  • 36.
  • 37. Rollbacks • The risk is much higher when rollback isn’t possible • Rollbacks should be normal operation, not a failure • Users don’t care about your new feature if the site is down 1. It should be possible to rollback 2. It should be quick to rollback
  • 39. A release should be a non- event • Done in working hours • Easy to monitor • Easy to rollback
  • 40. QA don’t have time to test
  • 41.
  • 42. Cross-functional issues • release waiting on qa sign off • release waiting on product manager sign off • developers waiting on designs • ux waiting on developers • front-end developers waiting on back-end
  • 43.
  • 44. Cross functional teams • don’t start story if all resources aren’t available • blockers should block • when work is held up - can someone else perform that function?
  • 45. Takes too long to get a green build • Flaky tests • Slow-running tests • Merge hell
  • 46. Flaky tests • The tests that cry wolf • Isolate them • Fix them or delete them
  • 47. Slow running tests • More than 5 minutes is slow • Waste of developer time • Interrupt flow to fix • People deploy without waiting for tests • Frequent broken build
  • 48. Slow running tests • separate unit tests from acceptance tests • limit the amount of acceptance tests • mock dependencies - limit calls to db • run tests in parallel
  • 49. Merge hell • Continuous Integration is more often than you think! • Don’t have long lived feature branches • Check in to master at least once a day • Feature switches • Branch by abstraction
  • 50.
  • 51. QA define automated testing strategy
  • 52. Automate performance tests What criteria do humans use to evaluate performance tests?
  • 53. • Have a performance test environment that is a scaled- down replica of production • Automate log collection, make sure tests reflect current traffic patterns. • Use your application-specific metrics • Define acceptable ranges for your application
  • 54. Automate release process What criteria do humans use to evaluate a successful release? Use your application-specific metrics and acceptable ranges
  • 55. Summary • Measure your cycle time • Fix your bottlenecks • Improve your reaction time
  • 57. Suggestions for further reading • Continuous Delivery by Jez Humble & David Farley • The Phoenix Project by Gene Kim, Kevin Behr & George Spafford • The Goal by Eliyahu M. Goldratt & Jeff Cox • Lean Software Development by Mary Poppendieck & Tom Poppendieck • Release It! by Michael T. Nygard
  • 58. Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations/cd-tips- tricks