Slide 1

Slide 1 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

enable rapid way to rollback

Slide 19

Slide 19 text

but...

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

“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

Slide 26

Slide 26 text

Canary Release Dark Launches Graduated Rollouts A/B Testing Releases Strategies http://claudioed.tech/2019/03/16/releases-deployments-and-traffic-mirroring/

Slide 27

Slide 27 text

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

Slide 49

Slide 49 text

We’ve used Istio as Service mesh implementation

Slide 50

Slide 50 text

No content

Slide 51

Slide 51 text

Contacts @claudioed http://claudioed.tech http://github.com/claudioed https://www.linkedin.com/in/claudioedoliveira/ claudio.oliveira@sensedia.com

Slide 52

Slide 52 text

sensedia.com sensedia.com