AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud...

83
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Emerson Loureiro, Sr. Software Engineer, Gilt Derek Chiles, Tech Leader Team, AWS November 30, 2016 From Monolithic to Microservices Gilt’s Journey To Microservices on AWS ARC305

Transcript of AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud...

Page 1: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Emerson Loureiro, Sr. Software Engineer, Gilt

Derek Chiles, Tech Leader Team, AWS

November 30, 2016

From Monolithic to MicroservicesGilt’s Journey To Microservices on AWS

ARC305

Page 2: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

What to Expect from the Session

• Why Microservices?

• Migration approaches and considerations

• Gilt’s journey to microservices on AWS

• Architecture patterns and best practices

Page 3: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Gilt

Page 4: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Gilt

Page 5: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Gilt

“How can we scale things up independently?”

“How can we arrange teams around strategic initiatives?”

“How can we make it easy and fast to push changes to

production?”

Page 6: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Gilt

Ruby on

Rails

Jobs

memcache

Postgres

Ruby on

Rails

Jobs

memcache

Postgres

Product

service

Order

service

Cart

service

Swift

(gilt.com)

City Swift

(giltcity.com)

Taste(gilttaste.com)

…Front-endJava services

Ruby on

Rails

Jobs

memcache

Postgres

Product

service

Java services

Web

PDP

Web

Search

Web

Homepage

gilt.comScala

microservices

Order

service

201520112007

Page 7: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Common MobilePersonali-

sationAdmin Data

Gilt

(2) “Department” accounts

Existing Data Centre

“Legacy VPC”

(1) Deploy to VPC Dual 10 Gb direct connect line, 2-ms latency.

Page 8: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Monolithic Microservices

• Simple deployments

• Inter-module refactoring

• Binary failure modes

• Vertical scaling

• Technology monoculture

• Partial deployments

• Strong module boundaries

• Graceful degradation

• Horizontal scaling

• Technology diversity

Page 9: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Organization & Ownership

Page 10: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Monolithic Organization

Organized on technology capabilities

UI Team

DBA Team

App Logic Team

Web Tier

App Tier

DB

Organizational Structure Application Architecture

Page 11: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Microservices OrganizationOrganized around business initiatives

Login

Registration

Order

Personalization

Accounts team

Mobile

Personalization team Mobile team

Page 12: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

The Teams

• Ingredients

• Team size: typically 3-5 people

Page 13: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

The “A” Team

Page 14: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

The Teams

• Independent teams who fully own their services:

• Requirements

• Quality

• Deployment

• Source code

• Technology selection

Page 15: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Architecture

Page 16: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Monolithic Architecture

Load

Balancer

Account Service

Cart Service

Shipping Service

StoreFront UI

BrowserDatabase

Data Access

Service

Page 17: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Account

Database

Inventory

Database

Shipping

Database

Microservices Architecture

Load

BalancerStoreFront

UIBrowser

Account

Service

Cart Service

Shipping

Service

Load

Balancer

Load

Balancer

Load

Balancer

Page 18: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Microservices Architecture

Load

BalancerStoreFront

UIBrowser

Account

Database

Account

Service

Cart Service Inventory

Database

Shipping

Service

API

Gateway

Load

Balancer

Load

Balancer

Load

BalancerShipping

Database

Page 19: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Auto Scaling Group

Typical Service Stack at Gilt

ELB

DNS

Docker registry

Amazon CloudWatch Metrics

Amazon SNS Topic

EC2 Instance

Service “X” VM

EC2 Instance

Service “X” VMCloudWatch Log Group

Page 20: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Service Instance Types at Gilt

Page 21: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Decomposition

Page 22: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Strangling the Monolith

DatabaseStoreFront

UIBrowser

Cart

Service

Account

Service

User

Service

Page 23: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

No New Features on the Monolith

DatabaseStoreFront

UIBrowser

New

Microservice

New DB

Cart

Service

Account

Service

User

Service

Page 24: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Anti-Corruption Layer for Integration

ACL

DatabaseStoreFront

UIBrowser

New

Microservice

New DB

Cart

Service

Account

Service

User

Service

Page 25: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Cart

Service

Account

Service

Start With a Simple Existing Service…

DatabaseStoreFront

UIBrowser

User

Microservice

User DB

New

Microservice

New DB

User

Service

Client

Page 26: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Account

Service

User

Service

Client

…Move on to More Complicated Services

Cart

Microservice

DatabaseStoreFront

UIBrowser

User

Microservice

User DB

New

Microservice

New DB

ACL

Cart DB

Cart

Service

Page 27: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

…Keep Walking and…

Cart

Microservice

DatabaseStoreFront

UIBrowser

User

Microservice

User DB

New

Microservice

New DB

Account

Microservice

Cart DB Account DB

Account

Service

User

Service

Client

ACL

Cart

Service

ACL

Page 28: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

…The Monolith is Eventually Gone

Cart

Microservice

StoreFront

UIBrowser

User

Microservice

User DB

New

Microservice

New DB

Account

Microservice

Cart DB Account DB

Page 29: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Data Management

Page 30: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Decentralized Data Stores

• Freedom of choice

• Low impact schema changes

• Independent scalabilityaccount-

svc

cart-

svc

user-

svc

Amazon

ElastiCacheAmazon

RDSAmazon

DynamoDB

RDS

Page 31: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Storage & DB options in AWS

Amazon

RDS

Amazon

DynamoDBAmazon

ElasticSearch

Amazon

S3Amazon

Kinesis

Amazon

ElastiCache

Cache NoSQL SQL SearchObject Streaming

Amazon

Redshift

Amazon

Glacier

Page 32: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Serv

ice

Page 33: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Cross-Service Transactions

1) Avoid them

2) Use an optimistic model

• Accept eventual consistency

• Design for idempotency

• Detect conflicts and resolve later

• Ignore conflicts

3) Use a pessimistic model

• Create a transaction manager or distributed locking service

• Build transaction logic into the services

• Rethink your design

Page 34: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Aggregation

usr svc

Pull model Push model

Data Aggregation

Application

usr svc

Data

Aggregation

Application

Pub/Sub Composite

Composite Data Service

usr account cart

account svc cart svc

account svc

cart svc

Pub Sub

usr svc

account svc

cart svc

Data

Aggregation

Application

Push

Pull

Page 35: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Aggregation

usr svc

Pull model Push model

Data Aggregation

Application

usr svc

Data

Aggregation

Application

Pub/Sub Composite

Composite Data Service

usr account cart

account svc cart svc

account svc

cart svc

Pub Sub

usr svc

account svc

cart svc

Data

Aggregation

Application

Push

Pull

Page 36: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Aggregation

usr svc

Pull model Push model

Data Aggregation

Application

usr svc

Data

Aggregation

Application

Pub/Sub Composite

Composite Data Service

usr account cart

account svc cart svc

account svc

cart svc

Pub Sub

usr svc

account svc

cart svc

Data

Aggregation

Application

Push

Pull

Page 37: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Aggregation

usr svc

Pull model Push model

Data Aggregation

Application

usr svc

Data

Aggregation

Application

Pub/Sub Composite

Composite Data Service

usr account cart

account svc cart svc

account svc

cart svc

Pub Sub

usr svc

account svc

cart svc

Data

Aggregation

Application

Push

Pull

Page 38: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

API Discovery & Management

Page 39: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

DiscoveryOption #1 – Convention-based naming

shoppingcart.gamma.example.com

Page 40: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

DiscoveryOption #2: Dynamic Discovery

Page 41: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

StoreFront UI

Account

Service

Service Registry

Cart Service

Cart Service2) Query

3) Request

1) Register

DiscoveryOption #2: Dynamic Discovery

Page 42: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

API Management

• Enforce API consistency

• Monitor key metrics

• Implement read-through caching

• Provide authentication and authorization

• Meter and throttle

Page 43: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Amazon API Gateway

• Enforce API consistency

• Monitor key metrics

• Implement read-through caching

• Provide authentication and authorization

• Meter and throttle

Page 44: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Amazon API Gateway for Microservices

ClientAPI Gateway

Monolith

on EC2

Microservice 1

(Lambda)

Microservice 2

(ELB+EC2)

Microservice 3

(AWS Elastic Beanstalk)

Page 45: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

DO DON’T

• Add new methods

• Add optional params

• Deprecate

• Negotiate disruptive

changes

• Delete or rename

• Add required params

• Remove required params

• Mandate disruptive

changes

API Version Management

Page 46: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Deployment

Page 47: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Continuous Delivery & Continuous Deployment

Integration &

perf tests

Build & unit

testsbeta Prod

Monolit

h

Timeline

Cart, UserCart,

Account

Sales,

Account,

User

On the monolith…

Page 48: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Continuous Delivery & Continuous Deployment

Create the right build pipeline for each service

Integration &

perf tests

Build & unit

testsbeta Produser-svc

Integration &

perf tests

Build & unit

testsbeta gamma Prodcart-svc

AWS

CodeDeploy

Elastic

BeanstalkJenkins TravisCI CircleCIAWS

CodePipeline

Page 49: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Deployment Pace

cart-svc

checkout-svc

Timeline

Rollback

Page 50: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Phased Rollout

Page 51: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Elastic Beanstalk Application

Phased Rollout at Gilt Under the HoodBlue-Green Deployments with Elastic Beanstalk

Environment (0.0.1)

Instance Instance Instance

Environment (0.0.2)

Instance Instance Instance

ELB

Page 52: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Elastic Beanstalk Application

Phased Rollout at Gilt Under the HoodBlue-Green Deployments with Elastic Beanstalk

Environment (0.0.1)

Instance Instance Instance

Environment (0.0.2)

Instance Instance Instance

ELB

Page 53: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Elastic Beanstalk Application

Phased Rollout at Gilt Under the HoodBlue-Green Deployments with Elastic Beanstalk

Environment (0.0.1)

Instance Instance Instance

Environment (0.0.2)

Instance Instance Instance

ELB

Page 54: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Elastic Beanstalk Application

Phased Rollout at Gilt Under the HoodBlue-Green Deployments with Elastic Beanstalk

Environment (0.0.1)

Instance Instance Instance

Environment (0.0.2)

Instance Instance Instance

ELB

Page 55: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Elastic Beanstalk Application

Phased Rollout at Gilt Under the HoodBlue-Green Deployments with Elastic Beanstalk

Environment (0.0.2)

Instance Instance Instance

ELB

Page 56: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Phased Rollout at Gilt Under the Hood

CodeDeploy Application

Canary Deployment Group Production Deployment GroupDevelopment Deployment Group

InstanceInstanceInstanceInstance

Production ELBDevelopment ELB

Gilt Production

Users

Production DNSDevelopment DNS

Testing in Production with CodeDeploy

Page 57: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Phased Rollout at Gilt Under the Hood

CodeDeploy Application

Canary Deployment Group Production Deployment GroupDevelopment Deployment Group

InstanceInstanceInstanceInstance

Production ELBDevelopment ELB

Gilt Production

Production DNS

UsersEngineers

Development DNS

Testing in Production with CodeDeploy

Promote Promote

Page 58: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Phased Rollout at Gilt Under the Hood

CodeDeploy Application

Canary Deployment Group Production Deployment GroupDevelopment Deployment Group

InstanceInstanceInstanceInstance

Production ELBDevelopment ELB

Gilt Production

UsersEngineers & QA

Production DNSDevelopment DNS

Testing in Production with CodeDeploy

Promote Promote

Dev, please

Page 59: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Monitoring & Logging

Page 60: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Monitoring

• Instance level: Memory usage, GC Cycles

• Service level: RPMs, Latency, Error rate

• Universe level: Endpoint response times

Page 61: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Monitoring at Gilt

Page 62: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Monitoring at Gilt

Remote calls response time

Submitted orders

CloudWatch

Page 63: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Logging

• Push your logs somewhere

S3 Elasticsearch CloudWatch Logs

Page 64: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Logging

• Push your logs somewhere

• Have visibility on the whole life cycle

Deployment => instance startup => application => termination

S3 Elasticsearch CloudWatch

Page 65: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Logging

• Push your logs somewhere

• Have visibility on the whole life cycle

Deployment => instance startup => application => termination

• Separate your logs by service and by instance

S3 Elasticsearch CloudWatch

Page 66: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Logging At Gilt

Service

EC2 Instance

Service “X” VM

EC2 Instance

Service “X” VM

CloudWatch Log Group

Log Stream

Log Stream

Errors!

Page 67: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Aggregation Layer

Log Aggregation

CloudWatch Log Group

Log Stream

Log Stream

CloudWatch Log Group

Log Stream

Log Stream

CloudWatch Log Group

Log Stream

Log Stream

CloudWatch Log Group

Log Stream

Log Stream

CloudWatch Log Group

Log Stream

Log Stream

CloudWatch Log Group

Log Stream

Log Stream

CloudWatch Log Group

Log Stream

Log Stream

CloudWatch Log Group

Log Stream

Log Stream

CloudWatch Log Group

Log Stream

Log Stream

CloudWatch Log Group

Log Stream

Log Stream

+ + + + + =

Page 68: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Cleanup Service

EC2 Instance

Service “X” VM

EC2 Instance

Service “X” VM

CloudWatch Log Group

Log Stream

Log Stream

Service

EC2 Instance

Service “X” VM

EC2 Instance

Service “X” VM

CloudWatch Log Group

Log Stream

Log Stream

Log Aggregation At Gilt

Service

EC2 Instance

Service “X” VM

EC2 Instance

Service “X” VM

CloudWatch Log Group

Log Stream

Log Stream

LambdaAWS Elasticsearch

Kibana

Lambda

Delete!

Index!

Timer

Page 69: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Good Citizenship

Page 70: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Service Consumer Tenets

• Design for failure

• Plan to be throttled

• Plan to retry (w/ exponential backoff)

• Degrade gracefully

• Cache when appropriate

Page 71: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Service Provider Tenets

• Publish standard metrics

• Publish logs for aggregation

• Be prepared to throttle

• Implementation details are private

• Maintain backwards compatibility

Page 72: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Standardize Logging

2016-09-02T15:03:24+00:00 ui-svc INFO [uuid-123] ...

2016-09-02T15:03:25+00:00 catalog-svc INFO [uuid-123] ...

2016-09-02T15:03:26+00:00 checkout-svc ERROR [uuid-123] ...

2016-09-02T15:03:27+00:00 payment-svc INFO [uuid-123] ...

2016-09-02T15:03:27+00:00 shipping-svc INFO [uuid-123] ...

ui-svc catalog-svc checkout-

svc

shipping-

svc

payment-

svc

request correlation id:

“uuid-123”correlation id:

“uuid-123”

Page 73: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Parallelize

Aggregate

Service

Service 1

Service 2

Service 3

Single request parallel request

Page 74: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Parallelize

for {

a <- callServiceA()

b <- callServiceB()

c <- callServiceC(a, b)

} yield c

val futureA = callServiceA()

val futureB = callServiceB()

for {

a <- futureA

b <- futureB

c <- callServiceC(a, b)

} yield c

Page 75: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Degrade Gracefully

checkout-svc

Downstream

Service 1

Downstream

Service 2

Downstream

Service 3

Single request

Request

response

Fast response

Page 76: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Cache Locally

Remote

Service

Application

Runtime

Local

Cache

Page 77: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Cache Externally

Remote

Service

Local

Service

External Cache

Page 78: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Use a Read-Through Cache

Local

Service

Cache

Remote

Service

API Gateway

Page 79: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Private Services

Putting It All Together

Public Services

Web front-end Mobile apps

Page 80: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Recap

• Organisation & Ownership

• Architecture & Decomposition

• Data Management

• Discovery

• API Management

• Deployment

• Logging and Monitoring

• Good citizenship

Page 81: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Thank you!Thank You!

Page 82: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Remember to complete

your evaluations!

Page 83: AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture Patterns in the Cloud (ARC305)

Related Sessions