SlideShare uma empresa Scribd logo
1 de 120
Baixar para ler offline
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Jason Yee
Technical Evangelist, Datadog
SRV305
Canary Deploys on Amazon EKS with Istio
C A N A R Y D E P L O Y S O N A M A Z O N
E K S W I T H I S T I O
J A S O N Y E E , T E C H N I C A L E V A N G E L I S T , D A T A D O G
D E P L O Y M E N T S
W H A T C O U L D P O S S I B L Y G O W R O N G ?
A L O T !
D U H .
When I deploy to prod… I do it in production.
When I deploy to prod… I do it in production.
When I deploy to prod… I do it in production.
# Y O L O o p s
C A N A R Y D E P L O Y S
W I T H K U B E R N E T E S A N D I S T I O
J A S O N Y E E
T e c h n i c a l E v a n g e l i s t
C o l l e c t o r o f :
• M i l e s
• W h i s k e y
• P o k e m o n
T w : @ g i t b i s e c t
E m : j y e e @ d a t a d o g h q . c o m
D A T A D O G
T W : @ d a t a d o g h q
S a a S - b a s e d m o n i t o r i n g , t r a c i n g
& l o g g i n g
T r i l l i o n s o f p o i n t s / d a y
C a v e a t : W e r u n s o m e
K u b e r n e t e s i n p r o d u c t i o n & a r e
e x p l o r i n g p a r t s o f I s t i o
B L U E - G R E E N D E P L O Y M E N T S
B L U E - G R E E N D E P L O Y M E N T S
• Pros:
• Zero-downtime deploys
• Easy rollbacks
C T R L + Z
B L U E - G R E E N D E P L O Y M E N T S
• Cons:
• "Easy" rollbacks… 😬
R O L L I N G
D E P L O Y M E N T S
C A N A R Y D E P L O Y M E N T S
or
P A U S E . M O N I T O R .
D O U B L E C H E C K .
M A Y B E O N E M O R E T I M E , J U S T
T O B E C E R T A I N .
P A R T Y !
C A N A R Y D E P L O Y M E N T S
• Small scope
C A N A R Y D E P L O Y M E N T S
• Small scope
• Limited ramifications
C A N A R Y D E P L O Y M E N T S
• Small scope
• Limited ramifications
• Easier rollbacks
C A N A R Y D E P L O Y M E N T S
• Small scope
• Limited ramifications
• Easier rollbacks
• Load tolerant
C A N A R Y D E P L O Y M E N T S
• Small scope
• Limited ramifications
• Easier rollbacks
• Load tolerant
• Concurrency
C A N A R Y
S T R A T E G Y
C A N A R Y S T R A T E G Y
H o w d o y o u c h o o s e y o u r s a m p l e s e t ?
• Random
C A N A R Y S T R A T E G Y
H o w d o y o u c h o o s e y o u r s a m p l e s e t ?
• Random
• Representative
C A N A R Y S T R A T E G Y
H o w d o y o u c h o o s e y o u r s a m p l e s e t ?
• Random
• Representative
• Geography
C A N A R Y S T R A T E G Y
H o w d o y o u c h o o s e y o u r s a m p l e s e t ?
• Random
• Representative
• Geography
• Time
C A N A R Y S T R A T E G Y
H o w d o y o u c h o o s e y o u r s a m p l e s e t ?
• Random
• Representative
• Geography
• Time
• Use patterns
C A N A R Y S T R A T E G Y
H o w d o y o u c h o o s e y o u r s a m p l e s e t ?
• Random
• Representative
• Geography
• Time
• Use patterns
• Granularity
C A N A R Y S T R A T E G Y
H o w d o y o u c h o o s e y o u r s a m p l e s e t ?
• Random
• Representative
• Geography
• Time
• Use patterns
• Granularity
• Resource mapping
M O N I T O R I N G
S T R A T E G Y
M O N I T O R I N G S T R A T E G Y
H o w d o y o u e v a l u a t e y o u r d e p l o y m e n t ?
• Tags! Tags! Tags! Tags! Tags!
M O N I T O R I N G S T R A T E G Y
H o w d o y o u e v a l u a t e y o u r d e p l o y m e n t ?
• Tags!
• p90, p95, p99
M O N I T O R I N G S T R A T E G Y
H o w d o y o u e v a l u a t e y o u r d e p l o y m e n t ?
• Tags!
• p90, p95, p99
• Outliers
Outliers: one of these things is not like the others
M O N I T O R I N G S T R A T E G Y
H o w d o y o u e v a l u a t e y o u r d e p l o y m e n t ?
• Tags!
• p90, p95, p99
• Outliers
• Anomalies
Anomalies: It wasn’t like this before
S I G N A L S T O W A T C H
Latency
S I G N A L S T O W A T C H
Latency Errors
S I G N A L S T O W A T C H
Latency Errors
Traffic
S I G N A L S T O W A T C H
Latency Errors
Traffic Saturation
W H A T D O E S K U B E R N E T E S H A V E T O
D O W I T H A N Y O F T H I S ?
C O N T A I N E R S E R V I C E
O R C H E S T R A T O R
C O N T A I N E R S E R V I C E
O R C H E S T R A T O R
p.s. - Maybe a Squirtle orchestrator? Talk to me later if you want a sticker.
So what if we want to deploy one service?
Blue-green doesn’t make any sense!
Kubernetes handles service deployments
Kubernetes handles service deployments. YAY!
W H Y D O I N E E D A
S E R V I C E M E S H ?
K u b e r n e t e s d o e s
r o l l i n g d e p l o y s
r e a l l y w e l l !
C a n a r y d e p l o y s ,
n o t s o m u c h .
C A N A R Y D E P L O Y I N G W I T H K U B E R N E T E S
S E R V I C E
apiVersion: v1
kind: Service
metadata:
name: process
labels:
app: process
spec:
ports:
- port: 80
name: http
selector:
app: process
D E P L O Y M E N T
apiVersion: apps/v1
kind: Deployment
metadata:
name: process
labels:
app: process
spec:
replicas: 3
selector:
matchLabels:
app: process
template:
metadata:
labels:
app: process
version: 1.0
spec:
containers:
- name: pull
image: jyee/process:v1
imagePullPolicy: Always
D E P L O Y M E N T
apiVersion: apps/v1
kind: Deployment
metadata:
name: process
labels:
app: process
spec:
replicas: 3
selector:
matchLabels:
app: process
template:
metadata:
labels:
app: process
version: 1.0
spec:
containers:
- name: pull
image: jyee/process:v1
imagePullPolicy: Always
apiVersion: apps/v1
kind: Deployment
metadata:
name: process
labels:
app: process
spec:
replicas: 3
selector:
matchLabels:
app: process
template:
metadata:
labels:
app: process
version: 2.0
spec:
containers:
- name: pull
image: jyee/process:v2
imagePullPolicy: Always
D E P L O Y M E N T
apiVersion: apps/v1
kind: Deployment
metadata:
name: process
labels:
app: process
spec:
replicas: 9
selector:
matchLabels:
app: process
template:
metadata:
labels:
app: process
version: 1.0
spec:
containers:
- name: pull
image: jyee/process:v1
imagePullPolicy: Always
apiVersion: apps/v1
kind: Deployment
metadata:
name: process
labels:
app: process
spec:
replicas: 1
selector:
matchLabels:
app: process
template:
metadata:
labels:
app: process
version: 2.0
spec:
containers:
- name: pull
image: jyee/process:v2
imagePullPolicy: Always
D E P L O Y M E N T
apiVersion: apps/v1
kind: Deployment
metadata:
name: process
labels:
app: process
spec:
replicas: 8
selector:
matchLabels:
app: process
template:
metadata:
labels:
app: process
version: 1.0
spec:
containers:
- name: pull
image: jyee/process:v1
imagePullPolicy: Always
apiVersion: apps/v1
kind: Deployment
metadata:
name: process
labels:
app: process
spec:
replicas: 2
selector:
matchLabels:
app: process
template:
metadata:
labels:
app: process
version: 2.0
spec:
containers:
- name: pull
image: jyee/process:v2
imagePullPolicy: Always
W H A T D O E S A S E R V I C E M E S H G E T Y O U ?
S E R V I C E M E S H E S
• Routing & load balancing
S E R V I C E M E S H E S
• Routing & load balancing
• Service discovery
S E R V I C E M E S H E S
• Routing & load balancing
• Service discovery
• Timeouts & retries
S E R V I C E M E S H E S
• Routing & load balancing
• Service discovery
• Timeouts & retries
• Policy enforcement
S E R V I C E M E S H E S
• Routing & load balancing
• Service discovery
• Timeouts & retries
• Policy enforcement
• Monitoring & tracing
How does it work?
1. Add a data plane
2. Add a control plane
1 . 0 i s c o m i n g .
G o p l a y w i t h I s t i o
1 . 0 i s c o m i n g .
G o p l a y w i t h I s t i o
HERE! 🎉
b u t d o n ’ t r o l l i t o u t i n p r o d
b u t d o n ’ t r o l l i t o u t i n p r o d
TRY TO
I N S T A L L I N G I S T I O
1. Download from github.com/istio/istio/releases
I N S T A L L I N G I S T I O
1. Download from github.com/istio/istio/releases
2. Unpack
I N S T A L L I N G I S T I O
1. Download from github.com/istio/istio/releases
2. Unpack
3. export PATH=$PATH:istio-1.0.0/bin
I N S T A L L I N G I S T I O
1. Download from github.com/istio/istio/releases
2. Unpack
3. export PATH=$PATH:istio-1.0.0/bin
4. kubectl apply -f install/kubernetes/istio-demo.yaml
I N S T A L L I N G I S T I O
1. Download from github.com/istio/istio/releases
2. Unpack
3. export PATH=$PATH:istio-1.0.0/bin
4. kubectl apply -f install/kubernetes/istio-demo.yaml
Or Use Helm!
W H A T D O E S I T I N S T A L L ?
Istio Citadel
Istio Egress Gateway
Istio Ingress Gateway
Istio Pilot
Istio Policy
Istio Sidecar Injector
Istio Telemetry
Statsd Prometheus Bridge
Grafana
Prometheus
Service Graph NG
Zipkin
C A N A R Y D E P L O Y I N G W I T H I S T I O
S E R V I C E
apiVersion: v1
kind: Service
metadata:
name: process
labels:
app: process
spec:
ports:
- port: 80
name: http
selector:
app: process
D E P L O Y M E N T
apiVersion: apps/v1
kind: Deployment
metadata:
name: process
labels:
app: process
spec:
replicas: 3
selector:
matchLabels:
app: process
template:
metadata:
labels:
app: process
version: 1.0
spec:
containers:
- name: pull
image: jyee/process:v1
imagePullPolicy: Always
apiVersion: apps/v1
kind: Deployment
metadata:
name: process
labels:
app: process
spec:
replicas: 3
selector:
matchLabels:
app: process
template:
metadata:
labels:
app: process
version: 2.0
spec:
containers:
- name: pull
image: jyee/process:v2
imagePullPolicy: Always
k u b e c t l c r e a t e - f 
< ( i s t i o c t l k u b e - i n j e c t - f y o u r _ k 8 s . y a m l )
T E E N A G E
M U T A T I N G W E B H O O K
A D M I S S I O N C O N T R O L L E R S !
A K A A U T O - S I D E C A R I N J E C T I O N
C O N T A I N E R S E R V I C E
O R C H E S T R A T O R
C O N T A I N E R S E R V I C E
O R C H E S T R A T O R M E S H
I S T I O V I R T U A L S E R V I C E S
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: process-routing
spec:
hosts:
- process
http:
- route:
- destination:
host: process
subset: v1
I S T I O V I R T U A L S E R V I C E S
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: destination-process
spec:
host: process
subsets:
- name: v1
labels:
version: '1.0'
I S T I O V I R T U A L S E R V I C E S
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: destination-process
spec:
host: process
subsets:
- name: v1
labels:
version: '1.0'
- name: v2
labels:
version: '2.0'
I S T I O V I R T U A L S E R V I C E S
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: destination-process
spec:
host: process
subsets:
- name: v1
labels:
version: '1.0'
- name: v2
labels:
version: '2.0'
I S T I O V I R T U A L S E R V I C E S
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: process-routing
spec:
hosts:
- process
http:
- route:
- destination:
host: process
subset: v1
weight: 80
- route:
- destination:
host: process
subset: v2
weight: 20
I S T I O V I R T U A L S E R V I C E S
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: process-routing
spec:
hosts:
- process
http:
- route:
- destination:
host: process
subset: v1
weight: 80
- route:
- destination:
host: process
subset: v2
weight: 20
I S T I O V I R T U A L S E R V I C E S
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
...
http:
- match:
- headers:
cookie:
user: my-logged-in-user
route:
- destination:
host: process
subset: v2
weight: 20
L O T S !
W H A T E L S E C A N I T D O ?
h t t p s : / / i s t i o . i o / d o c s / r e f e r e n c e / c o n f i g /
R E C A P
• Service meshes give you more control
R E C A P
• Service meshes give you more control
• Canary deploys: Representative & Granular
R E C A P
• Service meshes give you more control
• Canary deploys: Representative & Granular
• Monitoring: Tags, Outliers, Anomalies
R E C A P
• Service meshes give you more control
• Canary deploys: Representative & Granular
• Monitoring: Tags, Outliers, Anomalies
• What to watch: Latency, Errors, Traffic, Saturation
R E C A P
• Service meshes give you more control
• Canary deploys: Representative & Granular
• Monitoring: Tags, Outliers, Anomalies
• What to watch: Latency, Errors, Traffic, Saturation
• GO PLAY WITH ISTIO 1.0.0!
Q U E S T I O N S ?
e m a i l : j y e e @ d a t a d o g h q . c o m
t w i t t e r : @ g i t b i s e c t
S L I D E S : b i t . l y / a w s c h i - c a n a r i e s
e m a i l : j y e e @ d a t a d o g h q . c o m
t w i t t e r : @ g i t b i s e c t
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Submit session feedback
1. Tap the Schedule icon.
2. Select the session you attended.
3. Tap Session Evaluation to submit your
feedback.

Mais conteúdo relacionado

Mais procurados

Getting started on your AWS migration journey
Getting started on your AWS migration journeyGetting started on your AWS migration journey
Getting started on your AWS migration journeyAmazon Web Services
 
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service MeshGeorgios Andrianakis
 
AWS 환경에서 Dell Technologies 데이터 보호 솔루션을 활용한 데이터 보호 방안 - 정진환 이사, Dell EMC :: AW...
AWS 환경에서 Dell Technologies 데이터 보호 솔루션을 활용한 데이터 보호 방안 - 정진환 이사, Dell EMC :: AW...AWS 환경에서 Dell Technologies 데이터 보호 솔루션을 활용한 데이터 보호 방안 - 정진환 이사, Dell EMC :: AW...
AWS 환경에서 Dell Technologies 데이터 보호 솔루션을 활용한 데이터 보호 방안 - 정진환 이사, Dell EMC :: AW...Amazon Web Services Korea
 
Considerations for your Cloud Journey
Considerations for your Cloud JourneyConsiderations for your Cloud Journey
Considerations for your Cloud JourneyAmazon Web Services
 
Advanced Architectures with AWS Transit Gateway
Advanced Architectures with AWS Transit GatewayAdvanced Architectures with AWS Transit Gateway
Advanced Architectures with AWS Transit GatewayAmazon Web Services
 
Amazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for KubernetesAmazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for KubernetesAmazon Web Services
 
GitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan BudrisGitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan BudrisWeaveworks
 
Azure Migration Program Pitch Deck
Azure Migration Program Pitch DeckAzure Migration Program Pitch Deck
Azure Migration Program Pitch DeckNicholas Vossburg
 
(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWS(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWSAmazon Web Services
 
Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Alexander Feschenko
 
Amazon CloudWatch - Observability and Monitoring
Amazon CloudWatch - Observability and MonitoringAmazon CloudWatch - Observability and Monitoring
Amazon CloudWatch - Observability and MonitoringRick Hwang
 
Kubernetes Probes (Liveness, Readyness, Startup) Introduction
Kubernetes Probes (Liveness, Readyness, Startup) IntroductionKubernetes Probes (Liveness, Readyness, Startup) Introduction
Kubernetes Probes (Liveness, Readyness, Startup) IntroductionAkhmadZakiAlsafi
 
AWS Landing Zone Deep Dive (ENT350-R2) - AWS re:Invent 2018
AWS Landing Zone Deep Dive (ENT350-R2) - AWS re:Invent 2018AWS Landing Zone Deep Dive (ENT350-R2) - AWS re:Invent 2018
AWS Landing Zone Deep Dive (ENT350-R2) - AWS re:Invent 2018Amazon Web Services
 
AWS Transit Gateway-Benefits and Best Practices
AWS Transit Gateway-Benefits and Best PracticesAWS Transit Gateway-Benefits and Best Practices
AWS Transit Gateway-Benefits and Best PracticesJohn Varghese
 
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트Amazon Web Services Korea
 

Mais procurados (20)

infrastructure as code
infrastructure as codeinfrastructure as code
infrastructure as code
 
Getting started on your AWS migration journey
Getting started on your AWS migration journeyGetting started on your AWS migration journey
Getting started on your AWS migration journey
 
Fundamentals of Cloud Computing & AWS
Fundamentals of Cloud Computing & AWSFundamentals of Cloud Computing & AWS
Fundamentals of Cloud Computing & AWS
 
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service Mesh
 
AWS 환경에서 Dell Technologies 데이터 보호 솔루션을 활용한 데이터 보호 방안 - 정진환 이사, Dell EMC :: AW...
AWS 환경에서 Dell Technologies 데이터 보호 솔루션을 활용한 데이터 보호 방안 - 정진환 이사, Dell EMC :: AW...AWS 환경에서 Dell Technologies 데이터 보호 솔루션을 활용한 데이터 보호 방안 - 정진환 이사, Dell EMC :: AW...
AWS 환경에서 Dell Technologies 데이터 보호 솔루션을 활용한 데이터 보호 방안 - 정진환 이사, Dell EMC :: AW...
 
Considerations for your Cloud Journey
Considerations for your Cloud JourneyConsiderations for your Cloud Journey
Considerations for your Cloud Journey
 
Advanced Architectures with AWS Transit Gateway
Advanced Architectures with AWS Transit GatewayAdvanced Architectures with AWS Transit Gateway
Advanced Architectures with AWS Transit Gateway
 
AWS Outposts Update
AWS Outposts UpdateAWS Outposts Update
AWS Outposts Update
 
A quick introduction to AKS
A quick introduction to AKSA quick introduction to AKS
A quick introduction to AKS
 
Amazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for KubernetesAmazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for Kubernetes
 
AWS Security and SecOps
AWS Security and SecOpsAWS Security and SecOps
AWS Security and SecOps
 
GitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan BudrisGitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan Budris
 
Azure Migration Program Pitch Deck
Azure Migration Program Pitch DeckAzure Migration Program Pitch Deck
Azure Migration Program Pitch Deck
 
(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWS(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWS
 
Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.
 
Amazon CloudWatch - Observability and Monitoring
Amazon CloudWatch - Observability and MonitoringAmazon CloudWatch - Observability and Monitoring
Amazon CloudWatch - Observability and Monitoring
 
Kubernetes Probes (Liveness, Readyness, Startup) Introduction
Kubernetes Probes (Liveness, Readyness, Startup) IntroductionKubernetes Probes (Liveness, Readyness, Startup) Introduction
Kubernetes Probes (Liveness, Readyness, Startup) Introduction
 
AWS Landing Zone Deep Dive (ENT350-R2) - AWS re:Invent 2018
AWS Landing Zone Deep Dive (ENT350-R2) - AWS re:Invent 2018AWS Landing Zone Deep Dive (ENT350-R2) - AWS re:Invent 2018
AWS Landing Zone Deep Dive (ENT350-R2) - AWS re:Invent 2018
 
AWS Transit Gateway-Benefits and Best Practices
AWS Transit Gateway-Benefits and Best PracticesAWS Transit Gateway-Benefits and Best Practices
AWS Transit Gateway-Benefits and Best Practices
 
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
 

Semelhante a Canary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS Summit

Gain Maximum Visibility into Your Applications
Gain Maximum Visibility into Your Applications Gain Maximum Visibility into Your Applications
Gain Maximum Visibility into Your Applications Amazon Web Services
 
100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018Codemotion
 
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS SummitGain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS SummitAmazon Web Services
 
Pintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@PinterestPintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@PinterestSuman Karumuri
 
CIA For WordPress Developers
CIA For WordPress DevelopersCIA For WordPress Developers
CIA For WordPress DevelopersDavid Brumbaugh
 
Serverless WordPress & next Interface of WordPress
Serverless WordPress & next Interface of WordPressServerless WordPress & next Interface of WordPress
Serverless WordPress & next Interface of WordPressHidetaka Okamoto
 
Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019Michał Kurzeja
 
Switching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to AgileSwitching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to AgileDoc Norton
 
Be(yond/neath) Scrum Values
Be(yond/neath) Scrum Values Be(yond/neath) Scrum Values
Be(yond/neath) Scrum Values Daniel Teng
 
Ninja Correlation of APT Binaries
Ninja Correlation of APT BinariesNinja Correlation of APT Binaries
Ninja Correlation of APT BinariesCODE BLUE
 
Pintrace: Distributed tracing @Pinterest
Pintrace: Distributed tracing @PinterestPintrace: Distributed tracing @Pinterest
Pintrace: Distributed tracing @PinterestSuman Karumuri
 
From Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dotsFrom Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dotsRonald Ashri
 
From Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the DotsFrom Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the DotsRonald Ashri
 
Choosing the right database
Choosing the right databaseChoosing the right database
Choosing the right databaseDavid Simons
 
Data Modelling at Scale
Data Modelling at ScaleData Modelling at Scale
Data Modelling at ScaleDavid Simons
 
SharePoint Saturday Redmond - Building solutions with the future in mind
SharePoint Saturday Redmond - Building solutions with the future in mindSharePoint Saturday Redmond - Building solutions with the future in mind
SharePoint Saturday Redmond - Building solutions with the future in mindChris Johnson
 
Offline-first: Making your app resilient to network failures
Offline-first: Making your app resilient to network failuresOffline-first: Making your app resilient to network failures
Offline-first: Making your app resilient to network failuresPedro Teixeira
 
Architecting your IT career
Architecting your IT careerArchitecting your IT career
Architecting your IT careerJohn Mark Troyer
 

Semelhante a Canary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS Summit (20)

Gain Maximum Visibility into Your Applications
Gain Maximum Visibility into Your Applications Gain Maximum Visibility into Your Applications
Gain Maximum Visibility into Your Applications
 
100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018
 
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS SummitGain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
 
Pintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@PinterestPintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@Pinterest
 
CIA For WordPress Developers
CIA For WordPress DevelopersCIA For WordPress Developers
CIA For WordPress Developers
 
Serverless WordPress & next Interface of WordPress
Serverless WordPress & next Interface of WordPressServerless WordPress & next Interface of WordPress
Serverless WordPress & next Interface of WordPress
 
Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019
 
Switching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to AgileSwitching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to Agile
 
Be(yond/neath) Scrum Values
Be(yond/neath) Scrum Values Be(yond/neath) Scrum Values
Be(yond/neath) Scrum Values
 
Ninja Correlation of APT Binaries
Ninja Correlation of APT BinariesNinja Correlation of APT Binaries
Ninja Correlation of APT Binaries
 
Pintrace: Distributed tracing @Pinterest
Pintrace: Distributed tracing @PinterestPintrace: Distributed tracing @Pinterest
Pintrace: Distributed tracing @Pinterest
 
From Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dotsFrom Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dots
 
From Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the DotsFrom Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the Dots
 
cofaso Presentation
cofaso Presentationcofaso Presentation
cofaso Presentation
 
Choosing the right database
Choosing the right databaseChoosing the right database
Choosing the right database
 
Data Modelling at Scale
Data Modelling at ScaleData Modelling at Scale
Data Modelling at Scale
 
Agile metrics
Agile metricsAgile metrics
Agile metrics
 
SharePoint Saturday Redmond - Building solutions with the future in mind
SharePoint Saturday Redmond - Building solutions with the future in mindSharePoint Saturday Redmond - Building solutions with the future in mind
SharePoint Saturday Redmond - Building solutions with the future in mind
 
Offline-first: Making your app resilient to network failures
Offline-first: Making your app resilient to network failuresOffline-first: Making your app resilient to network failures
Offline-first: Making your app resilient to network failures
 
Architecting your IT career
Architecting your IT careerArchitecting your IT career
Architecting your IT career
 

Mais de Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Mais de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Canary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS Summit

  • 1. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Jason Yee Technical Evangelist, Datadog SRV305 Canary Deploys on Amazon EKS with Istio
  • 2. C A N A R Y D E P L O Y S O N A M A Z O N E K S W I T H I S T I O J A S O N Y E E , T E C H N I C A L E V A N G E L I S T , D A T A D O G
  • 3. D E P L O Y M E N T S W H A T C O U L D P O S S I B L Y G O W R O N G ?
  • 4. A L O T ! D U H .
  • 5. When I deploy to prod… I do it in production.
  • 6. When I deploy to prod… I do it in production.
  • 7. When I deploy to prod… I do it in production. # Y O L O o p s
  • 8. C A N A R Y D E P L O Y S W I T H K U B E R N E T E S A N D I S T I O
  • 9. J A S O N Y E E T e c h n i c a l E v a n g e l i s t C o l l e c t o r o f : • M i l e s • W h i s k e y • P o k e m o n T w : @ g i t b i s e c t E m : j y e e @ d a t a d o g h q . c o m
  • 10. D A T A D O G T W : @ d a t a d o g h q S a a S - b a s e d m o n i t o r i n g , t r a c i n g & l o g g i n g T r i l l i o n s o f p o i n t s / d a y C a v e a t : W e r u n s o m e K u b e r n e t e s i n p r o d u c t i o n & a r e e x p l o r i n g p a r t s o f I s t i o
  • 11. B L U E - G R E E N D E P L O Y M E N T S
  • 12.
  • 13.
  • 14. B L U E - G R E E N D E P L O Y M E N T S • Pros: • Zero-downtime deploys • Easy rollbacks
  • 15. C T R L + Z
  • 16. B L U E - G R E E N D E P L O Y M E N T S • Cons: • "Easy" rollbacks… 😬
  • 17. R O L L I N G D E P L O Y M E N T S
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23. C A N A R Y D E P L O Y M E N T S
  • 24. or
  • 25.
  • 26.
  • 27. P A U S E . M O N I T O R .
  • 28.
  • 29. D O U B L E C H E C K .
  • 30.
  • 31. M A Y B E O N E M O R E T I M E , J U S T T O B E C E R T A I N .
  • 32.
  • 33. P A R T Y !
  • 34. C A N A R Y D E P L O Y M E N T S • Small scope
  • 35. C A N A R Y D E P L O Y M E N T S • Small scope • Limited ramifications
  • 36. C A N A R Y D E P L O Y M E N T S • Small scope • Limited ramifications • Easier rollbacks
  • 37. C A N A R Y D E P L O Y M E N T S • Small scope • Limited ramifications • Easier rollbacks • Load tolerant
  • 38. C A N A R Y D E P L O Y M E N T S • Small scope • Limited ramifications • Easier rollbacks • Load tolerant • Concurrency
  • 39. C A N A R Y S T R A T E G Y
  • 40. C A N A R Y S T R A T E G Y H o w d o y o u c h o o s e y o u r s a m p l e s e t ? • Random
  • 41. C A N A R Y S T R A T E G Y H o w d o y o u c h o o s e y o u r s a m p l e s e t ? • Random • Representative
  • 42. C A N A R Y S T R A T E G Y H o w d o y o u c h o o s e y o u r s a m p l e s e t ? • Random • Representative • Geography
  • 43. C A N A R Y S T R A T E G Y H o w d o y o u c h o o s e y o u r s a m p l e s e t ? • Random • Representative • Geography • Time
  • 44. C A N A R Y S T R A T E G Y H o w d o y o u c h o o s e y o u r s a m p l e s e t ? • Random • Representative • Geography • Time • Use patterns
  • 45. C A N A R Y S T R A T E G Y H o w d o y o u c h o o s e y o u r s a m p l e s e t ? • Random • Representative • Geography • Time • Use patterns • Granularity
  • 46. C A N A R Y S T R A T E G Y H o w d o y o u c h o o s e y o u r s a m p l e s e t ? • Random • Representative • Geography • Time • Use patterns • Granularity • Resource mapping
  • 47. M O N I T O R I N G S T R A T E G Y
  • 48. M O N I T O R I N G S T R A T E G Y H o w d o y o u e v a l u a t e y o u r d e p l o y m e n t ? • Tags! Tags! Tags! Tags! Tags!
  • 49.
  • 50.
  • 51. M O N I T O R I N G S T R A T E G Y H o w d o y o u e v a l u a t e y o u r d e p l o y m e n t ? • Tags! • p90, p95, p99
  • 52. M O N I T O R I N G S T R A T E G Y H o w d o y o u e v a l u a t e y o u r d e p l o y m e n t ? • Tags! • p90, p95, p99 • Outliers
  • 53.
  • 54. Outliers: one of these things is not like the others
  • 55. M O N I T O R I N G S T R A T E G Y H o w d o y o u e v a l u a t e y o u r d e p l o y m e n t ? • Tags! • p90, p95, p99 • Outliers • Anomalies
  • 56. Anomalies: It wasn’t like this before
  • 57. S I G N A L S T O W A T C H Latency
  • 58. S I G N A L S T O W A T C H Latency Errors
  • 59. S I G N A L S T O W A T C H Latency Errors Traffic
  • 60. S I G N A L S T O W A T C H Latency Errors Traffic Saturation
  • 61. W H A T D O E S K U B E R N E T E S H A V E T O D O W I T H A N Y O F T H I S ?
  • 62. C O N T A I N E R S E R V I C E O R C H E S T R A T O R
  • 63. C O N T A I N E R S E R V I C E O R C H E S T R A T O R p.s. - Maybe a Squirtle orchestrator? Talk to me later if you want a sticker.
  • 64. So what if we want to deploy one service?
  • 67. Kubernetes handles service deployments. YAY!
  • 68. W H Y D O I N E E D A S E R V I C E M E S H ?
  • 69. K u b e r n e t e s d o e s r o l l i n g d e p l o y s r e a l l y w e l l !
  • 70. C a n a r y d e p l o y s , n o t s o m u c h .
  • 71. C A N A R Y D E P L O Y I N G W I T H K U B E R N E T E S
  • 72. S E R V I C E apiVersion: v1 kind: Service metadata: name: process labels: app: process spec: ports: - port: 80 name: http selector: app: process
  • 73. D E P L O Y M E N T apiVersion: apps/v1 kind: Deployment metadata: name: process labels: app: process spec: replicas: 3 selector: matchLabels: app: process template: metadata: labels: app: process version: 1.0 spec: containers: - name: pull image: jyee/process:v1 imagePullPolicy: Always
  • 74. D E P L O Y M E N T apiVersion: apps/v1 kind: Deployment metadata: name: process labels: app: process spec: replicas: 3 selector: matchLabels: app: process template: metadata: labels: app: process version: 1.0 spec: containers: - name: pull image: jyee/process:v1 imagePullPolicy: Always apiVersion: apps/v1 kind: Deployment metadata: name: process labels: app: process spec: replicas: 3 selector: matchLabels: app: process template: metadata: labels: app: process version: 2.0 spec: containers: - name: pull image: jyee/process:v2 imagePullPolicy: Always
  • 75. D E P L O Y M E N T apiVersion: apps/v1 kind: Deployment metadata: name: process labels: app: process spec: replicas: 9 selector: matchLabels: app: process template: metadata: labels: app: process version: 1.0 spec: containers: - name: pull image: jyee/process:v1 imagePullPolicy: Always apiVersion: apps/v1 kind: Deployment metadata: name: process labels: app: process spec: replicas: 1 selector: matchLabels: app: process template: metadata: labels: app: process version: 2.0 spec: containers: - name: pull image: jyee/process:v2 imagePullPolicy: Always
  • 76. D E P L O Y M E N T apiVersion: apps/v1 kind: Deployment metadata: name: process labels: app: process spec: replicas: 8 selector: matchLabels: app: process template: metadata: labels: app: process version: 1.0 spec: containers: - name: pull image: jyee/process:v1 imagePullPolicy: Always apiVersion: apps/v1 kind: Deployment metadata: name: process labels: app: process spec: replicas: 2 selector: matchLabels: app: process template: metadata: labels: app: process version: 2.0 spec: containers: - name: pull image: jyee/process:v2 imagePullPolicy: Always
  • 77. W H A T D O E S A S E R V I C E M E S H G E T Y O U ?
  • 78. S E R V I C E M E S H E S • Routing & load balancing
  • 79. S E R V I C E M E S H E S • Routing & load balancing • Service discovery
  • 80. S E R V I C E M E S H E S • Routing & load balancing • Service discovery • Timeouts & retries
  • 81. S E R V I C E M E S H E S • Routing & load balancing • Service discovery • Timeouts & retries • Policy enforcement
  • 82. S E R V I C E M E S H E S • Routing & load balancing • Service discovery • Timeouts & retries • Policy enforcement • Monitoring & tracing
  • 83. How does it work?
  • 84. 1. Add a data plane
  • 85.
  • 86. 2. Add a control plane
  • 87.
  • 88. 1 . 0 i s c o m i n g . G o p l a y w i t h I s t i o
  • 89. 1 . 0 i s c o m i n g . G o p l a y w i t h I s t i o HERE! 🎉
  • 90. b u t d o n ’ t r o l l i t o u t i n p r o d
  • 91. b u t d o n ’ t r o l l i t o u t i n p r o d TRY TO
  • 92. I N S T A L L I N G I S T I O 1. Download from github.com/istio/istio/releases
  • 93. I N S T A L L I N G I S T I O 1. Download from github.com/istio/istio/releases 2. Unpack
  • 94. I N S T A L L I N G I S T I O 1. Download from github.com/istio/istio/releases 2. Unpack 3. export PATH=$PATH:istio-1.0.0/bin
  • 95. I N S T A L L I N G I S T I O 1. Download from github.com/istio/istio/releases 2. Unpack 3. export PATH=$PATH:istio-1.0.0/bin 4. kubectl apply -f install/kubernetes/istio-demo.yaml
  • 96. I N S T A L L I N G I S T I O 1. Download from github.com/istio/istio/releases 2. Unpack 3. export PATH=$PATH:istio-1.0.0/bin 4. kubectl apply -f install/kubernetes/istio-demo.yaml Or Use Helm!
  • 97. W H A T D O E S I T I N S T A L L ? Istio Citadel Istio Egress Gateway Istio Ingress Gateway Istio Pilot Istio Policy Istio Sidecar Injector Istio Telemetry Statsd Prometheus Bridge Grafana Prometheus Service Graph NG Zipkin
  • 98. C A N A R Y D E P L O Y I N G W I T H I S T I O
  • 99. S E R V I C E apiVersion: v1 kind: Service metadata: name: process labels: app: process spec: ports: - port: 80 name: http selector: app: process
  • 100. D E P L O Y M E N T apiVersion: apps/v1 kind: Deployment metadata: name: process labels: app: process spec: replicas: 3 selector: matchLabels: app: process template: metadata: labels: app: process version: 1.0 spec: containers: - name: pull image: jyee/process:v1 imagePullPolicy: Always apiVersion: apps/v1 kind: Deployment metadata: name: process labels: app: process spec: replicas: 3 selector: matchLabels: app: process template: metadata: labels: app: process version: 2.0 spec: containers: - name: pull image: jyee/process:v2 imagePullPolicy: Always
  • 101. k u b e c t l c r e a t e - f < ( i s t i o c t l k u b e - i n j e c t - f y o u r _ k 8 s . y a m l )
  • 102. T E E N A G E M U T A T I N G W E B H O O K A D M I S S I O N C O N T R O L L E R S ! A K A A U T O - S I D E C A R I N J E C T I O N
  • 103. C O N T A I N E R S E R V I C E O R C H E S T R A T O R
  • 104. C O N T A I N E R S E R V I C E O R C H E S T R A T O R M E S H
  • 105. I S T I O V I R T U A L S E R V I C E S apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: process-routing spec: hosts: - process http: - route: - destination: host: process subset: v1
  • 106. I S T I O V I R T U A L S E R V I C E S apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: destination-process spec: host: process subsets: - name: v1 labels: version: '1.0'
  • 107. I S T I O V I R T U A L S E R V I C E S apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: destination-process spec: host: process subsets: - name: v1 labels: version: '1.0' - name: v2 labels: version: '2.0'
  • 108. I S T I O V I R T U A L S E R V I C E S apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: destination-process spec: host: process subsets: - name: v1 labels: version: '1.0' - name: v2 labels: version: '2.0'
  • 109. I S T I O V I R T U A L S E R V I C E S apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: process-routing spec: hosts: - process http: - route: - destination: host: process subset: v1 weight: 80 - route: - destination: host: process subset: v2 weight: 20
  • 110. I S T I O V I R T U A L S E R V I C E S apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: process-routing spec: hosts: - process http: - route: - destination: host: process subset: v1 weight: 80 - route: - destination: host: process subset: v2 weight: 20
  • 111. I S T I O V I R T U A L S E R V I C E S apiVersion: networking.istio.io/v1alpha3 kind: VirtualService ... http: - match: - headers: cookie: user: my-logged-in-user route: - destination: host: process subset: v2 weight: 20
  • 112. L O T S ! W H A T E L S E C A N I T D O ? h t t p s : / / i s t i o . i o / d o c s / r e f e r e n c e / c o n f i g /
  • 113. R E C A P • Service meshes give you more control
  • 114. R E C A P • Service meshes give you more control • Canary deploys: Representative & Granular
  • 115. R E C A P • Service meshes give you more control • Canary deploys: Representative & Granular • Monitoring: Tags, Outliers, Anomalies
  • 116. R E C A P • Service meshes give you more control • Canary deploys: Representative & Granular • Monitoring: Tags, Outliers, Anomalies • What to watch: Latency, Errors, Traffic, Saturation
  • 117. R E C A P • Service meshes give you more control • Canary deploys: Representative & Granular • Monitoring: Tags, Outliers, Anomalies • What to watch: Latency, Errors, Traffic, Saturation • GO PLAY WITH ISTIO 1.0.0!
  • 118. Q U E S T I O N S ? e m a i l : j y e e @ d a t a d o g h q . c o m t w i t t e r : @ g i t b i s e c t
  • 119. S L I D E S : b i t . l y / a w s c h i - c a n a r i e s e m a i l : j y e e @ d a t a d o g h q . c o m t w i t t e r : @ g i t b i s e c t
  • 120. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Submit session feedback 1. Tap the Schedule icon. 2. Select the session you attended. 3. Tap Session Evaluation to submit your feedback.