SlideShare a Scribd company logo
1 of 33
Download to read offline
How do you implement
Continuous Delivery?

Part 5: Deployment Patterns
Key Principle:
Low–risk releases are incremental
Low–risk
releases are
incremental

Why?
§  Big-bang releases that involve multiple dependent components,
database changes and/or business logic changes are highly volatile.

§  Instead incremental releases, where the new functionality and all
dependent services are thoroughly tested, and rollbacks are easier,
are low-risk.

§  Let’s explore some low-risk incremental deployment patterns…
Blue-Green
Deployment Pattern
Blue-Green
Deployment
Pattern

§  Minimizing downtime, while doing the “cut-over” from testing to
release is one of the key challenges with automating deployment.

§  The blue-green deployment approach does this by ensuring you
have two identical production environments.

§  It also helps you to rapidly rollback in the event of a failure.

http://martinfowler.com/bliki/BlueGreenDeployment.html
Blue-Green
Deployment
Pattern

At any time only one production environment,
let's say, blue, is live

Router

Blue Environment
Release 1

http://martinfowler.com/bliki/BlueGreenDeployment.html

Green Environment
Blue-Green
Deployment
Pattern

As you prepare a new release of your software you do
your final stage of testing in the green environment.

Router

Blue Environment

Green Environment

Release 1

Release 2

http://martinfowler.com/bliki/BlueGreenDeployment.html
Blue-Green
Deployment
Pattern

Once the software is working in the green environment, you switch
the router so that all incoming requests go to the green environment

Router

Blue Environment

Green Environment

Release 1

Release 2

http://martinfowler.com/bliki/BlueGreenDeployment.html
Blue-Green
Deployment
Pattern

The blue environment is now available
for you to deploy your next release.

Router

Blue Environment

Green Environment

Release 3

Release 2

http://martinfowler.com/bliki/BlueGreenDeployment.html
Phoenix
Deployment Pattern
Phoenix
Deployment
Pattern

§  Phoenix servers are those that you virtually tear down at regular
intervals.

§  Configuration drift describes inconsistencies between servers caused
by ad-hoc changes over time.

§  Phoenix servers are a great way to avoid configuration drift, as they
are rebuilt from a common template, and are not kept running for
long enough for much configuration drift to accumulate.

http://kief.com/configuration-drift.html
http://martinfowler.com/bliki/PhoenixServer.html
Phoenix
Deployment
Pattern

Consider Release 1 on R1 Environment

Router

R1 Environment
Release 1

http://martinfowler.com/bliki/BlueGreenDeployment.html
Phoenix
Deployment
Pattern

Ready Release 2 on the R2 Environment

Router

R1 Environment

R2 Environment

Release 1

Release 2

http://martinfowler.com/bliki/BlueGreenDeployment.html
Phoenix
Deployment
Pattern

Switch the router to the R2 Environment

Router

R1 Environment

R2 Environment

Release 1

Release 2

http://martinfowler.com/bliki/BlueGreenDeployment.html
Phoenix
Deployment
Pattern

Kill the R1 Environment

Router

R2 Environment
Release 2

http://martinfowler.com/bliki/BlueGreenDeployment.html
Phoenix
Deployment
Pattern

Continue the process with the R3 Environment

Router

R2 Environment

R3 Environment

Release 2

Release 3

http://martinfowler.com/bliki/BlueGreenDeployment.html
Environment Promotion
Pattern
Environment
Promotion
Pattern

§  With this pattern, a new environment is created for each
software release, and the environment itself is promoted
through the stages of the pipeline.

§  This ensures that the actual environment has been tested, rather
than only the changes to the configuration.

§  This pattern may be inappropriate when an environment needs
to be integrated with different external services at different
stages of the pipeline.

?
Environment
Promotion
Pattern

The R2 environment created for Release 2 of the application,
is tested in the QA stage
QA Router

UAT

Production
Router

R2 Environment
Release 2

?

R1 Environment
Release 1
Environment
Promotion
Pattern

The R2 environment is connected to the UAT router, and
Release 2 goes through user acceptance testing.
QA Router

UAT

Production
Router

R2 Environment
Release 2

?

R1 Environment
Release 1
Once the R2 environment and its software release have
passed UAT, the production router is configured to send
traffic to it, and the R1 environment is destroyed.

Environment
Promotion
Pattern

QA Router

Staging

R2 Environment
Release 2

?

Production
Router
Canary
Release Pattern
Canary
Release Pattern

§  This is a variation of blue-green deployment and is applicable
when running a cluster of servers.

§  With this pattern, rather than upgrading a whole cluster to the
latest version all at once, you do it incrementally.

§  This allows you to get feedback from a small subset of users prior
to a complete rollout

§  Like canaries in a coal mine, if a problem is discovered at the
initial stages, the build goes no further.

http://www.informit.com/articles/article.aspx?p=1833567
http://techcrunch.com/2011/05/30/facebook-source-code/
Canary
Release Pattern

Consider a cluster of servers

Router

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1
Canary
Release Pattern

The build is first routed to a small section of servers/users

Router

R1

R1

R1

R1

R1

R1

R2

R2

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1
Canary
Release Pattern

The release is validated with performance testing and multi-variant testing

Router

R1

R1

R1

R1

R1

R1

R2

R2

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1

R1
Canary
Release Pattern

Only after the release feedback is positive,
is it rolled out to all servers/users

Router

R2

R2

R2

R2

R2

R2

R2

R2

R2

R2

R2

R2

R2

R2

R2

R2

R2

R2

R2

R2

R2

R2

R2

R2
Dark Launching
Dark Launching

§  This involves releasing a new feature to a subset of users, with
minimal UI changes, while exercising all the parts of your
infrastructure involved in serving that feature.

§  This pattern is useful for massive, large-scale deployments to
simulate load/stress testing.

§  Dark launching exposes pain points and areas of the
infrastructure that need attention prior to the actual launch.

http://www.facebook.com/note.php?note_id=96390263919
Dark Launching

Rollout the release to all, with the new feature within it
being released to only a subset of servers/users

Router

R1 Release

R2 Release

R2 Release

New
Feature

New
Feature
Dark Launching

Only after satisfactory load/stress testing and feedback on the new
feature, is the new feature rolled out to all servers/users

Router

R1 Release

R2 Release

R2 Release

New
Feature

New
Feature
Data Management

Stay tuned for Part 6…
go

Continuous Delivery

Learn More

See how Go can help you in
your CD journey

Deploy a great product faster.

Agile teams deliver working software early and often.
Go automates and streamlines the build-test-release
cycle for worry-free, continuous delivery of your
product.

More Related Content

What's hot

Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinDiego Garber
 
Introduce to Git and Jenkins
Introduce to Git and JenkinsIntroduce to Git and Jenkins
Introduce to Git and JenkinsAn Nguyen
 
Build & Release Engineering
Build & Release Engineering Build & Release Engineering
Build & Release Engineering Pranesh Vittal
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD OverviewAn Nguyen
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestMarcin Grzejszczak
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CDAdsmurai
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneciberkleid
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery appliedMike McGarr
 
The 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringThe 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringSolano Labs
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consultTomas Riha
 
Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Fabricio Epaminondas
 
Continuous Deployment of your Application @jSession#5
Continuous Deployment of your Application @jSession#5Continuous Deployment of your Application @jSession#5
Continuous Deployment of your Application @jSession#5Marcin Grzejszczak
 
Taking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and GitTaking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and GitAlexander Vanwynsberghe
 
Continuous integration testing fundamentals
Continuous integration testing fundamentalsContinuous integration testing fundamentals
Continuous integration testing fundamentalsCygnet Infotech
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Stephen Ritchie
 
CI/CD for mobile at HERE
CI/CD for mobile at HERECI/CD for mobile at HERE
CI/CD for mobile at HEREStefan Verhoeff
 
Continuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San DiegoContinuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San DiegoMaaret Pyhäjärvi
 
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationRodrigo Russo
 

What's hot (20)

Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 Medellin
 
Introduce to Git and Jenkins
Introduce to Git and JenkinsIntroduce to Git and Jenkins
Introduce to Git and Jenkins
 
Build & Release Engineering
Build & Release Engineering Build & Release Engineering
Build & Release Engineering
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfest
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CD
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOne
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
 
The 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringThe 10 Commandments of Release Engineering
The 10 Commandments of Release Engineering
 
CI/CD
CI/CDCI/CD
CI/CD
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consult
 
Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015
 
Continuous Deployment of your Application @jSession#5
Continuous Deployment of your Application @jSession#5Continuous Deployment of your Application @jSession#5
Continuous Deployment of your Application @jSession#5
 
Taking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and GitTaking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and Git
 
Continuous integration testing fundamentals
Continuous integration testing fundamentalsContinuous integration testing fundamentals
Continuous integration testing fundamentals
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
 
CI/CD for mobile at HERE
CI/CD for mobile at HERECI/CD for mobile at HERE
CI/CD for mobile at HERE
 
Continuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San DiegoContinuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San Diego
 
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
 
Mobile Quality Assurance
Mobile Quality AssuranceMobile Quality Assurance
Mobile Quality Assurance
 

Similar to CD Deployment Patterns for Low-Risk Incremental Releases

Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"Fwdays
 
Continuous Deployment Strategies
Continuous Deployment StrategiesContinuous Deployment Strategies
Continuous Deployment StrategiesThoughtworks
 
Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)Sergio Navarro Pino
 
The Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF AdministratorThe Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF AdministratorSerena Software
 
Thinking after that disaster in cloud
Thinking after that disaster in cloudThinking after that disaster in cloud
Thinking after that disaster in cloudAmazon Web Services
 
Shift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production FailureShift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production FailureIBM UrbanCode Products
 
End-To-End Performance Testing, Profiling, and Analysis at Redis
End-To-End Performance Testing, Profiling, and Analysis at RedisEnd-To-End Performance Testing, Profiling, and Analysis at Redis
End-To-End Performance Testing, Profiling, and Analysis at RedisScyllaDB
 
21st Docker Switzerland Meetup - ISTIO
21st Docker Switzerland Meetup - ISTIO21st Docker Switzerland Meetup - ISTIO
21st Docker Switzerland Meetup - ISTIONiklaus Hirt
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weaveworks
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyMediafly
 
Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10MagaliDavidCruz
 
Dipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentDipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentMatthew Farina
 
Delivery Engines: Software & Spaceflight
Delivery Engines: Software & SpaceflightDelivery Engines: Software & Spaceflight
Delivery Engines: Software & SpaceflightMax Lincoln
 
Anand Ahire - Electric Cloud - Visibility, Coordination, Control. Getting st...
Anand Ahire - Electric Cloud - Visibility, Coordination, Control.  Getting st...Anand Ahire - Electric Cloud - Visibility, Coordination, Control.  Getting st...
Anand Ahire - Electric Cloud - Visibility, Coordination, Control. Getting st...DevOps Enterprise Summit
 
Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...
Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...
Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...hamidsamadi
 
V mware business continuity and disaster recovery design and deploy service
V mware business continuity and disaster recovery design and deploy serviceV mware business continuity and disaster recovery design and deploy service
V mware business continuity and disaster recovery design and deploy servicesolarisyougood
 
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...Daniel Bryant
 
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...Amazon Web Services
 

Similar to CD Deployment Patterns for Low-Risk Incremental Releases (20)

Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"
 
Advanced deployment scenarios
Advanced deployment scenariosAdvanced deployment scenarios
Advanced deployment scenarios
 
Continuous Deployment Strategies
Continuous Deployment StrategiesContinuous Deployment Strategies
Continuous Deployment Strategies
 
Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)
 
The Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF AdministratorThe Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
 
Thinking after that disaster in cloud
Thinking after that disaster in cloudThinking after that disaster in cloud
Thinking after that disaster in cloud
 
Shift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production FailureShift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production Failure
 
End-To-End Performance Testing, Profiling, and Analysis at Redis
End-To-End Performance Testing, Profiling, and Analysis at RedisEnd-To-End Performance Testing, Profiling, and Analysis at Redis
End-To-End Performance Testing, Profiling, and Analysis at Redis
 
Application Deployement Strategies
Application Deployement StrategiesApplication Deployement Strategies
Application Deployement Strategies
 
21st Docker Switzerland Meetup - ISTIO
21st Docker Switzerland Meetup - ISTIO21st Docker Switzerland Meetup - ISTIO
21st Docker Switzerland Meetup - ISTIO
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - Mediafly
 
Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10
 
Dipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentDipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application Development
 
Delivery Engines: Software & Spaceflight
Delivery Engines: Software & SpaceflightDelivery Engines: Software & Spaceflight
Delivery Engines: Software & Spaceflight
 
Anand Ahire - Electric Cloud - Visibility, Coordination, Control. Getting st...
Anand Ahire - Electric Cloud - Visibility, Coordination, Control.  Getting st...Anand Ahire - Electric Cloud - Visibility, Coordination, Control.  Getting st...
Anand Ahire - Electric Cloud - Visibility, Coordination, Control. Getting st...
 
Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...
Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...
Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...
 
V mware business continuity and disaster recovery design and deploy service
V mware business continuity and disaster recovery design and deploy serviceV mware business continuity and disaster recovery design and deploy service
V mware business continuity and disaster recovery design and deploy service
 
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
 
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
 

More from Thoughtworks

Design System as a Product
Design System as a ProductDesign System as a Product
Design System as a ProductThoughtworks
 
Designers, Developers & Dogs
Designers, Developers & DogsDesigners, Developers & Dogs
Designers, Developers & DogsThoughtworks
 
Cloud-first for fast innovation
Cloud-first for fast innovationCloud-first for fast innovation
Cloud-first for fast innovationThoughtworks
 
More impact with flexible teams
More impact with flexible teamsMore impact with flexible teams
More impact with flexible teamsThoughtworks
 
Culture of Innovation
Culture of InnovationCulture of Innovation
Culture of InnovationThoughtworks
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer ExperienceThoughtworks
 
When we design together
When we design togetherWhen we design together
When we design togetherThoughtworks
 
Hardware is hard(er)
Hardware is hard(er)Hardware is hard(er)
Hardware is hard(er)Thoughtworks
 
Customer-centric innovation enabled by cloud
 Customer-centric innovation enabled by cloud Customer-centric innovation enabled by cloud
Customer-centric innovation enabled by cloudThoughtworks
 
Amazon's Culture of Innovation
Amazon's Culture of InnovationAmazon's Culture of Innovation
Amazon's Culture of InnovationThoughtworks
 
When in doubt, go live
When in doubt, go liveWhen in doubt, go live
When in doubt, go liveThoughtworks
 
Don't cross the Rubicon
Don't cross the RubiconDon't cross the Rubicon
Don't cross the RubiconThoughtworks
 
Your test coverage is a lie!
Your test coverage is a lie!Your test coverage is a lie!
Your test coverage is a lie!Thoughtworks
 
Docker container security
Docker container securityDocker container security
Docker container securityThoughtworks
 
Redefining the unit
Redefining the unitRedefining the unit
Redefining the unitThoughtworks
 
Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Thoughtworks
 
A Tribute to Turing
A Tribute to TuringA Tribute to Turing
A Tribute to TuringThoughtworks
 
Rsa maths worked out
Rsa maths worked outRsa maths worked out
Rsa maths worked outThoughtworks
 

More from Thoughtworks (20)

Design System as a Product
Design System as a ProductDesign System as a Product
Design System as a Product
 
Designers, Developers & Dogs
Designers, Developers & DogsDesigners, Developers & Dogs
Designers, Developers & Dogs
 
Cloud-first for fast innovation
Cloud-first for fast innovationCloud-first for fast innovation
Cloud-first for fast innovation
 
More impact with flexible teams
More impact with flexible teamsMore impact with flexible teams
More impact with flexible teams
 
Culture of Innovation
Culture of InnovationCulture of Innovation
Culture of Innovation
 
Dual-Track Agile
Dual-Track AgileDual-Track Agile
Dual-Track Agile
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer Experience
 
When we design together
When we design togetherWhen we design together
When we design together
 
Hardware is hard(er)
Hardware is hard(er)Hardware is hard(er)
Hardware is hard(er)
 
Customer-centric innovation enabled by cloud
 Customer-centric innovation enabled by cloud Customer-centric innovation enabled by cloud
Customer-centric innovation enabled by cloud
 
Amazon's Culture of Innovation
Amazon's Culture of InnovationAmazon's Culture of Innovation
Amazon's Culture of Innovation
 
When in doubt, go live
When in doubt, go liveWhen in doubt, go live
When in doubt, go live
 
Don't cross the Rubicon
Don't cross the RubiconDon't cross the Rubicon
Don't cross the Rubicon
 
Error handling
Error handlingError handling
Error handling
 
Your test coverage is a lie!
Your test coverage is a lie!Your test coverage is a lie!
Your test coverage is a lie!
 
Docker container security
Docker container securityDocker container security
Docker container security
 
Redefining the unit
Redefining the unitRedefining the unit
Redefining the unit
 
Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22
 
A Tribute to Turing
A Tribute to TuringA Tribute to Turing
A Tribute to Turing
 
Rsa maths worked out
Rsa maths worked outRsa maths worked out
Rsa maths worked out
 

Recently uploaded

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Recently uploaded (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

CD Deployment Patterns for Low-Risk Incremental Releases

  • 1. How do you implement Continuous Delivery? Part 5: Deployment Patterns
  • 3. Low–risk releases are incremental Why? §  Big-bang releases that involve multiple dependent components, database changes and/or business logic changes are highly volatile. §  Instead incremental releases, where the new functionality and all dependent services are thoroughly tested, and rollbacks are easier, are low-risk. §  Let’s explore some low-risk incremental deployment patterns…
  • 5. Blue-Green Deployment Pattern §  Minimizing downtime, while doing the “cut-over” from testing to release is one of the key challenges with automating deployment. §  The blue-green deployment approach does this by ensuring you have two identical production environments. §  It also helps you to rapidly rollback in the event of a failure. http://martinfowler.com/bliki/BlueGreenDeployment.html
  • 6. Blue-Green Deployment Pattern At any time only one production environment, let's say, blue, is live Router Blue Environment Release 1 http://martinfowler.com/bliki/BlueGreenDeployment.html Green Environment
  • 7. Blue-Green Deployment Pattern As you prepare a new release of your software you do your final stage of testing in the green environment. Router Blue Environment Green Environment Release 1 Release 2 http://martinfowler.com/bliki/BlueGreenDeployment.html
  • 8. Blue-Green Deployment Pattern Once the software is working in the green environment, you switch the router so that all incoming requests go to the green environment Router Blue Environment Green Environment Release 1 Release 2 http://martinfowler.com/bliki/BlueGreenDeployment.html
  • 9. Blue-Green Deployment Pattern The blue environment is now available for you to deploy your next release. Router Blue Environment Green Environment Release 3 Release 2 http://martinfowler.com/bliki/BlueGreenDeployment.html
  • 11. Phoenix Deployment Pattern §  Phoenix servers are those that you virtually tear down at regular intervals. §  Configuration drift describes inconsistencies between servers caused by ad-hoc changes over time. §  Phoenix servers are a great way to avoid configuration drift, as they are rebuilt from a common template, and are not kept running for long enough for much configuration drift to accumulate. http://kief.com/configuration-drift.html http://martinfowler.com/bliki/PhoenixServer.html
  • 12. Phoenix Deployment Pattern Consider Release 1 on R1 Environment Router R1 Environment Release 1 http://martinfowler.com/bliki/BlueGreenDeployment.html
  • 13. Phoenix Deployment Pattern Ready Release 2 on the R2 Environment Router R1 Environment R2 Environment Release 1 Release 2 http://martinfowler.com/bliki/BlueGreenDeployment.html
  • 14. Phoenix Deployment Pattern Switch the router to the R2 Environment Router R1 Environment R2 Environment Release 1 Release 2 http://martinfowler.com/bliki/BlueGreenDeployment.html
  • 15. Phoenix Deployment Pattern Kill the R1 Environment Router R2 Environment Release 2 http://martinfowler.com/bliki/BlueGreenDeployment.html
  • 16. Phoenix Deployment Pattern Continue the process with the R3 Environment Router R2 Environment R3 Environment Release 2 Release 3 http://martinfowler.com/bliki/BlueGreenDeployment.html
  • 18. Environment Promotion Pattern §  With this pattern, a new environment is created for each software release, and the environment itself is promoted through the stages of the pipeline. §  This ensures that the actual environment has been tested, rather than only the changes to the configuration. §  This pattern may be inappropriate when an environment needs to be integrated with different external services at different stages of the pipeline. ?
  • 19. Environment Promotion Pattern The R2 environment created for Release 2 of the application, is tested in the QA stage QA Router UAT Production Router R2 Environment Release 2 ? R1 Environment Release 1
  • 20. Environment Promotion Pattern The R2 environment is connected to the UAT router, and Release 2 goes through user acceptance testing. QA Router UAT Production Router R2 Environment Release 2 ? R1 Environment Release 1
  • 21. Once the R2 environment and its software release have passed UAT, the production router is configured to send traffic to it, and the R1 environment is destroyed. Environment Promotion Pattern QA Router Staging R2 Environment Release 2 ? Production Router
  • 23. Canary Release Pattern §  This is a variation of blue-green deployment and is applicable when running a cluster of servers. §  With this pattern, rather than upgrading a whole cluster to the latest version all at once, you do it incrementally. §  This allows you to get feedback from a small subset of users prior to a complete rollout §  Like canaries in a coal mine, if a problem is discovered at the initial stages, the build goes no further. http://www.informit.com/articles/article.aspx?p=1833567 http://techcrunch.com/2011/05/30/facebook-source-code/
  • 24. Canary Release Pattern Consider a cluster of servers Router R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1
  • 25. Canary Release Pattern The build is first routed to a small section of servers/users Router R1 R1 R1 R1 R1 R1 R2 R2 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1
  • 26. Canary Release Pattern The release is validated with performance testing and multi-variant testing Router R1 R1 R1 R1 R1 R1 R2 R2 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1 R1
  • 27. Canary Release Pattern Only after the release feedback is positive, is it rolled out to all servers/users Router R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2
  • 29. Dark Launching §  This involves releasing a new feature to a subset of users, with minimal UI changes, while exercising all the parts of your infrastructure involved in serving that feature. §  This pattern is useful for massive, large-scale deployments to simulate load/stress testing. §  Dark launching exposes pain points and areas of the infrastructure that need attention prior to the actual launch. http://www.facebook.com/note.php?note_id=96390263919
  • 30. Dark Launching Rollout the release to all, with the new feature within it being released to only a subset of servers/users Router R1 Release R2 Release R2 Release New Feature New Feature
  • 31. Dark Launching Only after satisfactory load/stress testing and feedback on the new feature, is the new feature rolled out to all servers/users Router R1 Release R2 Release R2 Release New Feature New Feature
  • 32. Data Management Stay tuned for Part 6…
  • 33. go Continuous Delivery Learn More See how Go can help you in your CD journey Deploy a great product faster. Agile teams deliver working software early and often. Go automates and streamlines the build-test-release cycle for worry-free, continuous delivery of your product.