SlideShare a Scribd company logo
1 of 37
25th November | UPTEC
Opening Event
Devops and Engineering Best Practices
Opening Event
Devops and Engineering Best Practices
Releasing at will
Len Bass
“This project is vital to our company.
How long will it take?”
3
Day 1
“Its taking too long!!! ”
4
Day 30
“You Are Fired!”
5
Day 60
Why Does Placing a System into
Production Take so Long?
• One reason is that changes are packaged into
releases.
• The CEO’s project has to be combined with
other efforts to make up a release
• Releases are scheduled
6
Managing releases
• Releases are stressful.
• Releases take careful management
– Errors in deployed code are a major source of
outages.
– So much so that organizations have formal release
plans.
– There is a position called a “Release Engineer”
that has responsibility for managing releases.
7
Suppose releases did not have to be
scheduled?
• Release when a code segment is complete
• Small releases
• Less stress
• Less waiting for a release to be complete
Shorter time to market for new features, fixes
• Happier CEO!
8
Ad hoc releases exist
• Many companies now release to production
multiple times per day.
– Etsy releases 90 times a day
– Facebook releases 2 times a day
– Amazon had a new release to production every
11.6 seconds in May of 2011
9
Replace management discipline over
release by engineering discipline
• The management discipline that went into
release planning and execution is replaced by
– Engineering process discipline
– Architecture techniques
– Tool support
10
Deployment
• Much of the current software engineering focus is on
completing code
• But … Code Complete Code in Production
• Between the completion of the code and the placing of
the code into production is a step called: Deployment
• Deploying completed code can be very time consuming
• One purpose of release planning is to deploy code
without errors
11
Modern Deployment Processes
Process Architecture techniques Tools
Continuous
Deployment
• Microservice architecture
• Backward/Forward
compatability
• Feature toggles
• Management
tools
• Deployment
pipeline tools
• Configuration
management tools
Post deployment
testing
• Reliability tactics
• Pedigreed testing
• Initialization testing
• Log generation
• Fault injection
tools
• Locality tools
• Performance
monitors
• Janatorial tools
12
Continuous Deployment Pipeline
13
Code is automatically placed into
production
14
Developer pushes a button and, as long as all of the automated
tests are passed, the code is placed into production
automatically through a tool chain.
• No coordination with other teams during the execution of
the tool chain
• No dependence on other teams activities
The ability to have a continuous deployment pipeline depends
on the architecture of the system being deployed.
~2002 Amazon instituted the following
design rules - 1
• All teams will henceforth expose their data and
functionality through service interfaces.
• Teams must communicate with each other through
these interfaces.
• There will be no other form of inter-process
communication allowed: no direct linking, no direct
reads of another team’s data store, no shared-
memory model, no back-doors whatsoever. The only
communication allowed is via service interface calls
over the network.
15
Amazon design rules - 2
• It doesn’t matter what technology they[services]
use.
• All service interfaces, without exception, must be
designed from the ground up to be externalizable.
• Amazon is providing the specifications for what has
come to be called “Microservice Architecture”.
• (Its really an architectural style).
16
In Addition
• Amazon has a “two pizza” rule.
• No team should be larger than can be fed with two
pizzas (~7 members).
• Each (micro) service is the responsibility
of one team
• This means that microservices are
small and intra team bandwidth
is high
• Large systems are made up of many microservices.
• There may be as many as 140 in a typical Amazon page.
17
Microservice architecture supports
continuous deployment
• Two topics:
– What is microservice architecture?
– What are the deployment issues and how do I
deal with them?
18
Micro service architecture
19
Service
• Each user request is satisfied by
some sequence of services.
• Most services are not externally
available.
• Each service communicates with
other services through service
interfaces.
• Service depth may
– Shallow (large fan out)
– Deep (small fan out, more
dependent services)
Services can have multiple instances
• The elasticity of the cloud will adjust the
number of instances of each service to reflect
the workload.
• Requests are routed through a load balancer
for each service
• This leads to
– Lots of load balancers
– Overhead for each request.
20
Digression into Service Oriented
Architecture (SOA)
– The definition of microservice architecture sounds
a lot like SOA.
– What is the difference?
– Amazon did not use the term “microservice
architecture” when they introduced their rules.
They said “this is SOA done right”
21
SOA typically has but microservice
architecture does not
• Enterprise service bus
• Elaborate protocols for sending messages to
services (WDSL*)
• Each service may be under the control of
different organization
• Brokers
• etc
22
Back to microservices
• Each service is the responsibility of a single
development team
• Individual developers can deploy new version
without coordination with other developers.
• It is possible that a single development team is
responsible for multiple services
23
Coordination model of microservice
architecture
• Elements of service interaction
– Services communicate asynchronously through
message passing
– Each service could (in principle) be deployed
anywhere on the net.
• Latency requirements will probably force particular
deployment location choices.
• Services must discover location of dependent services.
– State must be managed
24
Questions about Microservice
architecture
• /Q/ Isn’t it possible that different teams will implement
the same functionality, likely differently?
• /A/ Yes, but so what? Major duplications are avoided
through assignment of responsibilities to services.
Minor duplications are the price to be paid to avoid
necessity for synchronous coordination.
• /Q/ what about transactions?
• /A/ Microservice architectures privilege flexibility
above reliability and performance. Transactions are
recoverable through logging of service interactions.
This may introduce some delays if failures occur.
25
Microservice architecture supports
continuous deployment
• Two topics:
– What is microservice architecture?
– What are the deployment issues and how do I
deal with them?
26
Deploying a new version
of an application
Multiple instances of
a service are
executing
• Red is service being replaced
with new version
• Blue are clients
• Green are dependent services
VAVB
VBVB
UAT / staging /
performance
tests
Deployment goal and constraints
• Goal of a deployment is to move from current state (N instances
of version A of a service) to a new state (N instances of version B
of a service)
• Constraints:
– Any development team can deploy their service at any time.
I.e. New version of a service can be deployed either before or
after a new version of a client. (no synchronization among
development teams)
– It takes time to replace one instance of version A with an
instance of version B (order of minutes)
– Service to clients must be maintained while the new version is
being deployed.
28
Deployment strategies
• Two basic all of nothing strategies
– Red/Black – leave N instances with version A as they
are, allocate and provision N instances with version B
and then switch to version B and release instances
with version A.
– Rolling Upgrade – allocate one instance, provision it
with version B, release one version A instance. Repeat
N times.
• Partial strategies are canary testing and A/B
testing.
29
Trade offs – Red/Black and
Rolling Upgrade
• Red/Black
– Only one version available
to the client at any
particular time.
– Requires 2N instances
(additional costs)
• Rolling Upgrade
– Multiple versions are
available for service at the
same time
– Requires N+1 instances.
• Rolling upgrade is widely
used.
Update Auto Scaling
Group
Sort Instances
Remove & Deregister Old
Instance from ELB
Confirm Upgrade Spec
Terminate Old Instance
Wait for ASG to Start
New Instance
Register New Instance
with ELB
Rolling
Upgrade
in EC2
What are the problems with
Rolling Upgrade?
• Any development team can deploy their service
at any time.
• Three concerns
– Maintaining consistency between different versions of
the same service when performing a rolling upgrade
– Maintaining consistency among different services
– Maintaining consistency between aand persistent data
• Solutions exist for these concerns.
31
Canary testing
• Canaries are a small number of instances of a new version
placed in production in order to perform live testing in a
production environment.
• Canaries are observed closely to determine whether the
new version introduces any logical or performance
problems. If not, roll out new version globally. If so, roll
back canaries.
• Named after canaries
in coal mines.
• Similar in concept to
beta testing for shrink
wrapped software
32
A/B testing
• Suppose you wish to test user response to a
system variant. E.g. UI difference or marketing
effort. A is one variant and B is the other.
• You simultaneously make available both
variants to different audiences and compare
the responses.
• Implementation is the same as canary testing.
33
Rollback
• New versions of a service may be unacceptable
either for logical or performance reasons.
• Two options in this case
• Roll back (undo deployment)
• Roll forward (discontinue current deployment and
create a new release without the problem).
• Some organizations have automated rollback processes
• If the newly deployed system does not meet particular
performance metrics roll it back.
Summary
• Deploying small increments removes release
bottleneck
• Continuous deployment is a technique to
speed up deployment time. It relies on
– Disciplined engineering process
– Architectural techniques
– Tools
35
More Information
Contact
lenbass@cmu.edu
25th November | UPTEC

More Related Content

What's hot

Continuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and DeployitContinuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and DeployitXebiaLabs
 
Automating the build and deployment of legacy applications
Automating the build and deployment of legacy applicationsAutomating the build and deployment of legacy applications
Automating the build and deployment of legacy applicationsCachet Software Solutions Ltd
 
Leading the Transformation: Applying DevOps and Agile Principles at Scale
Leading the Transformation:  Applying DevOps and Agile Principles at ScaleLeading the Transformation:  Applying DevOps and Agile Principles at Scale
Leading the Transformation: Applying DevOps and Agile Principles at ScaleIBM UrbanCode Products
 
SONY - Process as Code: Continuous Delivery of a CD Pipeline
SONY - Process as Code: Continuous Delivery of a CD PipelineSONY - Process as Code: Continuous Delivery of a CD Pipeline
SONY - Process as Code: Continuous Delivery of a CD PipelineDevOps Enterprise Summit
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...IBM UrbanCode Products
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOpsEklove Mohan
 
The Journey Towards Continuous Integration
The Journey Towards Continuous IntegrationThe Journey Towards Continuous Integration
The Journey Towards Continuous IntegrationSebastian Marek
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practicesCode Mastery
 
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-Blox
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-BloxPerforce on Tour 2015 - Optimising the Developer Pipeline at U-Blox
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-BloxPerforce
 
Multiple Dimensions of Load Testing
Multiple Dimensions of Load TestingMultiple Dimensions of Load Testing
Multiple Dimensions of Load TestingAlexander Podelko
 
A Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for DatabasesA Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for DatabasesIBM UrbanCode Products
 
Load Testing: See a Bigger Picture, ALM Forum, 2014
Load Testing: See a Bigger Picture, ALM Forum, 2014Load Testing: See a Bigger Picture, ALM Forum, 2014
Load Testing: See a Bigger Picture, ALM Forum, 2014Alexander Podelko
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal infoSynapseindiappsdevelopment
 
5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous DeliveryXebiaLabs
 
Perforce on Tour 2015 - Securing the Helix Platform at Citrix
Perforce on Tour 2015 - Securing the Helix Platform at CitrixPerforce on Tour 2015 - Securing the Helix Platform at Citrix
Perforce on Tour 2015 - Securing the Helix Platform at CitrixPerforce
 
Release and Deploy Sessions at IBM InterConnect 2015
Release and Deploy Sessions at IBM InterConnect 2015Release and Deploy Sessions at IBM InterConnect 2015
Release and Deploy Sessions at IBM InterConnect 2015IBM UrbanCode Products
 
ITIL, Release Management and Automation
ITIL, Release Management and AutomationITIL, Release Management and Automation
ITIL, Release Management and AutomationIBM UrbanCode Products
 

What's hot (20)

Continuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and DeployitContinuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and Deployit
 
Extreme Makeover OnBase Edition
Extreme Makeover OnBase EditionExtreme Makeover OnBase Edition
Extreme Makeover OnBase Edition
 
Automating the build and deployment of legacy applications
Automating the build and deployment of legacy applicationsAutomating the build and deployment of legacy applications
Automating the build and deployment of legacy applications
 
Leading the Transformation: Applying DevOps and Agile Principles at Scale
Leading the Transformation:  Applying DevOps and Agile Principles at ScaleLeading the Transformation:  Applying DevOps and Agile Principles at Scale
Leading the Transformation: Applying DevOps and Agile Principles at Scale
 
SONY - Process as Code: Continuous Delivery of a CD Pipeline
SONY - Process as Code: Continuous Delivery of a CD PipelineSONY - Process as Code: Continuous Delivery of a CD Pipeline
SONY - Process as Code: Continuous Delivery of a CD Pipeline
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
 
The Journey Towards Continuous Integration
The Journey Towards Continuous IntegrationThe Journey Towards Continuous Integration
The Journey Towards Continuous Integration
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
 
Avoiding the Release Weekend
Avoiding the Release Weekend Avoiding the Release Weekend
Avoiding the Release Weekend
 
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-Blox
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-BloxPerforce on Tour 2015 - Optimising the Developer Pipeline at U-Blox
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-Blox
 
Multiple Dimensions of Load Testing
Multiple Dimensions of Load TestingMultiple Dimensions of Load Testing
Multiple Dimensions of Load Testing
 
A Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for DatabasesA Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for Databases
 
Load Testing: See a Bigger Picture, ALM Forum, 2014
Load Testing: See a Bigger Picture, ALM Forum, 2014Load Testing: See a Bigger Picture, ALM Forum, 2014
Load Testing: See a Bigger Picture, ALM Forum, 2014
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal info
 
5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery
 
Perforce on Tour 2015 - Securing the Helix Platform at Citrix
Perforce on Tour 2015 - Securing the Helix Platform at CitrixPerforce on Tour 2015 - Securing the Helix Platform at Citrix
Perforce on Tour 2015 - Securing the Helix Platform at Citrix
 
Release and Deploy Sessions at IBM InterConnect 2015
Release and Deploy Sessions at IBM InterConnect 2015Release and Deploy Sessions at IBM InterConnect 2015
Release and Deploy Sessions at IBM InterConnect 2015
 
ITIL, Release Management and Automation
ITIL, Release Management and AutomationITIL, Release Management and Automation
ITIL, Release Management and Automation
 

Viewers also liked

Company Profile
Company ProfileCompany Profile
Company ProfileNeha Bhati
 
App design predictions for 2016 that will make iron man jealous
App design predictions for 2016 that will make iron man jealousApp design predictions for 2016 that will make iron man jealous
App design predictions for 2016 that will make iron man jealousLogo Design Guru
 
Master Minds on Data Science - Joost de Wit
Master Minds on Data Science - Joost de WitMaster Minds on Data Science - Joost de Wit
Master Minds on Data Science - Joost de WitMedia Perspectives
 
Primend Pilvekonverents - Windows 10 migratsiooni õppetunnid
Primend Pilvekonverents - Windows 10 migratsiooni õppetunnid Primend Pilvekonverents - Windows 10 migratsiooni õppetunnid
Primend Pilvekonverents - Windows 10 migratsiooni õppetunnid Primend
 
Screenplay Survey Results - Spy/Action Film
Screenplay Survey Results - Spy/Action FilmScreenplay Survey Results - Spy/Action Film
Screenplay Survey Results - Spy/Action FilmJames McConnell
 
Barcode Use in Fairs 04-10-2012
Barcode Use in Fairs 04-10-2012Barcode Use in Fairs 04-10-2012
Barcode Use in Fairs 04-10-2012sbasgall
 
Bc7f5 implementasi-spmi---november-2015
Bc7f5 implementasi-spmi---november-2015Bc7f5 implementasi-spmi---november-2015
Bc7f5 implementasi-spmi---november-2015Andy Jie
 
Mise en-scene plan - ellie1
Mise en-scene plan - ellie1Mise en-scene plan - ellie1
Mise en-scene plan - ellie1rhsmediastudies
 

Viewers also liked (12)

Company Profile
Company ProfileCompany Profile
Company Profile
 
App design predictions for 2016 that will make iron man jealous
App design predictions for 2016 that will make iron man jealousApp design predictions for 2016 that will make iron man jealous
App design predictions for 2016 that will make iron man jealous
 
Master Minds on Data Science - Joost de Wit
Master Minds on Data Science - Joost de WitMaster Minds on Data Science - Joost de Wit
Master Minds on Data Science - Joost de Wit
 
Snn raj serenity
Snn raj serenitySnn raj serenity
Snn raj serenity
 
Primend Pilvekonverents - Windows 10 migratsiooni õppetunnid
Primend Pilvekonverents - Windows 10 migratsiooni õppetunnid Primend Pilvekonverents - Windows 10 migratsiooni õppetunnid
Primend Pilvekonverents - Windows 10 migratsiooni õppetunnid
 
ACADEMIC_PROFILES_OF_SK
ACADEMIC_PROFILES_OF_SKACADEMIC_PROFILES_OF_SK
ACADEMIC_PROFILES_OF_SK
 
Mapp vs Ohio
Mapp vs OhioMapp vs Ohio
Mapp vs Ohio
 
Belgien
BelgienBelgien
Belgien
 
Screenplay Survey Results - Spy/Action Film
Screenplay Survey Results - Spy/Action FilmScreenplay Survey Results - Spy/Action Film
Screenplay Survey Results - Spy/Action Film
 
Barcode Use in Fairs 04-10-2012
Barcode Use in Fairs 04-10-2012Barcode Use in Fairs 04-10-2012
Barcode Use in Fairs 04-10-2012
 
Bc7f5 implementasi-spmi---november-2015
Bc7f5 implementasi-spmi---november-2015Bc7f5 implementasi-spmi---november-2015
Bc7f5 implementasi-spmi---november-2015
 
Mise en-scene plan - ellie1
Mise en-scene plan - ellie1Mise en-scene plan - ellie1
Mise en-scene plan - ellie1
 

Similar to Deploying at will - SEI

The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native ApplicationEmiliano Pecis
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestMarcin Grzejszczak
 
Road to agile: federal government case study
Road to agile: federal government case studyRoad to agile: federal government case study
Road to agile: federal government case studyDavid Marsh
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud RoadGert Drapers
 
AWS Summit Auckland - Smaller is Better - Microservices on AWS
AWS Summit Auckland - Smaller is Better - Microservices on AWSAWS Summit Auckland - Smaller is Better - Microservices on AWS
AWS Summit Auckland - Smaller is Better - Microservices on AWSAmazon Web Services
 
Deployability
DeployabilityDeployability
DeployabilityLen Bass
 
Microservices: The Best Practices
Microservices: The Best PracticesMicroservices: The Best Practices
Microservices: The Best PracticesPavel Mička
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Richard Langlois P. Eng.
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?Eduard Tomàs
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build testLen Bass
 
Meetup: Platform-as-a-Service / Cloud Foundry
Meetup: Platform-as-a-Service / Cloud FoundryMeetup: Platform-as-a-Service / Cloud Foundry
Meetup: Platform-as-a-Service / Cloud FoundryTipico / Booxware
 
API310 - How to refactor a monolith to serverless in 8 steps
API310 - How to refactor a monolith to serverless in 8 stepsAPI310 - How to refactor a monolith to serverless in 8 steps
API310 - How to refactor a monolith to serverless in 8 stepsYan Cui
 
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard LiAmbassador Labs
 
How would ESBs look like, if they were done today.
How would ESBs look like, if they were done today.How would ESBs look like, if they were done today.
How would ESBs look like, if they were done today.Markus Eisele
 
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...DevOps.com
 
2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysosloJon Arild Tørresdal
 

Similar to Deploying at will - SEI (20)

Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfest
 
Road to agile: federal government case study
Road to agile: federal government case studyRoad to agile: federal government case study
Road to agile: federal government case study
 
Continuous Delivery Maturity Model
Continuous Delivery Maturity ModelContinuous Delivery Maturity Model
Continuous Delivery Maturity Model
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud Road
 
AWS Summit Auckland - Smaller is Better - Microservices on AWS
AWS Summit Auckland - Smaller is Better - Microservices on AWSAWS Summit Auckland - Smaller is Better - Microservices on AWS
AWS Summit Auckland - Smaller is Better - Microservices on AWS
 
Deployability
DeployabilityDeployability
Deployability
 
Microservices: The Best Practices
Microservices: The Best PracticesMicroservices: The Best Practices
Microservices: The Best Practices
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build test
 
Meetup: Platform-as-a-Service / Cloud Foundry
Meetup: Platform-as-a-Service / Cloud FoundryMeetup: Platform-as-a-Service / Cloud Foundry
Meetup: Platform-as-a-Service / Cloud Foundry
 
API310 - How to refactor a monolith to serverless in 8 steps
API310 - How to refactor a monolith to serverless in 8 stepsAPI310 - How to refactor a monolith to serverless in 8 steps
API310 - How to refactor a monolith to serverless in 8 steps
 
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
 
How would ESBs look like, if they were done today.
How would ESBs look like, if they were done today.How would ESBs look like, if they were done today.
How would ESBs look like, if they were done today.
 
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
 
2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo
 

More from Strongstep - Innovation in software quality

6. Study of the Certification impact by Pedro Castro Henriques (Strongstep) e...
6. Study of the Certification impact by Pedro Castro Henriques (Strongstep) e...6. Study of the Certification impact by Pedro Castro Henriques (Strongstep) e...
6. Study of the Certification impact by Pedro Castro Henriques (Strongstep) e...Strongstep - Innovation in software quality
 
Development of Industrial Computer Vision Systems in the context of CMMI leve...
Development of Industrial Computer Vision Systems in the context of CMMI leve...Development of Industrial Computer Vision Systems in the context of CMMI leve...
Development of Industrial Computer Vision Systems in the context of CMMI leve...Strongstep - Innovation in software quality
 

More from Strongstep - Innovation in software quality (20)

2.CMMI L2 GO Contact - Paulo Roncon
2.CMMI L2 GO Contact - Paulo Roncon2.CMMI L2 GO Contact - Paulo Roncon
2.CMMI L2 GO Contact - Paulo Roncon
 
5. InnoWave’s Integrated Quality System Empowerment with CMMI - Bruna Batista
5. InnoWave’s Integrated Quality System Empowerment with CMMI - Bruna Batista5. InnoWave’s Integrated Quality System Empowerment with CMMI - Bruna Batista
5. InnoWave’s Integrated Quality System Empowerment with CMMI - Bruna Batista
 
6. Study of the Certification impact by Pedro Castro Henriques (Strongstep) e...
6. Study of the Certification impact by Pedro Castro Henriques (Strongstep) e...6. Study of the Certification impact by Pedro Castro Henriques (Strongstep) e...
6. Study of the Certification impact by Pedro Castro Henriques (Strongstep) e...
 
3. MICRO IO’s CMMI Development 2 implementation - Rui Rebelo
3. MICRO IO’s CMMI Development 2 implementation - Rui Rebelo3. MICRO IO’s CMMI Development 2 implementation - Rui Rebelo
3. MICRO IO’s CMMI Development 2 implementation - Rui Rebelo
 
4.Enabling Talent Through Systematization by GLOBALTRONIC Sérgio Silva
4.Enabling Talent Through Systematization by GLOBALTRONIC Sérgio Silva4.Enabling Talent Through Systematization by GLOBALTRONIC Sérgio Silva
4.Enabling Talent Through Systematization by GLOBALTRONIC Sérgio Silva
 
1. Quality and Performance Management by IT SECTOR António Rodrigues
1. Quality and Performance Management by IT SECTOR António Rodrigues1. Quality and Performance Management by IT SECTOR António Rodrigues
1. Quality and Performance Management by IT SECTOR António Rodrigues
 
Presentation quatic 2016 final v1.2
Presentation quatic 2016 final v1.2Presentation quatic 2016 final v1.2
Presentation quatic 2016 final v1.2
 
Agile portugal 2016 Agile Gamification on www.scraim.com
Agile portugal 2016   Agile Gamification on www.scraim.comAgile portugal 2016   Agile Gamification on www.scraim.com
Agile portugal 2016 Agile Gamification on www.scraim.com
 
Cmmi & Scrum - a powerfull combination @ Primavera
Cmmi & Scrum - a powerfull combination @ Primavera Cmmi & Scrum - a powerfull combination @ Primavera
Cmmi & Scrum - a powerfull combination @ Primavera
 
Agile Portugal 2016 - Celfinet & Strongstep
Agile Portugal 2016 - Celfinet & StrongstepAgile Portugal 2016 - Celfinet & Strongstep
Agile Portugal 2016 - Celfinet & Strongstep
 
Actor 3 Project - Inovaria
Actor 3 Project - InovariaActor 3 Project - Inovaria
Actor 3 Project - Inovaria
 
Development of Industrial Computer Vision Systems in the context of CMMI leve...
Development of Industrial Computer Vision Systems in the context of CMMI leve...Development of Industrial Computer Vision Systems in the context of CMMI leve...
Development of Industrial Computer Vision Systems in the context of CMMI leve...
 
CMMI & Scrum @ Primavera
CMMI & Scrum @ PrimaveraCMMI & Scrum @ Primavera
CMMI & Scrum @ Primavera
 
ITMark Premium - Micro IO
ITMark Premium - Micro IOITMark Premium - Micro IO
ITMark Premium - Micro IO
 
ITMark - Matchprofiler
ITMark - MatchprofilerITMark - Matchprofiler
ITMark - Matchprofiler
 
Continuous Deployment - Celfinet
Continuous Deployment - CelfinetContinuous Deployment - Celfinet
Continuous Deployment - Celfinet
 
yubuy® - DevOps baked in Wood-Fire Oven - InnoWave
yubuy® - DevOps baked in Wood-Fire Oven - InnoWaveyubuy® - DevOps baked in Wood-Fire Oven - InnoWave
yubuy® - DevOps baked in Wood-Fire Oven - InnoWave
 
Powering your Software Development
Powering your Software DevelopmentPowering your Software Development
Powering your Software Development
 
Trends 2015: Case Study - Primavera by Miguel Barroso
Trends 2015: Case Study - Primavera by Miguel BarrosoTrends 2015: Case Study - Primavera by Miguel Barroso
Trends 2015: Case Study - Primavera by Miguel Barroso
 
Trends 2015: Case Study - Micro I/O by Rui Rebelo
Trends 2015: Case Study - Micro I/O by Rui RebeloTrends 2015: Case Study - Micro I/O by Rui Rebelo
Trends 2015: Case Study - Micro I/O by Rui Rebelo
 

Recently uploaded

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 

Recently uploaded (20)

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 

Deploying at will - SEI

  • 1. 25th November | UPTEC Opening Event Devops and Engineering Best Practices
  • 2. Opening Event Devops and Engineering Best Practices Releasing at will Len Bass
  • 3. “This project is vital to our company. How long will it take?” 3 Day 1
  • 4. “Its taking too long!!! ” 4 Day 30
  • 6. Why Does Placing a System into Production Take so Long? • One reason is that changes are packaged into releases. • The CEO’s project has to be combined with other efforts to make up a release • Releases are scheduled 6
  • 7. Managing releases • Releases are stressful. • Releases take careful management – Errors in deployed code are a major source of outages. – So much so that organizations have formal release plans. – There is a position called a “Release Engineer” that has responsibility for managing releases. 7
  • 8. Suppose releases did not have to be scheduled? • Release when a code segment is complete • Small releases • Less stress • Less waiting for a release to be complete Shorter time to market for new features, fixes • Happier CEO! 8
  • 9. Ad hoc releases exist • Many companies now release to production multiple times per day. – Etsy releases 90 times a day – Facebook releases 2 times a day – Amazon had a new release to production every 11.6 seconds in May of 2011 9
  • 10. Replace management discipline over release by engineering discipline • The management discipline that went into release planning and execution is replaced by – Engineering process discipline – Architecture techniques – Tool support 10
  • 11. Deployment • Much of the current software engineering focus is on completing code • But … Code Complete Code in Production • Between the completion of the code and the placing of the code into production is a step called: Deployment • Deploying completed code can be very time consuming • One purpose of release planning is to deploy code without errors 11
  • 12. Modern Deployment Processes Process Architecture techniques Tools Continuous Deployment • Microservice architecture • Backward/Forward compatability • Feature toggles • Management tools • Deployment pipeline tools • Configuration management tools Post deployment testing • Reliability tactics • Pedigreed testing • Initialization testing • Log generation • Fault injection tools • Locality tools • Performance monitors • Janatorial tools 12
  • 14. Code is automatically placed into production 14 Developer pushes a button and, as long as all of the automated tests are passed, the code is placed into production automatically through a tool chain. • No coordination with other teams during the execution of the tool chain • No dependence on other teams activities The ability to have a continuous deployment pipeline depends on the architecture of the system being deployed.
  • 15. ~2002 Amazon instituted the following design rules - 1 • All teams will henceforth expose their data and functionality through service interfaces. • Teams must communicate with each other through these interfaces. • There will be no other form of inter-process communication allowed: no direct linking, no direct reads of another team’s data store, no shared- memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network. 15
  • 16. Amazon design rules - 2 • It doesn’t matter what technology they[services] use. • All service interfaces, without exception, must be designed from the ground up to be externalizable. • Amazon is providing the specifications for what has come to be called “Microservice Architecture”. • (Its really an architectural style). 16
  • 17. In Addition • Amazon has a “two pizza” rule. • No team should be larger than can be fed with two pizzas (~7 members). • Each (micro) service is the responsibility of one team • This means that microservices are small and intra team bandwidth is high • Large systems are made up of many microservices. • There may be as many as 140 in a typical Amazon page. 17
  • 18. Microservice architecture supports continuous deployment • Two topics: – What is microservice architecture? – What are the deployment issues and how do I deal with them? 18
  • 19. Micro service architecture 19 Service • Each user request is satisfied by some sequence of services. • Most services are not externally available. • Each service communicates with other services through service interfaces. • Service depth may – Shallow (large fan out) – Deep (small fan out, more dependent services)
  • 20. Services can have multiple instances • The elasticity of the cloud will adjust the number of instances of each service to reflect the workload. • Requests are routed through a load balancer for each service • This leads to – Lots of load balancers – Overhead for each request. 20
  • 21. Digression into Service Oriented Architecture (SOA) – The definition of microservice architecture sounds a lot like SOA. – What is the difference? – Amazon did not use the term “microservice architecture” when they introduced their rules. They said “this is SOA done right” 21
  • 22. SOA typically has but microservice architecture does not • Enterprise service bus • Elaborate protocols for sending messages to services (WDSL*) • Each service may be under the control of different organization • Brokers • etc 22
  • 23. Back to microservices • Each service is the responsibility of a single development team • Individual developers can deploy new version without coordination with other developers. • It is possible that a single development team is responsible for multiple services 23
  • 24. Coordination model of microservice architecture • Elements of service interaction – Services communicate asynchronously through message passing – Each service could (in principle) be deployed anywhere on the net. • Latency requirements will probably force particular deployment location choices. • Services must discover location of dependent services. – State must be managed 24
  • 25. Questions about Microservice architecture • /Q/ Isn’t it possible that different teams will implement the same functionality, likely differently? • /A/ Yes, but so what? Major duplications are avoided through assignment of responsibilities to services. Minor duplications are the price to be paid to avoid necessity for synchronous coordination. • /Q/ what about transactions? • /A/ Microservice architectures privilege flexibility above reliability and performance. Transactions are recoverable through logging of service interactions. This may introduce some delays if failures occur. 25
  • 26. Microservice architecture supports continuous deployment • Two topics: – What is microservice architecture? – What are the deployment issues and how do I deal with them? 26
  • 27. Deploying a new version of an application Multiple instances of a service are executing • Red is service being replaced with new version • Blue are clients • Green are dependent services VAVB VBVB UAT / staging / performance tests
  • 28. Deployment goal and constraints • Goal of a deployment is to move from current state (N instances of version A of a service) to a new state (N instances of version B of a service) • Constraints: – Any development team can deploy their service at any time. I.e. New version of a service can be deployed either before or after a new version of a client. (no synchronization among development teams) – It takes time to replace one instance of version A with an instance of version B (order of minutes) – Service to clients must be maintained while the new version is being deployed. 28
  • 29. Deployment strategies • Two basic all of nothing strategies – Red/Black – leave N instances with version A as they are, allocate and provision N instances with version B and then switch to version B and release instances with version A. – Rolling Upgrade – allocate one instance, provision it with version B, release one version A instance. Repeat N times. • Partial strategies are canary testing and A/B testing. 29
  • 30. Trade offs – Red/Black and Rolling Upgrade • Red/Black – Only one version available to the client at any particular time. – Requires 2N instances (additional costs) • Rolling Upgrade – Multiple versions are available for service at the same time – Requires N+1 instances. • Rolling upgrade is widely used. Update Auto Scaling Group Sort Instances Remove & Deregister Old Instance from ELB Confirm Upgrade Spec Terminate Old Instance Wait for ASG to Start New Instance Register New Instance with ELB Rolling Upgrade in EC2
  • 31. What are the problems with Rolling Upgrade? • Any development team can deploy their service at any time. • Three concerns – Maintaining consistency between different versions of the same service when performing a rolling upgrade – Maintaining consistency among different services – Maintaining consistency between aand persistent data • Solutions exist for these concerns. 31
  • 32. Canary testing • Canaries are a small number of instances of a new version placed in production in order to perform live testing in a production environment. • Canaries are observed closely to determine whether the new version introduces any logical or performance problems. If not, roll out new version globally. If so, roll back canaries. • Named after canaries in coal mines. • Similar in concept to beta testing for shrink wrapped software 32
  • 33. A/B testing • Suppose you wish to test user response to a system variant. E.g. UI difference or marketing effort. A is one variant and B is the other. • You simultaneously make available both variants to different audiences and compare the responses. • Implementation is the same as canary testing. 33
  • 34. Rollback • New versions of a service may be unacceptable either for logical or performance reasons. • Two options in this case • Roll back (undo deployment) • Roll forward (discontinue current deployment and create a new release without the problem). • Some organizations have automated rollback processes • If the newly deployed system does not meet particular performance metrics roll it back.
  • 35. Summary • Deploying small increments removes release bottleneck • Continuous deployment is a technique to speed up deployment time. It relies on – Disciplined engineering process – Architectural techniques – Tools 35