Continuous Delivery
Helping your business win by bringing the pain forward
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.
Goals

    Continuously:

-   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)
Who does continuous delivery?
Let’s rock.
Redefine «Done»
Coded Reviewed Checked-in Built Tested Demoed



            Released to end-user.
Determine cycle time

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
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
Continuous Delivery
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.
Version control everything.

Code, Configuration, Infrastructure…
Test excessively.
Provide recovery plan.
Measure.
Avoid «Big Bang» releases


- Small increments
- Deploy components independently
- Leave backward compatibility
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.
Make no exceptions


Even urgent production fix should pass the same
             deployment pipeline.
User disruption
0   downtime deployments
Blue - Green deployment
Deployment is not a Release.
         Release is a marketing decision.
Smoke test deployment.
        Release only after that.
Feature Toggles
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
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
Adoption
Forget special «Continuous Delivery» projects
Embrace change
trepidation | trep·i·da·tion
noun
1 a feeling of fear or agitation about something that may happen: the
    men set off in fear and trepidation.
2 trembling motion.
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.
Continuously improve
Kaizen | 改善
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.
Find the right team and start kicking ass.
Tools
Versioning
Build & dependency management
CI + Pipelining
Automation
Infrastructure       Script streamlining



                      Glu   Capistrano


                     DB migrations
ATDD + Living documentation
Monitoring
Micro-services?
Conclusion
Continuous Delivery challenges
                      your engineering skills.




Are you ready to accept the challenge?
Thank you!

More Related Content

PPTX
Introduction to micro-services @DevOps pune Meetup
PPTX
Eduards Sizovs - Micro Service Architecture
PDF
Micro service architecture - building scalable web solutions - George James -...
PPTX
Microservices
PPTX
Micro Service Architecture
PDF
Spinnaker Microsrvices
PDF
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
PPTX
From Continuous Integration to DevOps
Introduction to micro-services @DevOps pune Meetup
Eduards Sizovs - Micro Service Architecture
Micro service architecture - building scalable web solutions - George James -...
Microservices
Micro Service Architecture
Spinnaker Microsrvices
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
From Continuous Integration to DevOps

What's hot (20)

PDF
Configuration as Code in Bamboo
PPTX
SkyBase - a Devops Platform for Hybrid Cloud
PPTX
Detailed Introduction To Docker
PDF
Jenkins Reviewbot
PPTX
DevOps and AWS - Code PaLOUsa 2017
PDF
Transform Digital Business with DevOps
PPTX
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
PDF
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
PDF
Infrastructure as Code with Ansible
PDF
Safe deployments with Blue-Green and Spinnaker
PPTX
OpenWhisk: Event-driven Design
PDF
Continuously serving the developer community with Continuous Integration and...
PDF
Deep Dive on Continuous Integration and Continuous Delivery in Anypoint Platf...
PDF
Cloud-native Data: Every Microservice Needs a Cache
PPTX
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
PPTX
Micro Services Architecture
PDF
Immutable Infrastructure: Rise of the Machine Images
PDF
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
PDF
Devops: Who Does What? - Devops Enterprise Summit 2016
PPTX
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
Configuration as Code in Bamboo
SkyBase - a Devops Platform for Hybrid Cloud
Detailed Introduction To Docker
Jenkins Reviewbot
DevOps and AWS - Code PaLOUsa 2017
Transform Digital Business with DevOps
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
Infrastructure as Code with Ansible
Safe deployments with Blue-Green and Spinnaker
OpenWhisk: Event-driven Design
Continuously serving the developer community with Continuous Integration and...
Deep Dive on Continuous Integration and Continuous Delivery in Anypoint Platf...
Cloud-native Data: Every Microservice Needs a Cache
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
Micro Services Architecture
Immutable Infrastructure: Rise of the Machine Images
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
Devops: Who Does What? - Devops Enterprise Summit 2016
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
Ad

Similar to Continuous Delivery (20)

PPTX
Continuous Delivery
PPTX
Continuous Delivery (The newest)
PDF
Continuous Delivery Distilled
PPTX
Павел Чуняев - State of Continuous Delivery in 2015
PPTX
State of continuous delivery in 2015 - Minsk 15-5-2015
PDF
Discovery delivery agiletour-xian
PDF
The Rationale for Continuous Delivery (The culture and practice of good softw...
PDF
Ncerc rlmca202 adm m1 ssm
PPTX
Continuous delivery applied (RJUG)
PDF
Continuous delivery best practices and essential tools
PDF
Continuous, continuous, continuous
PPTX
ROOTS2011 Continuous Delivery
PPTX
Continuous Delivery
PPTX
Continuous everything
PPTX
Introduction to continuous delivery
PDF
Use Scrum and Continuous Delivery to innovate like crazy!
PDF
Continuous delivery @åf consult
PDF
The DevOps Revolution And Beyond...
PDF
The Rationale for Continuous Delivery
PDF
Continuous delivery
Continuous Delivery
Continuous Delivery (The newest)
Continuous Delivery Distilled
Павел Чуняев - State of Continuous Delivery in 2015
State of continuous delivery in 2015 - Minsk 15-5-2015
Discovery delivery agiletour-xian
The Rationale for Continuous Delivery (The culture and practice of good softw...
Ncerc rlmca202 adm m1 ssm
Continuous delivery applied (RJUG)
Continuous delivery best practices and essential tools
Continuous, continuous, continuous
ROOTS2011 Continuous Delivery
Continuous Delivery
Continuous everything
Introduction to continuous delivery
Use Scrum and Continuous Delivery to innovate like crazy!
Continuous delivery @åf consult
The DevOps Revolution And Beyond...
The Rationale for Continuous Delivery
Continuous delivery
Ad

More from Eduards Sizovs (9)

PDF
Beyond Software Craftsmanship - Johnny's Road to Remarkable Career
PDF
8 Things That Make Continuous Delivery Go Nuts
PDF
Architecting well-structured Java applications
PDF
Software Architecture Anti-Patterns
PPTX
Software Craftsmanship Essentials
PPTX
Code Structural Analysis
PPTX
PPTX
Introduction to DDD
PPTX
Code Structural Analysis
Beyond Software Craftsmanship - Johnny's Road to Remarkable Career
8 Things That Make Continuous Delivery Go Nuts
Architecting well-structured Java applications
Software Architecture Anti-Patterns
Software Craftsmanship Essentials
Code Structural Analysis
Introduction to DDD
Code Structural Analysis

Continuous Delivery

Editor's Notes

  • #10: When business come to you and say you’re releasing too frequently – you’re on the right way.
  • #11: Short Lead time  fasterFeedbackIncreases motivation, as you get things done faster, less stress
  • #15: Большинство– тормозы. Неэффективность процесса и ОПАСНОСТЬ.
  • #18: The most complex task is push button.
  • #29: Create environment where people get responsible for consequence of their action and they will care (DevOpsphylosophy)
  • #30: - Modules / services / entities / staticcontent
  • #36: Whybranches? Parallelization. Multipleversionsoftheapp.Unability to keepapplicationstableduringdevelopment.Onegoal, extracare. No merges. Oneversion, pushupteamsforsynchronizationBringspainforward, raisesprofessionalismIsolationillusion
  • #37: If people have to use feature branch, something is wrong with your architecture.
  • #60: 3WReduce TTD (Time to detect), TTR (Time to recover)
  • #62: Practice makes perfect. Toyota way.
  • #73: CD is hard. Process flaws become visible.