Enterprise summit – architecting microservices on aws final v2
-
Upload
amazon-web-services -
Category
Software
-
view
1.219 -
download
4
Transcript of Enterprise summit – architecting microservices on aws final v2
![Page 1: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/1.jpg)
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Level 200 (Introductory)
Pierre Steckmeyer, AWS Solutions ArchitectSeptember 28th, 2016
Architecting Microservices on AWSDivide and conquer for agility and scalability:
![Page 2: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/2.jpg)
![Page 3: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/3.jpg)
![Page 4: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/4.jpg)
![Page 5: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/5.jpg)
![Page 6: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/6.jpg)
![Page 7: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/7.jpg)
![Page 8: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/8.jpg)
ENTERPRISE APPS
DEVELOPMENT & OPERATIONSMOBILE SERVICESAPP SERVICESANALYTICS
DataWarehousing
Hadoop/Spark
Streaming Data Collection
Machine Learning
Elastic Search
Virtual Desktops
Sharing & Collaboration
Corporate Email
Backup
Queuing & Notifications
Workflow
Search
Transcoding
One-click App Deployment
Identity
Sync
Single Integrated Console
PushNotifications
DevOps Resource Management
Application Lifecycle Management
Containers
Triggers
Resource Templates
TECHNICAL & BUSINESS SUPPORT
Account Management
Support
Professional Services
Training & Certification
Security & Pricing Reports
Partner Ecosystem
Solutions Architects
MARKETPLACE
Business Apps
Business Intelligence
DatabasesDevOps Tools
NetworkingSecurity Storage
RegionsAvailability Zones
Points of Presence
INFRASTRUCTURE
CORE SERVICES
ComputeVMs, Auto-scaling, & Load Balancing
StorageObject, Blocks, Archival, Import/Export
DatabasesRelational, NoSQL, Caching, Migration
NetworkingVPC, DX, DNS
CDN
Access Control
Identity Management
Key Management & Storage
Monitoring & Logs
Assessment and reporting
Resource & Usage Auditing
SECURITY & COMPLIANCE
Configuration Compliance
Web application firewall
HYBRIDARCHITECTURE
Data Backups
Integrated App Deployments
DirectConnect
IdentityFederation
IntegratedResource Management
Integrated Networking
API Gateway
IoT
Rules Engine
Device Shadows
Device SDKs
Registry
Device Gateway
Streaming Data Analysis
Business Intelligence
MobileAnalytics
![Page 9: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/9.jpg)
* As of 1 Feb 2016
2009
48
280
722
82
2011 2013 2015
![Page 10: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/10.jpg)
“The Monolith”
![Page 11: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/11.jpg)
Challenges with monolithic software
Long Build/Test/Release Cycles(who broke the build?)
Operationsis a nightmare(module X is failing, who’s the owner?)
Difficult to scale
New releasestake months
Long time to addnew features
Architecture is hard to maintain and evolve
Lack of innovation
Frustrated customers
Lack of agility
![Page 12: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/12.jpg)
Challenges with monolithic software
Long Build/Test/Release Cycles(who broke the build?)
Operationsis a nightmare(module X is failing, who’s the owner?)
Difficult to scale
New releasestake months
Long time to addnew features
Architecture is hard to maintain and evolve
Lack of innovation
Frustrated customers
Lack of agility
![Page 13: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/13.jpg)
Challenges with monolithic software
Long Build/Test/Release Cycles(who broke the build?)
Operationsis a nightmare(module X is failing, who’s the owner?)
Difficult to scale
New releasestake months
Long time to addnew features
Architecture is hard to maintain and evolve
Lack of innovation
Frustrated customers
Lack of agility
![Page 14: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/14.jpg)
“20080219BonMorningDSC_0022B” by Sunphol Sorakul . No alterations other than cropping. https://www.flickr.com/photos/83424882@N00/3483881705/Image used with permissions under Creative Commons license 2.0, Attribution Generic License (https://creativecommons.org/licenses/by/2.0/)
![Page 15: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/15.jpg)
Monolith development lifecycle
releasetestbuild
delivery pipeline
app(aka the“monolith”)developers
Photo by Sage Ross. No alterations other than cropping. https://www.flickr.com/photos/ragesoss/2931770125/Image used with permissions under Creative Commons license 2.0, Attribution Generic License (https://creativecommons.org/licenses/by/2.0/)
![Page 16: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/16.jpg)
Too much software coupling
![Page 17: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/17.jpg)
Too much software coupling
Shared libraries
![Page 18: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/18.jpg)
Too much software coupling
Shared libraries
Shared data
![Page 19: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/19.jpg)
Evolving towards microservices
“IMG_1760” by Robert Couse-Baker. No alterations other than cropping. https://www.flickr.com/photos/29233640@N07/14859431605/Image used with permissions under Creative Commons license 2.0, Attribution Generic License (https://creativecommons.org/licenses/by/2.0/)
![Page 20: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/20.jpg)
“IMG_1760” by Robert Couse-Baker. No alterations other than cropping. https://www.flickr.com/photos/29233640@N07/14859431605/Image used with permissions under Creative Commons license 2.0, Attribution Generic License (https://creativecommons.org/licenses/by/2.0/)
![Page 21: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/21.jpg)
![Page 22: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/22.jpg)
![Page 23: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/23.jpg)
“service-oriented
architecture
composed of
loosely coupled
elements
that have
bounded contexts”
Adrian Cockcroft (former Cloud Architect at Netflix,now Technology Fellow at Battery Ventures)
![Page 24: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/24.jpg)
“service-oriented
architecture
composed of
loosely coupled
elements
that have
bounded contexts”
Adrian Cockcroft (former Cloud Architect at Netflix,now Technology Fellow at Battery Ventures)
Services communicate with each other over the network
![Page 25: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/25.jpg)
“service-oriented
architecture
composed of
loosely coupled
elements
that have
bounded contexts”
Adrian Cockcroft (former Cloud Architect at Netflix,now Technology Fellow at Battery Ventures)
You can update the services independently; updating one service doesn’t require changing any other services.
![Page 26: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/26.jpg)
“service-oriented
architecture
composed of
loosely coupled
elements
that have
bounded contexts”
Adrian Cockcroft (former Cloud Architect at Netflix,now Technology Fellow at Battery Ventures)
Self-contained; you can update the code without knowing anything about the internals of other microservices
![Page 27: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/27.jpg)
“Do one thing, and do it well”
“Swiss Army” by by Jim Pennucci. No alterations other than cropping. https://www.flickr.com/photos/pennuja/5363518281/Image used with permissions under Creative Commons license 2.0, Attribution Generic License (https://creativecommons.org/licenses/by/2.0/)
![Page 28: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/28.jpg)
“Tools” by Tony Walmsley: No alterations other than cropping. https://www.flickr.com/photos/twalmsley/6825340663/Image used with permissions under Creative Commons license 2.0, Attribution Generic License (https://creativecommons.org/licenses/by/2.0/)
“Do one thing, and do it well”
![Page 29: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/29.jpg)
Anatomy of a Microservice
![Page 30: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/30.jpg)
Data Store(eg, RDS, DynamoDB
ElastiCache, ElasticSearch)
Anatomy of a Microservice
![Page 31: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/31.jpg)
Application/Logic(code, libraries, etc)
Anatomy of a Microservice
Data Store(eg, RDS, DynamoDB
ElastiCache, ElasticSearch)
![Page 32: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/32.jpg)
Public API
POST /restaurantsGET /restaurants
Application/Logic(code, libraries, etc)
Anatomy of a Microservice
Data Store(eg, RDS, DynamoDB
ElastiCache, ElasticSearch)
![Page 33: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/33.jpg)
Avoid Software Coupling
![Page 34: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/34.jpg)
Driversmicroservices
Paymentsmicroservice Location
microservices
Orderingmicroservices
Restaurantmicroservice
Ecosystem of microservices
![Page 35: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/35.jpg)
![Page 36: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/36.jpg)
![Page 37: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/37.jpg)
![Page 38: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/38.jpg)
= 50 million deployments a year
Thousands of teams
× Microservice architecture
× Continuous delivery
× Multiple environments
(5708 per hour, or every 0.63 second)
![Page 39: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/39.jpg)
Gilt: Luxury designer brands at members-only prices
![Page 40: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/40.jpg)
... Sale every day at noon EST
![Page 41: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/41.jpg)
![Page 42: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/42.jpg)
![Page 43: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/43.jpg)
Principle 1
Microservices only rely on each other’s public API
“Contracts” by NobMouse. No alterations other than cropping.https://www.flickr.com/photos/nobmouse/4052848608/
Image used with permissions under Creative Commons license 2.0, Attribution Generic License (https://creativecommons.org/licenses/by/2.0/)
![Page 44: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/44.jpg)
Microservice A Microservice B
public API public API
Principle 1: Microservices only rely on each other’s public API
![Page 45: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/45.jpg)
public API public API
Principle 1: Microservices only rely on each other’s public API(Hide Your Data)
Microservice A Microservice B
![Page 46: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/46.jpg)
public API public API
Nope!
Principle 1: Microservices only rely on each other’s public API(Hide Your Data)
Microservice A Microservice B
![Page 47: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/47.jpg)
public API public API
Principle 1: Microservices only rely on each other’s public API(Hide Your Data)
Microservice A Microservice B
![Page 48: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/48.jpg)
Principle 1: Microservices only rely on each other’s public API(Evolve API in backward-compatible way…and document!)
storeRestaurant (id, name, cuisine)
Version 1.0.0
public API
Microservice A
![Page 49: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/49.jpg)
Principle 1: Microservices only rely on each other’s public API(Evolve API in backward-compatible way…and document!)
storeRestaurant (id, name, cuisine)
storeRestaurant (id, name, cuisine)storeRestaurant (id, name, arbitrary_metadata)addReview (restaurantId, rating, comments)
Version 1.0.0
Version 1.1.0
public API
Microservice A
![Page 50: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/50.jpg)
Principle 1: Microservices only rely on each other’s public API(Evolve API in backward-compatible way…and document!)
storeRestaurant (id, name, cuisine)
storeRestaurant (id, name, cuisine)storeRestaurant (id, name, arbitrary_metadata)addReview (restaurantId, rating, comments)
storeRestaurant (id, name, arbitrary_metadata)addReview (restaurantId, rating, comments)
Version 1.0.0
Version 1.1.0
Version 2.0.0
public API
Microservice A
![Page 51: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/51.jpg)
Principle 2
Use the right tool for the job
“Tools #2” by Juan Pablo Olmo. No alterations other than cropping.https://www.flickr.com/photos/juanpol/1562101472/
Image used with permissions under Creative Commons license 2.0, Attribution Generic License (https://creativecommons.org/licenses/by/2.0/)
![Page 52: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/52.jpg)
public API public API
Principle 2: Use the right tool for the job(Embrace polyglot persistence)
DynamoDB
Microservice A Microservice B
![Page 53: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/53.jpg)
public API public API
Principle 2: Use the right tool for the job(Embrace polyglot persistence)
DynamoDB
Microservice A Microservice B
AmazonElasticsearchService
![Page 54: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/54.jpg)
public API public API
Principle 2: Use the right tool for the job(Embrace polyglot persistence)
RDSAurora
Microservice A Microservice B
AmazonElasticsearchService
![Page 55: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/55.jpg)
public API public API
Principle 2: Use the right tool for the job(Embrace polyglot programming frameworks)
RDSAurora
Microservice A Microservice B
AmazonElasticsearchService
![Page 56: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/56.jpg)
public API public API
Principle 2: Use the right tool for the job(Embrace polyglot programming frameworks)
RDSAurora
Microservice A Microservice B
AmazonElasticsearchService
![Page 57: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/57.jpg)
Let’s builda microservice!
![Page 58: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/58.jpg)
![Page 59: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/59.jpg)
Restaurant Microservice
GET /restaurants
POST /restaurants
![Page 60: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/60.jpg)
Restaurant Microservice
Approach #1
EC2
![Page 61: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/61.jpg)
Restaurant Microservice
EC2
![Page 62: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/62.jpg)
Restaurant Microservice
EC2
![Page 63: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/63.jpg)
Restaurant Microservice
EC2EC2 EC2 EC2
![Page 64: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/64.jpg)
Restaurant Microservice
EC2EC2 EC2 EC2
Elastic Load Balancer
![Page 65: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/65.jpg)
Restaurant Microservice
Approach #2
ContainersUsing ECS
![Page 66: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/66.jpg)
Restaurant Microservice
EC2EC2 EC2 EC2
Elastic Load Balancer
![Page 67: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/67.jpg)
Restaurant Microservice
EC2EC2 EC2 EC2
Elastic Load Balancer
![Page 68: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/68.jpg)
Restaurant Microservice
EC2EC2 EC2 EC2
Elastic Load Balancer
AmazonEC2 ContainerService (ECS)
to managecontainers
![Page 69: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/69.jpg)
• Prototype in less than 2 months
• Deployment time: hours minutes
• Each team can now develop itsrespective applications independently
Coursera13 million users from 190 countries1,000 courses from 119 institutions
![Page 70: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/70.jpg)
Restaurant Microservice
Approach #3
API Gateway+ Lambda
![Page 71: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/71.jpg)
DynamoDB
Restaurant Microservice
![Page 72: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/72.jpg)
DynamoDB
Lambda
Restaurant Microservice
![Page 73: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/73.jpg)
DynamoDB
Lambda
Restaurant Microservice
API Gateway
![Page 74: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/74.jpg)
AWS Lambda
lets you run code
without managing servers
![Page 75: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/75.jpg)
Upload your code(Java, JavaScript,
Python)
![Page 76: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/76.jpg)
Upload your code(Java, JavaScript,
Python)
Set up your code to trigger from other AWS
services, webservicecalls, or app activity
![Page 77: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/77.jpg)
Lambda automatically
scales
Upload your code(Java, JavaScript,
Python)
Set up your code to trigger from other AWS
services, webservicecalls, or app activity
![Page 78: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/78.jpg)
Lambda automatically
scales
Upload your code(Java, JavaScript,
Python)
Pay for only the compute time
you use(sub-second metering)
Set up your code to trigger from other AWS
services, webservicecalls, or app activity
![Page 79: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/79.jpg)
AWS API Gateway
is the easiest way to deploy microservices
![Page 80: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/80.jpg)
Create a unified API frontend for
multiplemicroservices
![Page 81: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/81.jpg)
Create a unified API frontend for
multiplemicroservices
Authenticate and authorize requests
![Page 82: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/82.jpg)
Create a unified API frontend for
multiplemicroservices
Authenticate and authorize requests
Handles DDoSprotection and API throttling
![Page 83: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/83.jpg)
Create a unified API frontend for
multiplemicroservices
…as well as monitoring,
logging, rollbacks,
client SDK generation…
Authenticate and authorize requests
Handles DDoSprotection and API throttling
![Page 84: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/84.jpg)
![Page 85: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/85.jpg)
Restaurant Microservice
![Page 86: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/86.jpg)
DynamoDB
Restaurant Microservice
![Page 87: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/87.jpg)
DynamoDB
Lambdato retrieverestaurants
Restaurant Microservice
Lambdato store
restaurants
![Page 88: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/88.jpg)
DynamoDB
Lambdato retrieverestaurants
Restaurant Microservice
API Gateway
POST GET
Lambdato store
restaurants
![Page 89: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/89.jpg)
DynamoDB
Lambdato retrieverestaurants
Restaurant Microservice
API Gateway
POST GET
Web UI
Lambdato store
restaurants
![Page 90: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/90.jpg)
![Page 91: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/91.jpg)
DynamoDB
Lambdato retrieverestaurants
Restaurant Microservice
API Gateway
POST GET
Web UI
Lambdato store
restaurants
![Page 92: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/92.jpg)
Highly Scalable• Inherently scalable
Secure• API Gateway acts as “front door”• Can add authN/authZ; or throttle API if needed• S3 bucket policies• IAM Roles for Lambda invocations
Cost-efficient• Only pay for actual microservice usage
![Page 93: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/93.jpg)
Microservice A Microservice B
public API public API
From a few…
![Page 94: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/94.jpg)
Driversmicroservices
Paymentsmicroservice Location
microservices
Orderingmicroservices
Restaurantmicroservice
…to an ecosystem
![Page 95: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/95.jpg)
Principle 3
Secure Your Services
“security” by Dave Bleasdale. No alterations other than cropping.https://www.flickr.com/photos/sidelong/3878741556/
Image used with permissions under Creative Commons license 2.0,Attribution Generic License (https://creativecommons.org/licenses/by/2.0/)
![Page 96: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/96.jpg)
Principle 3: Secure Your Services
• Defense-in-depth• Network level (e.g. VPC, Security Groups, TLS)• Server/container-level• App-level• IAM policies
• Gateway (“Front door”)
• API Throttling
• Authentication & Authorization• Client-to-service, as well as service-to-service• API Gateway: custom Lambda authorizers• IAM-based Authentication• Token-based auth (JWT tokens, OAuth 2.0)
• Secrets management• S3 bucket policies + KMS + IAM• Open-source tools (e.g. Vault, Keywhiz)
API Gateway
![Page 97: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/97.jpg)
Principle 4
Be a good citizenwithin the ecosystem
“Lamington National Park, rainforest” by Jussarian. No alterations other than cropping.https://www.flickr.com/photos/kerr_at_large/87771074/
Image used with permissions under Creative Commons license 2.0,Attribution Generic License (https://creativecommons.org/licenses/by/2.0/)
![Page 98: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/98.jpg)
Hey Sally, we need to call your microservice to fetch restaurants
details.
Sure Paul. Which APIs you need to call? Once I know
better your use cases I’ll give you permission to register
your service as a client on our service’s directory entry.
Microservice A Microservice B
public API public API
Principle 4: Be a good citizen within the ecosystem
![Page 99: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/99.jpg)
Principle 4: Be a good citizen within the ecosystem(Have clear SLAs)
RestaurantMicroservice
15 TPS100 TPS5 TPS20 TPS
Before we let you call our microservice we
need to understand your use case, expected load
(TPS) and accepted latency
![Page 100: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/100.jpg)
…and many,many others!
Distributed monitoring and tracing• “Is the service meeting its SLA?”• “Which services were involved in a request?”• “How did downstream dependencies perform?”
Shared metrics• e.g. request time, time to first byte
Distributed tracing• e.g. Zipkin, OpenTracing
User-experience metrics
Principle 4: Be a good citizen within the ecosystem(Distributed monitoring, logging and tracing)
![Page 101: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/101.jpg)
Principle 5
More than justtechnology transformation
“rowing on the river in Bedford” by Matthew Hunt. No alterations other than cropping.https://www.flickr.com/photos/mattphotos/19189529/
Image used with permissions under Creative Commons license 2.0,Attribution Generic License (https://creativecommons.org/licenses/by/2.0/)
![Page 102: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/102.jpg)
“Any organization that designs a system will inevitably produce a design whose structure is a copy of the organization’scommunication structure.”
Melvin E. Conway, 1967
Conway’s Law
![Page 103: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/103.jpg)
Decentralize governance and data management
Image from Martin Fowler’s article on microservices, athttp://martinfowler.com/articles/microservices.html
No alterations other than cropping.Permission to reproduce: http://martinfowler.com/faq.html
![Page 104: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/104.jpg)
Decentralize governance and data management
Image from Martin Fowler’s article on microservices, athttp://martinfowler.com/articles/microservices.html
No alterations other than cropping.Permission to reproduce: http://martinfowler.com/faq.html
![Page 105: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/105.jpg)
Silo’d functional teams silo’d application architectures
Image from Martin Fowler’s article on microservices, athttp://martinfowler.com/articles/microservices.html
No alterations other than cropping.Permission to reproduce: http://martinfowler.com/faq.html
![Page 106: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/106.jpg)
Silo’d functional teams silo’d application architectures
Image from Martin Fowler’s article on microservices, athttp://martinfowler.com/articles/microservices.html
No alterations other than cropping.Permission to reproduce: http://martinfowler.com/faq.html
![Page 107: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/107.jpg)
Cross functional teams self-contained services
Image from Martin Fowler’s article on microservices, athttp://martinfowler.com/articles/microservices.html
No alterations other than cropping.Permission to reproduce: http://martinfowler.com/faq.html
![Page 108: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/108.jpg)
Cross functional teams self-contained services
Image from Martin Fowler’s article on microservices, athttp://martinfowler.com/articles/microservices.html
No alterations other than cropping.Permission to reproduce: http://martinfowler.com/faq.html
![Page 109: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/109.jpg)
Non-pizza image from Martin Fowler’s article on microservices, athttp://martinfowler.com/articles/microservices.html
No alterations other than cropping.Permission to reproduce: http://martinfowler.com/faq.html
Cross functional teams self-contained services(“Two-pizza teams” at Amazon)
![Page 110: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/110.jpg)
Full ownership
Full accountability
Aligned incentives
“DevOps”
Non-pizza image from Martin Fowler’s article on microservices, athttp://martinfowler.com/articles/microservices.html
No alterations other than cropping.Permission to reproduce: http://martinfowler.com/faq.html
Cross functional teams self-contained services(“Two-pizza teams” at Amazon)
![Page 111: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/111.jpg)
Principle 6
Automate Everything
“Robot” by Robin Zebrowski. No alterations other than cropping.https://www.flickr.com/photos/firepile/438134733/
Image used with permissions under Creative Commons license 2.0,Attribution Generic License (https://creativecommons.org/licenses/by/2.0/)
![Page 112: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/112.jpg)
releasetestbuild
Focused agile teams
2-pizza team delivery pipeline service
![Page 113: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/113.jpg)
releasetestbuild
releasetestbuild
Focused agile teams
2-pizza team delivery pipeline service
![Page 114: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/114.jpg)
releasetestbuild
releasetestbuild
releasetestbuild
Focused agile teams
2-pizza team delivery pipeline service
![Page 115: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/115.jpg)
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
Focused agile teams
2-pizza team delivery pipeline service
![Page 116: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/116.jpg)
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
Focused agile teams
2-pizza team delivery pipeline service
![Page 117: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/117.jpg)
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
Focused agile teams
2-pizza team delivery pipeline service
![Page 118: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/118.jpg)
Principle 6: Automate everything
AWS
CodeCommit
AWS
CodePipeline
AWS
CodeDeploy
EC2 ELBAuto
ScalingLambdaECS
DynamoDBRDS ElastiCache SQS SWF
SES SNS
API GatewayCloudWatch Cloud Trail
KinesisElasticBeanstalk
![Page 119: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/119.jpg)
It’s a journey…
Expect challenges along the way…
• Understanding of business domains
• Coordinating txns across multiple services
• Eventual Consistency
• Service discovery
• Lots of moving parts requires increased coordination
• Complexity of testing / deploying / operating a distributed system
• Cultural transformation
![Page 120: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/120.jpg)
Principles of Microservices
1. Rely only on the public API Hide your data Document your APIs Define a versioning strategy
2. Use the right tool for the job Polygot persistence (data layer) Polyglot frameworks (app layer)
3. Secure your services Defense-in-depth Authentication/authorization
6. Automate everything Adopt DevOps
4. Be a good citizen within the ecosystem Have SLAs Distributed monitoring, logging, tracing
5. More than just technology transformation Embrace organizational change Favor small focused dev teams
![Page 121: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/121.jpg)
Benefits of microservices
Rapid Build/Test/Release Cycles
Clear ownership andaccountability
Easier to scaleeach individual microservice
New releasestake minutes
Short time to addnew features
Easier to maintain and evolve
Increase innovation
Delighted customers
Increased agility
![Page 122: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/122.jpg)
Benefits of microservices
Rapid Build/Test/Release Cycles
Clear ownership andaccountability
Easier to scaleeach individual microservice
New releasestake minutes
Short time to addnew features
Easier to maintain and evolve system
Faster innovation
Delighted customers
Increased agility
![Page 123: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/123.jpg)
Benefits of microservices
Rapid Build/Test/Release Cycles
Clear ownership andaccountability
Easier to scaleeach individual microservice
New releasestake minutes
Short time to addnew features
Easier to maintain and evolve system
Faster innovation
Delighted customers
Increased agility
![Page 124: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/124.jpg)
Additional AWS resources:• Zombie Microservices Workshop:
https://github.com/awslabs/aws-lambda-zombie-workshop• Serverless Webapp - Reference Architecture:
https://github.com/awslabs/lambda-refarch-webapp• Microservices with ECS:
https://aws.amazon.com/blogs/compute/using-amazon-api-gateway-with-microservices-deployed-on-amazon-ecs/
• Serverless Service Discovery:https://aws.amazon.com/blogs/developer/serverless-service-discovery-part-1-get-started/
• ECS Service Discovery:https://aws.amazon.com/blogs/compute/service-discovery-an-amazon-ecs-reference-architecture/
• Microservices without the Servershttps://aws.amazon.com/blogs/compute/microservices-without-the-servers
Popular open-source tools:• Serverless – http://serverless.com• Apex - http://apex.run/
https://aws.amazon.com/devops/
Additional resources
![Page 125: Enterprise summit – architecting microservices on aws final v2](https://reader034.fdocuments.us/reader034/viewer/2022051503/5873bb831a28abbc788b567f/html5/thumbnails/125.jpg)
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Pierre Steckmeyer
Thank you!