MICROSERVICES
DEPLOYMENT PATTERNS
Abhishek Tiwari http://abhishek-tiwari.com ! @abhishektiwari
CUPCAKE MICROTECTURE
TO BUILD MICROSERVICE
AT SCALE YOU NEED
TO BUILD MICROSERVICE
AT SCALE YOU NEED
TO BUILD MICROSERVICE
AT SCALE YOU NEED
Well-architected
Well-architected
Well-architected
Well-architected
Well-architected
DEPLOYMENT PATTERNS
•
•
•
•
THINGS TO CONSIDER
!
"
"
!
"
"
!
"
"
!
EXAMPLE MICROSERVICES LANDSCAPE
Web " Mobile #
API Gateway
EXAMPLE MICROSERVICES LANDSCAPE
Web " Mobile #
API Gateway
EXAMPLE MICROSERVICES LANDSCAPE
Web " Mobile #
API Gateway
ONE MICROSERVICE PER VM/SERVER
OS
Service
Hypervisor
OS OS
Service Service
VM VM
Abhishek Tiwari http://abhishek-tiwari.com ! @abhishektiwari
ONE MICROSERVICE PER VIRTUAL MACHINE
(WITH ELB)
API Gateway
ONE MICROSERVICE PER VIRTUAL MACHINE
(WITH ELB)
API Gateway
ONE MICROSERVICE PER VIRTUAL MACHINE
(WITH ELB)
ONE MICROSERVICE PER VIRTUAL MACHINE
(WITH ELB)
API Gateway
ONE MICROSERVICE PER VIRTUAL MACHINE
(WITH ELB)
API Gateway
ONE MICROSERVICE PER VIRTUAL MACHINE
(WITH ELB)
API Gateway
CONTINUOUS DELIVERY
CONTINUOUS DELIVERY
Using CI System Only
CONTINUOUS DELIVERY
Using CI System Only
DEPLOYMENT STRATEGY
Rolling Update – One Instance At A Time
DEPLOYMENT STRATEGY
Rolling Update – One Instance At A Time
DEPLOYMENT STRATEGY
Rolling Update – One Instance At A Time
DEPLOYMENT STRATEGY
Rolling Update – One Instance At A Time
DEPLOYMENT STRATEGY
Rolling Update – One Instance At A Time
DEPLOYMENT STRATEGY
Rolling Update – One Instance At A Time
DEPLOYMENT STRATEGY
Rolling Update – One Instance At A Time
DEPLOYMENT STRATEGY
Canary Release – % Users At A Time
100%
DEPLOYMENT STRATEGY
Canary Release – % Users At A Time
25%75%
DEPLOYMENT STRATEGY
Canary Release – % Users At A Time
60% 40%
DEPLOYMENT STRATEGY
Canary Release – % Users At A Time
50% 50%
DEPLOYMENT STRATEGY
Canary Release – % Users At A Time
40% 60%
DEPLOYMENT STRATEGY
Canary Release – % Users At A Time
25% 75%
DEPLOYMENT STRATEGY
Canary Release – % Users At A Time
0% 100%
DEPLOYMENT STRATEGY
A/B– Equal Split of % Users
100%
DEPLOYMENT STRATEGY
A/B– Equal Split of % Users
50%50%
DEPLOYMENT STRATEGY
Blue-Green
DEPLOYMENT STRATEGY
Blue-Green
DEPLOYMENT STRATEGY
Blue-Green
DEPLOYMENT STRATEGY
Blue-Green
CONTINUOUS DELIVERY
Using CI System + Spinnaker
Spinnaker Deck
OBSERVATIONS
ONE MICROSERVICE PER CONTAINER
Abhishek Tiwari http://abhishek-tiwari.com ! @abhishektiwari
ONE MICROSERVICE PER CONTAINER
(WITH ELB)
API Gateway
ONE MICROSERVICE PER CONTAINER
(WITH ELB)
API Gateway
ONE MICROSERVICE PER CONTAINER
(WITH ELB)
API Gateway
ONE MICROSERVICE PER CONTAINER
(WITH ELB)
ONE MICROSERVICE PER CONTAINER
(WITH HA/AUTO-SCALING)
API Gateway
Port Instance 8003
Port Container 8003
Port ELB 80 Port ELB 80
Port Instance 6003
Port Container 6003
ONE MICROSERVICE PER CONTAINER
(SINGLE MULTI-AZ CONTAINER CLUSTER)
API Gateway
ONE MICROSERVICE PER CONTAINER
(MULTIPLE SINGLE-AZ CONTAINER CLUSTER)
API Gateway
ONE MICROSERVICE PER CONTAINER
With ELB & ILB
API Gateway
ONE MICROSERVICE PER CONTAINER
More On ELB, ILB & Cluster
ONE MICROSERVICE PER CONTAINER
More On Service Discovery & Networking
ONE MICROSERVICE PER CONTAINER
Rolling Updates, Blue-Green and Canary
CONTINUOUS DELIVERY
CONTINUOUS DELIVERY
Using CI System Only
MARATHON DC/OS
KUBERNETES
OBSERVATIONS
ONE MICROSERVICE PER PaaS SERVICE
Abhishek Tiwari http://abhishek-tiwari.com ! @abhishektiwari
ONE MICROSERVICE PER PaaS SERVICE
(GOOGLE APP ENGINE)
https://version-dot-service-dot-app-id.appspot.com
GOOGLE APP ENGINE
GOOGLE APP ENGINE
GOOGLE APP ENGINE
GOOGLE APP ENGINE
GOOGLE APP ENGINE
GOOGLE APP ENGINE
OBSERVATIONS
ONE MICROSERVICE AS A SET OF COMPUTE
FUNCTIONS
Abhishek Tiwari http://abhishek-tiwari.com ! @abhishektiwari
FaaS - Function as a Service
AWS Lambda Function
Amazon API Gateway
ƛƛ
ƛ
ƛ
ƛ
ƛ ƛ
ƛ
ƛ
ƛ
AWS Lambda Function
AWS Lambda Function
AWS Lambda Function
OBSERVATIONS
Thank you
Abhishek Tiwari http://abhishek-tiwari.com ! @abhishektiwari

Microservices deployment patterns