Autor: Claudio E. de Oliveira | claudio.oliveira@sensedia.com | +55 19 3705-5775
Data: 26/03/2019
Deployments
Strategies
Slide 2
Slide 2 text
whoami
I am Claudio de Oliveira
Book Author, Speaker , Software Architect and Developer
@sensedia
Spring, Java, Microservices and Docker enthusiast
Slide 3
Slide 3 text
sensedia.com
1
● Microservices
● Deployments Vs
Releases
● Blue Green
● Releases
AGENDA
Slide 4
Slide 4 text
sensedia.com
Microservices
Slide 5
Slide 5 text
“The goal of the microservice architecture is to
accelerate software development by enabling
continuous delivery/deployment.”
https://microservices.io/patterns/decomposition/decompose-by-business-capability.html
Slide 6
Slide 6 text
sensedia.com
The term "Microservice Architecture" ...
there are certain common characteristics around
organization around business capability...
https://martinfowler.com/articles/microservices.html
Slide 7
Slide 7 text
sensedia.com
“Why Microservices Are The New Innovation
Enablers For Enterprises”
https://hackernoon.com/why-microservices-are-the-new-innovation-enablers-for-enterprises-6a4c637fd901
Slide 8
Slide 8 text
Microservices architecture is not about
technologies and frameworks is about How to
Scale Business
Slide 9
Slide 9 text
sensedia.com
Customers want new features and cool stuff and
to deliver it we need to plan carefully
Slide 10
Slide 10 text
The first step is decoupling Deployments and
Releases and understand the purposes of each
one
Slide 11
Slide 11 text
sensedia.com
Deployments
vs
Releases
Slide 12
Slide 12 text
sensedia.com
Deployments
Slide 13
Slide 13 text
Deployment mean to put the new code into an
environment
Changing production traffic to it!
!=
Slide 14
Slide 14 text
Deployment means Install new artifact into
an environment
Slide 15
Slide 15 text
sensedia.com
Blue-Green
Deployments
Slide 16
Slide 16 text
Blue Green Deployment is a technique that
primary goal is to reduce downtime during
deployments
https://martinfowler.com/bliki/BlueGreenDeployment.html
“Big Bang” deployments...
the full solution is developed and tested and then
replaces the current system at once.
Slide 22
Slide 22 text
Nowadays, we need to think
about something different
Slide 23
Slide 23 text
sensedia.com
Releases
Slide 24
Slide 24 text
Releasing our code means bringing live traffic over
to our new deployment
https://www.manning.com/books/istio-in-action
Slide 25
Slide 25 text
Decoupling deployment and release allows
us to more finely control how and which
users get exposed to the new changes.
https://www.manning.com/books/istio-in-action
Dark Launches
The main idea here is testing new features to a set of premium
users and then measure the adoption or something important for
your company.
Canary Release
Canary Release we want to test a new version of our deployment,
see performance and system behavior.
Slide 28
Slide 28 text
Use Case for
Demos
Slide 29
Slide 29 text
Use Case
Slide 30
Slide 30 text
sensedia.com
Traffic shifting
using weights
Slide 31
Slide 31 text
This technique allows us to split production traffic
based on routing weights
Slide 32
Slide 32 text
we can enable rapid rollback
changing the new release to
weight 0
Slide 33
Slide 33 text
No content
Slide 34
Slide 34 text
We need to improve performance in register
microservice then we’ll need to deploy the release
v2 of this service
Let’s do a canary RELEASE!!!
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
sensedia.com
Route
per
Request
Slide 37
Slide 37 text
This technique enables us to split production
traffic using request attributes to change traffic to
the desired deployment
Slide 38
Slide 38 text
No content
Slide 39
Slide 39 text
can be an excellent option to test new
deployments with our premium partner
Slide 40
Slide 40 text
We added a new feature in register microservice
then we’ll need to deploy the release v3 of this
service
Let’s do a dark launch RELEASE!!!
Slide 41
Slide 41 text
No content
Slide 42
Slide 42 text
The two techniques mentioned earlier are
fantastic but sometimes we need to go to
“production” more confident
Slide 43
Slide 43 text
sensedia.com
Traffic
Shadowing
Traffic
Mirroring
Slide 44
Slide 44 text
This technique enables us to copy live production
requests to a new deployment out of band of any
customer traffic
Slide 45
Slide 45 text
using this strategy, we can get
real applications feedbacks
without impact our users
Slide 46
Slide 46 text
sensedia.com
Service
Mesh
Slide 47
Slide 47 text
A service mesh is a distributed application
infrastructure that is responsible for handling
network traffic on behalf of the application in a
transparent, out of process manner.
https://www.manning.com/books/istio-in-action
Slide 48
Slide 48 text
Service Mesh Capabilities
Service resilience
Observability signals
Traffic control capabilities
Security