Deploy And Release at Kubernetes Era

Post on 17-Mar-2018

357 views 4 download

transcript

Deploy and ReleaseAt Kubernetes Era

Alex Soto @alexsotob

@alexsotob2

Alex Soto

Red Hat Engineer

www.lordofthejars.com

@alexsotob

Who Am I?

@alexsotob3

https://www.manning.com/books/testing-java-microservices

https://goo.gl/jsZkXM

@alexsotob4

Search Engines

@alexsotob5

Sad Panda

@alexsotob6

Deliver Often Deliver Fast

@alexsotob7

Our IT World Morphs

@alexsotob8

@alexsotob9

“In the future, you and I are going to be good friends.

You just don’t know it yet.”

—WOLVERINE

@alexsotob10

Shipping Software

> Build Creates a deliverable artefact of your code

> Test Check implementing the right thing and things right

> Deploy Installing the new artefact on production

> Release Move production traffic to the new version

@alexsotob11

Build, Test and Deploy

@alexsotob12

Microservice’ilities

MyService

Monitoring

Tracing

Discovery

API

Invocation

Resilience

Pipeline

Authentication

Logging Elasticity

@alexsotob13

Your Stack Matters

Server Hardware

Operating System

Application Server

your.war

Java Virtual Machine

Custom Configuration

Linux Kernel Version & Distribution

Java 1.7.0_67

Tomcat, Wildfly, Jetty

JDBC driver, JMS queue, users

@alexsotob14

@alexsotob15

Microservice’ilities

MyService

Monitoring

Tracing

Discovery

API

Invocation

Resilience

Pipeline

Authentication

Logging Elasticity

@alexsotob

Deploy Something To Kubernetes

16

@alexsotob17

@alexsotob18

Microservice’ilities

MyService

Monitoring

Tracing

Discovery

API

Invocation

Resilience

Pipeline

Authentication

Logging Elasticity

@alexsotob

Deploy using Source-To-Image (S2I)

19

@alexsotob

Source-To-Image (S2I)

20

@alexsotob

Source-To-Image (S2I) + Jenkins

21

@alexsotob

Source-To-Image (S2I) + Jenkins

22

@alexsotob23

Fabric 8

@alexsotob24

@alexsotob25

DEMO

Demo1: https://www.youtube.com/watch?v=jTX-Lg73nXA

@alexsotob26

Release

@alexsotob27

Lead Time

@alexsotob28

Blue-Green Deployments

Starts with a “git commit and git push”

Blue/Green Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

BUILDSCM

Blue/Green Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

BUILDSCM

Blue/Green Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

BUILDSCM

Blue/Green Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

BUILDSCM

Blue/Green Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

BUILDSCM

Blue/Green Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Blue/Green Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

@alexsotob36

Canary Release

Canary Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

Canary Deployment

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

@alexsotob47

Dark Launches

Dark Launches

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

INTERNAL USERS

Dark Launches

DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS

SCM

@alexsotob50

As we move to services architectures, we push the complexity to the space between our services

CHRISTIAN POSTA

@alexsotob51

NETFLIX Ribbon

Config Server

Java Microservices Platform circa 2016

@alexsotob52

Istio

Java Microservices Platform circa 2018

@alexsotob53

@alexsotob54

Microservice’ilities

MyService

Monitoring

Tracing

Discovery

API

Invocation

Resilience

Pipeline

Authentication

Logging Elasticity

@alexsotob55

Kubernetes, Istio, Envoy

PodContainer

JVM

Service A

Envoy Side-car

PodContainer

JVM

Service A

Envoy Side-car

PodContainer

JVM

Service A

Envoy Side-car

@alexsotob56

Istio Control Plane

PodContainer

JVM

Service A

Envoy Side-car

PodContainer

JVM

Service B

Envoy Side-car

PodContainer

JVM

Service C

Envoy Side-car

HTTP1.1, HTTP2, gRPC, TCP w/TLS

HTTP1.1, HTTP2, gRPC, TCP w/TLS

HTTP1.1, HTTP2, gRPC, TCP w/TLS

Istio Pilot Istio Mixer Istio Auth

istioctl, API, config Quota, TelemetryRate Limiting, ACL

CA, SPIFFE

Istio Data Plane

@alexsotob

Canary Release

57

@alexsotob

Blocking

58

@alexsotob

Mirroring

59

@alexsotob60

DEMO

Demo1: https://www.youtube.com/watch?v=CSd91BoG-sc

“Change is the essential process of all of existence.”

—SPOCK

https://developers.redhat.com/

@alexsotob

asotobue@redhat.com