Deploy And Release at Kubernetes Era
-
Upload
alex-soto -
Category
Engineering
-
view
357 -
download
4
Transcript of Deploy And Release at Kubernetes Era
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