SlideShare a Scribd company logo
1 of 76
Continuous Delivery
Helping your business win by bringing the pain forward
Eduards Sizovs
Founder & Consultant
... Interested in bringing Continuous Delivery to your
company?
No problem! Just let us know 
Software development
& consulting
www.craftsmans.lv
@eduardsi
eduards.sizovs@gmail.com
Agenda
• Introduction
• Deployment pipeline
• User disruption
• Anti-patterns
• Adoption
• Tools
• Conclusion
• Q&A
Introduction
Our highest priority is to satisfy the customer through
early and continuous delivery of valuable software.
Agile Manifesto
What is continuous delivery?
Agile methodology for reducing the cost, time and risk of
delivering incremental changes to users.
Inspired by Lean Startup
Deliver the right thing. Frequently.
«You can’t just ask customers what they want
and then try to give that to them.
By the time you get it built, they’ll want
something new.»
So how frequently?
Deliver fast-enough so that a customer didn’t have time
to change their mind.
! Continuous Deployment is a different thing.
Goals
- Build the right thing (MVP, eliminate waste)
- Reduce lead time (reduce WiP, eliminate bottlenecks)
- Reduce cost (optimize, automate)
- Reduce risk (resilience built-in, small increments)
- Reduce stress (things goes faster, motivation up)
Continuously:
Who does continuous delivery?
Let’s rock.
Redefine «Done»
Coded Reviewed Checked-in Built Tested Demoed
Released to end-user.
According to the latest trends: removed from production
(A/B, experiments, backward compatibility)
How long would it take your organization to deploy a
change that involved just one single line of code?
Do you do this on a repeatable, reliable basis?
Mary & Tom Poppendieck
Implementing Lean Software Development
Determine cycle time
Reduce risk of release
« If it hurts, do it more frequently »
How?
By implementing end-to-end automation of
build, deploy, test and release processes.
The Deployment Pipeline
A pull system spanning full product cycle.
- Fully automated (with push button approvals)
- Visible
- Measurable
- Parallelizable
Build only once.
Deploy the same way to every environment.
Fail fast.
Automate everything (almost).
Build quality in.
Keep code always releasable.
Treat every version is a release candidate.
Contradicts with traditional approaches.
Quality goes up.
People care.
Version everything.
Single version. No major/minor/patch increments (except API).
Version control everything.
Code, Configuration, Infrastructure…
Test excessively.
Provide recovery plan.
… and reduce Mean Time To Recovery (MTTR)
Measure everything.
- Code Quality
- Cycle Time
- Lead Time
- Build, test duration
- # of Built failures
- # of Defects
- Small increments
- Deploy components independently
- Leave backward compatibility
Avoid «Big Bang» releases
Avoid branches
- True Continuous Integration - work only in mainline
- No feature branches
- No release branches
«Feature branching is a
poor man’s modular architecture»
Dan Bodart
Build a modular platform of micro-services.
... Interested in bringing Micro Services to your company?
No problem! Just let us know 
www.craftsmans.lv
Make no exceptions
Even urgent production fix should pass the same
deployment pipeline.
User disruption
downtime deployments
0
Blue - Green deployment
Deployment is not a Release.
Release is a marketing decision.
Smoke test deployment.
Release only after that.
Feature Toggles
Java people? 
Branch by Abstraction
Multiple versions in a single code base.
Backward compatibility is a key.
State is pain in the ass, but remediable with redundancy
Dealing with backward compatible code:
http://goo.gl/MMEO70
Canary releasing
Release to a subset of users.
Anti-Patterns
Code Freeze ceremony
Deployment rarely / late
Avoid late contact with reality.
Manual environment configuration
Privileged deploy team
Not repeatable process
Slight differences
Manual deployments
Sleep well. Forget 2.00 AM deployments.
Hard to track
Who? When? Why? What?
Adoption
Forget special «Continuous Delivery» projects
noun
1 a feeling of fear or agitation about something that may happen: the
men set off in fear and trepidation.
2 trembling motion.
Embrace change
trepidation | trep·i·da·tion
Raise confidence that
Change can be safe enough.
Do not be afraid to fail.
Learn what doesn’t work first, then see how to make it better.
Engineering Velocity: Shifting the Curve at Netflix
http://goo.gl/D10wGH
Continuously improve
Japanese for "improvement", or "change for the better"
Refers to philosophy or practices that focus upon continuous
improvement of processes in manufacturing, engineering, and business
management.
Kaizen | 改善
Find the right team and start kicking ass.
Tools
Versioning & Storage
hub.docker.com
Build & dependency management
CI + Pipelining + Deployments
Automation
Infrastructure
Script streamlining
DB migrations LHM (soundcloud/lhm)
Schema-less DBs?
Configuration Management
Apache ZooKeeper Apache Curator
Netflix Archaius
github.com/Netflix/archaius
ATDD + Living documentation
Monitoring
www.getapp.com/alternatives/new-relic-application
https://github.com/Netflix/Hystrix
Micro-services?
http://www.slideshare.net/eduardsi/
micro-service-architecture
Conclusion
Continuous Delivery challenges
your engineering skills.
Are you ready to accept the challenge?
Thank you!

More Related Content

What's hot

Scrum And The Enterprise
Scrum And The EnterpriseScrum And The Enterprise
Scrum And The Enterprise
James Peckham
 

What's hot (20)

SDLC & DevSecOps
SDLC & DevSecOpsSDLC & DevSecOps
SDLC & DevSecOps
 
After Agile, DevOps, and Lean IT: Modern Methodology in the Age of Disruption
After Agile, DevOps, and Lean IT: Modern Methodology in the Age of DisruptionAfter Agile, DevOps, and Lean IT: Modern Methodology in the Age of Disruption
After Agile, DevOps, and Lean IT: Modern Methodology in the Age of Disruption
 
Agile 2 - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
Agile 2  - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021Agile 2  - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
Agile 2 - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
 
ROOTS2011 Continuous Delivery
ROOTS2011 Continuous DeliveryROOTS2011 Continuous Delivery
ROOTS2011 Continuous Delivery
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at Froscon
 
Scrum And The Enterprise
Scrum And The EnterpriseScrum And The Enterprise
Scrum And The Enterprise
 
DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.
 
AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...
AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...
AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...
 
Community building lessons from Ansible
Community building lessons from AnsibleCommunity building lessons from Ansible
Community building lessons from Ansible
 
CodeOne 2018 - Better software, faster: principles of Continuous Delivery and...
CodeOne 2018 - Better software, faster: principles of Continuous Delivery and...CodeOne 2018 - Better software, faster: principles of Continuous Delivery and...
CodeOne 2018 - Better software, faster: principles of Continuous Delivery and...
 
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship CultureTechnical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
 
Go or No-Go: Operability and Contingency Planning at Etsy.com
Go or No-Go: Operability and Contingency Planning at Etsy.comGo or No-Go: Operability and Contingency Planning at Etsy.com
Go or No-Go: Operability and Contingency Planning at Etsy.com
 
Technical Excellence Doesn't Just Happen - AgileIndy 2016
Technical Excellence Doesn't Just Happen - AgileIndy 2016Technical Excellence Doesn't Just Happen - AgileIndy 2016
Technical Excellence Doesn't Just Happen - AgileIndy 2016
 
Leading agile teams
Leading agile teamsLeading agile teams
Leading agile teams
 
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
 
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
 
Devops at scale is a hard problem challenges, insights and lessons learned
Devops at scale is a hard problem  challenges, insights and lessons learnedDevops at scale is a hard problem  challenges, insights and lessons learned
Devops at scale is a hard problem challenges, insights and lessons learned
 
Student Pipeline to Open Source Communities using HFOSS
Student Pipeline to Open Source Communities using HFOSSStudent Pipeline to Open Source Communities using HFOSS
Student Pipeline to Open Source Communities using HFOSS
 
DevOps Requires Agility
DevOps Requires AgilityDevOps Requires Agility
DevOps Requires Agility
 
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
 

Similar to Continuous Delivery (The newest)

Continuous Delivery
Continuous Delivery Continuous Delivery
Continuous Delivery
Dmitry Buzdin
 
Introduction to continuous delivery
Introduction to continuous deliveryIntroduction to continuous delivery
Introduction to continuous delivery
OlympicSoftware
 
2008 09 06 Eric Ries Haas Columbia Customer Development Engineering
2008 09 06 Eric Ries Haas Columbia Customer Development Engineering2008 09 06 Eric Ries Haas Columbia Customer Development Engineering
2008 09 06 Eric Ries Haas Columbia Customer Development Engineering
guest472f47
 

Similar to Continuous Delivery (The newest) (20)

Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Continuous Delivery
Continuous Delivery Continuous Delivery
Continuous Delivery
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Continuous, continuous, continuous
Continuous, continuous, continuousContinuous, continuous, continuous
Continuous, continuous, continuous
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)
 
Introduction to continuous delivery
Introduction to continuous deliveryIntroduction to continuous delivery
Introduction to continuous delivery
 
2008 09 06 Eric Ries Haas Columbia Customer Development Engineering
2008 09 06 Eric Ries Haas Columbia Customer Development Engineering2008 09 06 Eric Ries Haas Columbia Customer Development Engineering
2008 09 06 Eric Ries Haas Columbia Customer Development Engineering
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
 
Continuously delivering software to big brands (fullscreen edition)
Continuously delivering software to big brands (fullscreen edition)Continuously delivering software to big brands (fullscreen edition)
Continuously delivering software to big brands (fullscreen edition)
 
Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next ThingPushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing
 
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
 
Continuous Deployment Through Technical Excellence
Continuous Deployment Through Technical ExcellenceContinuous Deployment Through Technical Excellence
Continuous Deployment Through Technical Excellence
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
 
Java Forum Nord 2015 - Swimming upstream in the container revolution
Java Forum Nord 2015 - Swimming upstream in the container revolutionJava Forum Nord 2015 - Swimming upstream in the container revolution
Java Forum Nord 2015 - Swimming upstream in the container revolution
 
Continuous everything
Continuous everythingContinuous everything
Continuous everything
 
The Journey to Continuous Delivery
The Journey to Continuous DeliveryThe Journey to Continuous Delivery
The Journey to Continuous Delivery
 
Geecon Microservices 2015 - Swimming upstream in the container revolution
Geecon Microservices 2015 - Swimming upstream in the container revolutionGeecon Microservices 2015 - Swimming upstream in the container revolution
Geecon Microservices 2015 - Swimming upstream in the container revolution
 

More from Eduards Sizovs

Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service Architecture
Eduards Sizovs
 

More from Eduards Sizovs (6)

Beyond Software Craftsmanship - Johnny's Road to Remarkable Career
Beyond Software Craftsmanship - Johnny's Road to Remarkable CareerBeyond Software Craftsmanship - Johnny's Road to Remarkable Career
Beyond Software Craftsmanship - Johnny's Road to Remarkable Career
 
Architecting well-structured Java applications
Architecting well-structured Java applicationsArchitecting well-structured Java applications
Architecting well-structured Java applications
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service Architecture
 
SOLID
SOLIDSOLID
SOLID
 
Introduction to DDD
Introduction to DDDIntroduction to DDD
Introduction to DDD
 
Code Structural Analysis
Code Structural AnalysisCode Structural Analysis
Code Structural Analysis
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Continuous Delivery (The newest)

Editor's Notes

  1. 15 лет назад.
  2. When business come to you and say you’re releasing too frequently – you’re on the right way.
  3. Short Lead time  faster Feedback
  4. Большинство – тормозы. Неэффективность процесса и ОПАСНОСТЬ.
  5. The most complex task is push button.
  6. Create environment where people get responsible for consequence of their action and they will care (DevOps phylosophy)
  7. - Modules / services / entities / static content
  8. Постоянно упускаем нужный момент. Как продать необходимость улучшений? Lead time – from request to delivery Cycle time – work started to delivery
  9. Why branches? Parallelization. Multiple versions of the app. Unability to keep application stable during development. One goal, extra care. No merges. One version, push up teams for synchronization Brings pain forward, raises professionalism Isolation illusion
  10. If people have to use feature branch, something is wrong with your architecture.
  11. Ask.fm way (Gradual releases) Ask.fm way (Confiugration per node, per group)
  12. (Aggregating change)
  13. Code reviews, Pair Programming Safety nets Blameless culture, Team’s Responsibility Reduce TTD (Time to detect), TTR (Time to recover)
  14. Practice makes perfect. Toyota way.
  15. Bintray – Maven, RPM, Debian
  16. CD is hard. Process flaws become visible.