Microservices deployment patterns

Post on 15-Apr-2017

585 views 0 download

Transcript of Microservices deployment patterns

MICROSERVICES DEPLOYMENT PATTERNS

Abhishek Tiwari http://abhishek-tiwari.com ! @abhishektiwari

CUPCAKE MICROTECTURE

TO BUILD MICROSERVICEAT SCALE YOU NEED

TO BUILD MICROSERVICEAT SCALE YOU NEED

TO BUILD MICROSERVICEAT 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

OSService

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 DELIVERYUsing CI System Only

CONTINUOUS DELIVERYUsing CI System Only

DEPLOYMENT STRATEGYRolling Update – One Instance At A Time

DEPLOYMENT STRATEGYRolling Update – One Instance At A Time

DEPLOYMENT STRATEGYRolling Update – One Instance At A Time

DEPLOYMENT STRATEGYRolling Update – One Instance At A Time

DEPLOYMENT STRATEGYRolling Update – One Instance At A Time

DEPLOYMENT STRATEGYRolling Update – One Instance At A Time

DEPLOYMENT STRATEGYRolling 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 STRATEGYA/B– Equal Split of % Users

100%

DEPLOYMENT STRATEGYA/B– Equal Split of % Users

50%50%

DEPLOYMENT STRATEGYBlue-Green

DEPLOYMENT STRATEGYBlue-Green

DEPLOYMENT STRATEGYBlue-Green

DEPLOYMENT STRATEGYBlue-Green

CONTINUOUS DELIVERYUsing 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 CONTAINERWith 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 DELIVERYUsing 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 FunctionAmazon API Gateway

ƛƛ

ƛ

ƛ

ƛ

ƛ ƛ

ƛ

ƛ

ƛ

AWS Lambda Function

AWS Lambda Function

AWS Lambda Function

OBSERVATIONS

Thank you

Abhishek Tiwari http://abhishek-tiwari.com ! @abhishektiwari