microservices deployment patterns

82
MICROSERVICES DEPLOYMENT PATTERNS B!cbmbodjoh!bdu!cfuxffo!dptu-!dpnqmfyjuz-!fmbtujdjuz!boe!bwbjmbcjmjuz Abhishek Tiwari http://abhishek-tiwari.com ! @abhishektiwari

Upload: abhishek-tiwari

Post on 15-Apr-2017

590 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Microservices deployment patterns

MICROSERVICES DEPLOYMENT PATTERNS

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

Page 2: Microservices deployment patterns

CUPCAKE MICROTECTURE

Page 3: Microservices deployment patterns

TO BUILD MICROSERVICEAT SCALE YOU NEED

Page 4: Microservices deployment patterns

TO BUILD MICROSERVICEAT SCALE YOU NEED

Page 5: Microservices deployment patterns

TO BUILD MICROSERVICEAT SCALE YOU NEED

Page 6: Microservices deployment patterns

Well-architected

Page 7: Microservices deployment patterns

Well-architected

Page 8: Microservices deployment patterns

Well-architected

Page 9: Microservices deployment patterns

Well-architected

Page 10: Microservices deployment patterns

Well-architected

Page 11: Microservices deployment patterns

DEPLOYMENT PATTERNS

Page 12: Microservices deployment patterns

THINGS TO CONSIDER!

"

"

!

"

"

!

"

"

!

Page 13: Microservices deployment patterns

EXAMPLE MICROSERVICES LANDSCAPE

Web " Mobile #

API Gateway

Page 14: Microservices deployment patterns

EXAMPLE MICROSERVICES LANDSCAPE

Web " Mobile #

API Gateway

Page 15: Microservices deployment patterns

EXAMPLE MICROSERVICES LANDSCAPE

Web " Mobile #

API Gateway

Page 16: Microservices deployment patterns

ONE MICROSERVICE PER VM/SERVER

OSService

Hypervisor

OS OS

Service Service

VM VM

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

Page 17: Microservices deployment patterns

ONE MICROSERVICE PER VIRTUAL MACHINE(WITH ELB)

API Gateway

Page 18: Microservices deployment patterns

ONE MICROSERVICE PER VIRTUAL MACHINE(WITH ELB)

API Gateway

Page 19: Microservices deployment patterns

ONE MICROSERVICE PER VIRTUAL MACHINE(WITH ELB)

Page 20: Microservices deployment patterns

ONE MICROSERVICE PER VIRTUAL MACHINE(WITH ELB)

API Gateway

Page 21: Microservices deployment patterns

ONE MICROSERVICE PER VIRTUAL MACHINE(WITH ELB)

API Gateway

Page 22: Microservices deployment patterns

ONE MICROSERVICE PER VIRTUAL MACHINE(WITH ELB)

API Gateway

Page 23: Microservices deployment patterns

CONTINUOUS DELIVERY

Page 24: Microservices deployment patterns

CONTINUOUS DELIVERYUsing CI System Only

Page 25: Microservices deployment patterns

CONTINUOUS DELIVERYUsing CI System Only

Page 26: Microservices deployment patterns

DEPLOYMENT STRATEGYRolling Update – One Instance At A Time

Page 27: Microservices deployment patterns

DEPLOYMENT STRATEGYRolling Update – One Instance At A Time

Page 28: Microservices deployment patterns

DEPLOYMENT STRATEGYRolling Update – One Instance At A Time

Page 29: Microservices deployment patterns

DEPLOYMENT STRATEGYRolling Update – One Instance At A Time

Page 30: Microservices deployment patterns

DEPLOYMENT STRATEGYRolling Update – One Instance At A Time

Page 31: Microservices deployment patterns

DEPLOYMENT STRATEGYRolling Update – One Instance At A Time

Page 32: Microservices deployment patterns

DEPLOYMENT STRATEGYRolling Update – One Instance At A Time

Page 33: Microservices deployment patterns

DEPLOYMENT STRATEGY Canary Release – % Users At A Time

100%

Page 34: Microservices deployment patterns

DEPLOYMENT STRATEGY Canary Release – % Users At A Time

25%75%

Page 35: Microservices deployment patterns

DEPLOYMENT STRATEGY Canary Release – % Users At A Time

60% 40%

Page 36: Microservices deployment patterns

DEPLOYMENT STRATEGY Canary Release – % Users At A Time

50% 50%

Page 37: Microservices deployment patterns

DEPLOYMENT STRATEGY Canary Release – % Users At A Time

40% 60%

Page 38: Microservices deployment patterns

DEPLOYMENT STRATEGY Canary Release – % Users At A Time

25% 75%

Page 39: Microservices deployment patterns

DEPLOYMENT STRATEGY Canary Release – % Users At A Time

0% 100%

Page 40: Microservices deployment patterns

DEPLOYMENT STRATEGYA/B– Equal Split of % Users

100%

Page 41: Microservices deployment patterns

DEPLOYMENT STRATEGYA/B– Equal Split of % Users

50%50%

Page 42: Microservices deployment patterns

DEPLOYMENT STRATEGYBlue-Green

Page 43: Microservices deployment patterns

DEPLOYMENT STRATEGYBlue-Green

Page 44: Microservices deployment patterns

DEPLOYMENT STRATEGYBlue-Green

Page 45: Microservices deployment patterns

DEPLOYMENT STRATEGYBlue-Green

Page 46: Microservices deployment patterns

CONTINUOUS DELIVERYUsing CI System + Spinnaker

Page 47: Microservices deployment patterns

Spinnaker Deck

Page 48: Microservices deployment patterns

OBSERVATIONS

Page 49: Microservices deployment patterns

ONE MICROSERVICE PER CONTAINER

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

Page 50: Microservices deployment patterns

ONE MICROSERVICE PER CONTAINER(WITH ELB)

API Gateway

Page 51: Microservices deployment patterns

ONE MICROSERVICE PER CONTAINER(WITH ELB)

API Gateway

Page 52: Microservices deployment patterns

ONE MICROSERVICE PER CONTAINER(WITH ELB)

API Gateway

Page 53: Microservices deployment patterns

ONE MICROSERVICE PER CONTAINER(WITH ELB)

Page 54: Microservices deployment patterns

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

Page 55: Microservices deployment patterns

ONE MICROSERVICE PER CONTAINER(SINGLE MULTI-AZ CONTAINER CLUSTER)

API Gateway

Page 56: Microservices deployment patterns

ONE MICROSERVICE PER CONTAINER(MULTIPLE SINGLE-AZ CONTAINER CLUSTER)

API Gateway

Page 57: Microservices deployment patterns

ONE MICROSERVICE PER CONTAINERWith ELB & ILB

API Gateway

Page 58: Microservices deployment patterns

ONE MICROSERVICE PER CONTAINER More On ELB, ILB & Cluster

Page 59: Microservices deployment patterns

ONE MICROSERVICE PER CONTAINER More On Service Discovery & Networking

Page 60: Microservices deployment patterns

ONE MICROSERVICE PER CONTAINER Rolling Updates, Blue-Green and Canary

Page 61: Microservices deployment patterns

CONTINUOUS DELIVERY

Page 62: Microservices deployment patterns

CONTINUOUS DELIVERYUsing CI System Only

Page 63: Microservices deployment patterns

MARATHON DC/OS

Page 64: Microservices deployment patterns

KUBERNETES

Page 65: Microservices deployment patterns

OBSERVATIONS

Page 66: Microservices deployment patterns

ONE MICROSERVICE PER PaaS SERVICE

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

Page 67: Microservices deployment patterns

ONE MICROSERVICE PER PaaS SERVICE(GOOGLE APP ENGINE)

https://version-dot-service-dot-app-id.appspot.com

Page 68: Microservices deployment patterns

GOOGLE APP ENGINE

Page 69: Microservices deployment patterns

GOOGLE APP ENGINE

Page 70: Microservices deployment patterns

GOOGLE APP ENGINE

Page 71: Microservices deployment patterns

GOOGLE APP ENGINE

Page 72: Microservices deployment patterns

GOOGLE APP ENGINE

Page 73: Microservices deployment patterns

GOOGLE APP ENGINE

Page 74: Microservices deployment patterns

OBSERVATIONS

Page 75: Microservices deployment patterns

ONE MICROSERVICE AS A SET OF COMPUTE FUNCTIONS

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

Page 76: Microservices deployment patterns

FaaS - Function as a Service

Page 77: Microservices deployment patterns

AWS Lambda FunctionAmazon API Gateway

ƛƛ

ƛ

ƛ

ƛ

ƛ ƛ

ƛ

ƛ

ƛ

Page 78: Microservices deployment patterns

AWS Lambda Function

Page 79: Microservices deployment patterns

AWS Lambda Function

Page 80: Microservices deployment patterns

AWS Lambda Function

Page 81: Microservices deployment patterns

OBSERVATIONS

Page 82: Microservices deployment patterns

Thank you

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