SlideShare uma empresa Scribd logo
1 de 51
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Breaking Down the Monowhat?
Lessons from Amazon’s journey
Durga Prasad Kakaraparthi
Solutions Architecture
Amazon Internet Services
https://farm3.static.flickr.com/2874/13827796634_3b70a2f3ba_b.jpg
Source: https://commons.wikimedia.org/wiki/File:Buddha_statue_in_hussain_sagar.jpg
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
The Monolith
“…a single-tiered software application in which the user
interface and data access code are combined into a single
program from a single platform. A monolithic application is
self-contained, and independent from other computing
applications.”
- Wikipedia
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Okay, let’s start from the beginning…
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
First let’s discuss Software Monoliths,
A traditional approach to software design.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Break warehouse processes into few big blocks
INBOUND
OUTBOUND
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Warehouse Process Blocks
INBOUND
• Track products traveling to the warehouse
• Receive products
• Prepare products to be stored
• Store products
• Handle inbound defects
• …
OUTBOUND
• Pick customer orders
• Prepare shipments
• Track shipments
• Handle outbound defects
• …
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Set up Software Teams
INBOUND
• Track products traveling to the warehouse
• Receive products
• Prepare products to be stored
• Store products in the warehouse
• Handle inbound defects
• …
OUTBOUND
• Pick customer orders
• Prepare shipments
• Track shipments
• Report defects
• Handle outbound defects
• …
Inbound Software Team Outbound Software Team
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Software Teams & Dependencies
Inbound Software Team
50+ developers
Shared libraries
Outbound Software Team
50+ developers
Inbound Software Monolith Outbound Software Monolith
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
High Software Coupling!
Inbound Software Outbound SoftwareShared libraries
• Teams depend on each other’s libraries + other common libraries
• “We’re blocked as we cannot build our software until you hand us the latest version of your library”
• Teams depend on each other’s database schema
• “We’re afraid the changes we’re making to our database schema will break your code”
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Long Build/Test/Release Cycles
Inbound Software Team
Outbound Software Team
Build Test Release
Build Test Release
• “I’m constantly having to resolve commit conflicts and merges. This is taking too much of my time!”
• “Our last build attempt failed after 4 hours. We don’t know who broke the build as 30 commits were made”
Massive builds
Long time to
run tests
Ever growing
release binaries
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Problems With Monolith Software
System operation is a nightmare
(module X is failing, who’s the owner?)
Lack of agility
(very long time to add new features)
Lack of innovation
(team always busy fixing inefficiencies)
Long Build/Test/Release Cycles
(who broke the build?)
Software architecture is hard to maintain and evolveScalability is compromised
(vertical scalability)
Slow development pace
(developers busy fixing issues)
Customers frustrated
(new releases take months)
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Use Micro-services!
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
The Anatomy of a Micro-service
Micro-service = Service-oriented architecture + “small” public API
Micro-service
Software Modules
(application, libraries, etc)
Data Store
(eg, DynamoDB, RDS,
Cache, S3)
Public API
addProductDetails(ProductId id, ProductDetails details)
removeProductDetails(ProductId id)
getProductDetails(ProductId id) : ProductDetails
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Back to the Amazon Warehouse
A micro-services approach will require us to break down
processes way further…
INBOUND
• Track products traveling to the warehouse
• Receive products
• Prepare products to be stored
• Store products
• Handle inbound defects
• …
OUTBOUND
• Pick customer orders
• Prepare shipments
• Track shipments
• Report defects
• Handle outbound defects
• …
Handle outbound defectsTrack products traveling to the warehouse
Receive products Prepare products to be stored
Store products
Handle inbound defects
Pick customer orders
Prepare shipments
Report defectsTrack shipments
Smaller Teams = Finer-grained Software = Micro-services
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Micro-services Can Be Built By Small Development
Teams
2-pizza Amazon Development Teams
“Pick customer orders” Team
2-pizza team
(typically 4-8 people)
Micro-service
Warehouse employee using
micro-service via web interface
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Micro-services Only Rely on Each Other’s Public API
Micro-service Micro-service
public API public API
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Web of Micro-services
Store products in the warehouse
Pick products for customers Report defects
Track shipments
Product Details
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS is a great platform for micro-services…
… and that’s where Amazon micro-services reside
Important Considerations about
Micro-services from Amazon’s Experience
Principle 1
Micro-services 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/)
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Micro-services Considerations
Hide your data
Hey Sally, can
we read data
from your micro-
service’s
database?
Sorry Paul, in a micro-services
architecture you should only
rely on our exposed public
APIs. We might redesign our
data model in the future and
we don’t want to break your
code.
Nope!
Yep!
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Micro-services Considerations
Evolve Public API in a Backward-compatible Fashion
storeProduct (ProductId id, LocationId id )
storeProduct (ProductId id, LocationId id )
storePallet(PalletId id, LocationId id)
storeProduct (ProductId id, LocationId id )
storePallet(PalletId id, LocationId id)
storeProduct(ProductId id, LocationId id, int
numberOfUnits)
storeProduct (ProductId id, LocationId id )
storePallet(PalletId id, LocationId id)
storeProduct(ProductId id, LocationId id, int numberOfUnits)
Version 1.0
Version 1.1
Version 1.2
Version 1.3
Public API created and released
A new API to store pallets is released
A new API to store products is released
Old API still available
Old API to store products is deprecated
so old clients can still call it but
no new clients are accepted for that API
The public API is a contract between your micro-services and its clients and once
released will have to be maintained for as long as clients rely on it.
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/)
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Principle 2: Use the right tool for the job
(Embrace polyglot persistence)
Micro-service A Micro-service B
public API public API
DynamoDB
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Principle 2: Use the right tool for the job
(Embrace polyglot persistence)
Micro-service A Micro-service B
public API public API
DynamoDB
Amazon
Elasticsearch
Service
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Principle 2: Use the right tool for the job
(Embrace polyglot persistence)
Micro-service A Micro-service B
public API public API
Amazon
Elasticsearch
Service
RDS
Aurora
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Principle 2: Use the right tool for the job
(Embrace polyglot programming frameworks)
Micro-service A Micro-service B
public API public API
Amazon
Elasticsearch
Service
RDS
Aurora
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Principle 2: Use the right tool for the job
(Embrace polyglot programming frameworks)
Micro-service A Micro-service B
public API public API
Amazon
Elasticsearch
Service
RDS
Aurora
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/)
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Micro-services Considerations
Secure Your Service: authentication, authorization
• Authentication
(identify of the client is verified)
•
Authorization
(client is given permission for a limited scope of actions)
Eg, AAA protocols
Principle 4
Be a good citizen
within 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,
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Micro-services Considerations
Scale the service as needed
Product Details
15 TPS
100 TPS
5 TPS
20 TPS
Before we let you call
our micro-service we
need to understand
your use case,
expected load (TPS)
and accepted latency
Principle 5
More than just
technology
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/)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Two-pizza teams
Full ownership
Full accountability
Aligned incentives
DevOps
“You build it, you run it”
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/)
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Principle 6: Automate everything
AWS CodeCommit AWS
CodePipeline
AWS CodeDeploy
ELB
Auto
ScalingEC2 Lambda
ECS
DynamoDBRDS ElastiCache
SQS SWF SESSNS
API GatewayCloudWatch Cloud Trail
Kinesis
Elastic
Beanstalk
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
releasetestbuild
Focused agile teams
2-pizza team delivery pipeline service
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
releasetestbuild
releasetestbuild
Focused agile teams
2-pizza team delivery pipeline service2-pizza team delivery pipeline service2-pizza team delivery pipeline
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
releasetestbuild
releasetestbuild
Focused agile teams
2-pizza team delivery pipeline service
releasetestbuild
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
releasetestbuild
releasetestbuild
Focused agile teams
2-pizza team delivery pipeline service
releasetestbuild
releasetestbuild
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
releasetestbuild
releasetestbuild
Focused agile teams
2-pizza team delivery pipeline service
releasetestbuild
releasetestbuild
releasetestbuild
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
releasetestbuild
releasetestbuild
Focused agile teams
2-pizza team delivery pipeline service
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Benefits of Micro-services for Amazon
System operation is simple
(developers can be on-call )
Agility
(new features added quickly)
Innovation as its best
(team has time to think big)
Short Build/Test/Release Cycles
(fix problems soon)
Software architecture is easier to maintain and evolve
Scalable Software
(horizontal scalability)
Fast development pace
(developers fully focused on writing code) Customers Excited
(new software releases every day!)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
> 60 million deployments a year*
× Microservice architecture
× Continuous delivery
× Multiple environments
*2016
number
Thousands of teams
*2016 number
Benefits of Micro-services
for Amazon
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Getting Started Resource Center
https://aws.amazon.com/getting-started/projects/break-monolith-app-microservices-ecs-docker-ec2/
Microservices on AWS Whitepaper:
https://d1.awsstatic.com/whitepapers/microservices-on-aws.pdf
Thank you!

Mais conteúdo relacionado

Mais procurados

從業人員指南-如何像技術專家一樣守護您的雲端安全
從業人員指南-如何像技術專家一樣守護您的雲端安全從業人員指南-如何像技術專家一樣守護您的雲端安全
從業人員指南-如何像技術專家一樣守護您的雲端安全Amazon Web Services
 
Budget management with Cloud Economics | AWS Summit Tel Aviv 2019
Budget management with Cloud Economics | AWS Summit Tel Aviv 2019Budget management with Cloud Economics | AWS Summit Tel Aviv 2019
Budget management with Cloud Economics | AWS Summit Tel Aviv 2019Amazon Web Services
 
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 BarcelonaAWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 BarcelonaAmazon Web Services
 
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019AWS Summits
 
深探-IaC-(Infrastructure as Code-基礎設施即程式碼-)-在-AWS-上的應用
深探-IaC-(Infrastructure as Code-基礎設施即程式碼-)-在-AWS-上的應用深探-IaC-(Infrastructure as Code-基礎設施即程式碼-)-在-AWS-上的應用
深探-IaC-(Infrastructure as Code-基礎設施即程式碼-)-在-AWS-上的應用Amazon Web Services
 
AWS Serverless Webinar- Unleash Innovation & Build Modern Application
AWS Serverless Webinar- Unleash Innovation & Build Modern ApplicationAWS Serverless Webinar- Unleash Innovation & Build Modern Application
AWS Serverless Webinar- Unleash Innovation & Build Modern ApplicationAmazon Web Services
 
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019AWS Summits
 
Architecting security and governance across your AWS environment
Architecting security and governance across your AWS environmentArchitecting security and governance across your AWS environment
Architecting security and governance across your AWS environmentAmazon Web Services
 
Preparing Your Data for Cloud Analytics & AI/ML
Preparing Your Data for Cloud Analytics & AI/MLPreparing Your Data for Cloud Analytics & AI/ML
Preparing Your Data for Cloud Analytics & AI/MLAmazon Web Services
 
Paving the Way for the Future of the Automotive Industry
 Paving the Way for the Future of the Automotive Industry Paving the Way for the Future of the Automotive Industry
Paving the Way for the Future of the Automotive IndustryAmazon Web Services
 
AWS 無伺服器開發工作坊_Matt.pdf
AWS 無伺服器開發工作坊_Matt.pdfAWS 無伺服器開發工作坊_Matt.pdf
AWS 無伺服器開發工作坊_Matt.pdfAmazon Web Services
 
Optimize your Machine Learning workloads | AWS Summit Tel Aviv 2019
Optimize your Machine Learning workloads  | AWS Summit Tel Aviv 2019Optimize your Machine Learning workloads  | AWS Summit Tel Aviv 2019
Optimize your Machine Learning workloads | AWS Summit Tel Aviv 2019AWS Summits
 
Accelerare l’utilizzo del Machine Learning con le soluzioni ML pronte per l’u...
Accelerare l’utilizzo del Machine Learning con le soluzioni ML pronte per l’u...Accelerare l’utilizzo del Machine Learning con le soluzioni ML pronte per l’u...
Accelerare l’utilizzo del Machine Learning con le soluzioni ML pronte per l’u...Amazon Web Services
 
No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
 No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ... No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...AWS Summits
 
利用 AWS Step Functions 建構穩定的資料處理流程.pdf
利用 AWS Step Functions 建構穩定的資料處理流程.pdf利用 AWS Step Functions 建構穩定的資料處理流程.pdf
利用 AWS Step Functions 建構穩定的資料處理流程.pdfAmazon Web Services
 
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019AWS Summits
 
Securing your Amazon SageMaker model development in a highly regulated enviro...
Securing your Amazon SageMaker model development in a highly regulated enviro...Securing your Amazon SageMaker model development in a highly regulated enviro...
Securing your Amazon SageMaker model development in a highly regulated enviro...Amazon Web Services
 
Architetture per l'analisi di flussi di dati in tempo reale
Architetture per l'analisi di flussi di dati in tempo realeArchitetture per l'analisi di flussi di dati in tempo reale
Architetture per l'analisi di flussi di dati in tempo realeAmazon Web Services
 

Mais procurados (19)

從業人員指南-如何像技術專家一樣守護您的雲端安全
從業人員指南-如何像技術專家一樣守護您的雲端安全從業人員指南-如何像技術專家一樣守護您的雲端安全
從業人員指南-如何像技術專家一樣守護您的雲端安全
 
Budget management with Cloud Economics | AWS Summit Tel Aviv 2019
Budget management with Cloud Economics | AWS Summit Tel Aviv 2019Budget management with Cloud Economics | AWS Summit Tel Aviv 2019
Budget management with Cloud Economics | AWS Summit Tel Aviv 2019
 
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 BarcelonaAWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
 
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019
 
深探-IaC-(Infrastructure as Code-基礎設施即程式碼-)-在-AWS-上的應用
深探-IaC-(Infrastructure as Code-基礎設施即程式碼-)-在-AWS-上的應用深探-IaC-(Infrastructure as Code-基礎設施即程式碼-)-在-AWS-上的應用
深探-IaC-(Infrastructure as Code-基礎設施即程式碼-)-在-AWS-上的應用
 
AWS Serverless Webinar- Unleash Innovation & Build Modern Application
AWS Serverless Webinar- Unleash Innovation & Build Modern ApplicationAWS Serverless Webinar- Unleash Innovation & Build Modern Application
AWS Serverless Webinar- Unleash Innovation & Build Modern Application
 
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019
 
Architecting security and governance across your AWS environment
Architecting security and governance across your AWS environmentArchitecting security and governance across your AWS environment
Architecting security and governance across your AWS environment
 
Preparing Your Data for Cloud Analytics & AI/ML
Preparing Your Data for Cloud Analytics & AI/MLPreparing Your Data for Cloud Analytics & AI/ML
Preparing Your Data for Cloud Analytics & AI/ML
 
Paving the Way for the Future of the Automotive Industry
 Paving the Way for the Future of the Automotive Industry Paving the Way for the Future of the Automotive Industry
Paving the Way for the Future of the Automotive Industry
 
AWS 無伺服器開發工作坊_Matt.pdf
AWS 無伺服器開發工作坊_Matt.pdfAWS 無伺服器開發工作坊_Matt.pdf
AWS 無伺服器開發工作坊_Matt.pdf
 
Optimize your Machine Learning workloads | AWS Summit Tel Aviv 2019
Optimize your Machine Learning workloads  | AWS Summit Tel Aviv 2019Optimize your Machine Learning workloads  | AWS Summit Tel Aviv 2019
Optimize your Machine Learning workloads | AWS Summit Tel Aviv 2019
 
Accelerare l’utilizzo del Machine Learning con le soluzioni ML pronte per l’u...
Accelerare l’utilizzo del Machine Learning con le soluzioni ML pronte per l’u...Accelerare l’utilizzo del Machine Learning con le soluzioni ML pronte per l’u...
Accelerare l’utilizzo del Machine Learning con le soluzioni ML pronte per l’u...
 
No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
 No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ... No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
 
企業雲端化之旅
企業雲端化之旅企業雲端化之旅
企業雲端化之旅
 
利用 AWS Step Functions 建構穩定的資料處理流程.pdf
利用 AWS Step Functions 建構穩定的資料處理流程.pdf利用 AWS Step Functions 建構穩定的資料處理流程.pdf
利用 AWS Step Functions 建構穩定的資料處理流程.pdf
 
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
 
Securing your Amazon SageMaker model development in a highly regulated enviro...
Securing your Amazon SageMaker model development in a highly regulated enviro...Securing your Amazon SageMaker model development in a highly regulated enviro...
Securing your Amazon SageMaker model development in a highly regulated enviro...
 
Architetture per l'analisi di flussi di dati in tempo reale
Architetture per l'analisi di flussi di dati in tempo realeArchitetture per l'analisi di flussi di dati in tempo reale
Architetture per l'analisi di flussi di dati in tempo reale
 

Semelhante a Breaking down the Monowhat

AWS STARTUP DAY 2018 I If, how and when to adopt microservices
AWS STARTUP DAY 2018 I If, how and when to adopt microservicesAWS STARTUP DAY 2018 I If, how and when to adopt microservices
AWS STARTUP DAY 2018 I If, how and when to adopt microservicesAWS Germany
 
From Monolithic to Microservices (AWS & Digital Goodie)
From Monolithic to Microservices (AWS & Digital Goodie)From Monolithic to Microservices (AWS & Digital Goodie)
From Monolithic to Microservices (AWS & Digital Goodie)Amazon Web Services
 
Microservices and Serverless for MegaStartups
Microservices and Serverless for MegaStartupsMicroservices and Serverless for MegaStartups
Microservices and Serverless for MegaStartupsBoaz Ziniman
 
From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices Amazon Web Services
 
JFokus 2020 - How to migrate an application to serverless
JFokus 2020 - How to migrate an application to serverlessJFokus 2020 - How to migrate an application to serverless
JFokus 2020 - How to migrate an application to serverlessMarcia Villalba
 
Building Modern Applications on AWS
Building Modern Applications on AWSBuilding Modern Applications on AWS
Building Modern Applications on AWSInjae Kwak
 
2020-04-02 DevConf - How to migrate an existing application to serverless
2020-04-02 DevConf - How to migrate an existing application to serverless2020-04-02 DevConf - How to migrate an existing application to serverless
2020-04-02 DevConf - How to migrate an existing application to serverlessMarcia Villalba
 
Identity and access control for custom enterprise applications - SDD412 - AWS...
Identity and access control for custom enterprise applications - SDD412 - AWS...Identity and access control for custom enterprise applications - SDD412 - AWS...
Identity and access control for custom enterprise applications - SDD412 - AWS...Amazon Web Services
 
Modern Applications Development on AWS
Modern Applications Development on AWSModern Applications Development on AWS
Modern Applications Development on AWSBoaz Ziniman
 
Mythical Mysfits - Build & collaborate on a modern web application on AWS - M...
Mythical Mysfits - Build & collaborate on a modern web application on AWS - M...Mythical Mysfits - Build & collaborate on a modern web application on AWS - M...
Mythical Mysfits - Build & collaborate on a modern web application on AWS - M...Amazon Web Services
 
Mythical Mysfits: Build & collaborate on a modern web application on AWS - MA...
Mythical Mysfits: Build & collaborate on a modern web application on AWS - MA...Mythical Mysfits: Build & collaborate on a modern web application on AWS - MA...
Mythical Mysfits: Build & collaborate on a modern web application on AWS - MA...Amazon Web Services
 
Mythical Mysfits: Monolith to microservices using Docker and Fargate - MAD309...
Mythical Mysfits: Monolith to microservices using Docker and Fargate - MAD309...Mythical Mysfits: Monolith to microservices using Docker and Fargate - MAD309...
Mythical Mysfits: Monolith to microservices using Docker and Fargate - MAD309...Amazon Web Services
 
DevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon WayDevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon WayAmazon Web Services
 
AWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsAWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsCobus Bernard
 
AWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon Way
AWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon WayAWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon Way
AWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon WayAmazon Web Services
 
Introduction to Serverless Computing - OOP Munich
 Introduction to Serverless Computing - OOP Munich Introduction to Serverless Computing - OOP Munich
Introduction to Serverless Computing - OOP MunichBoaz Ziniman
 
CI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day IsraelCI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day IsraelAmazon Web Services
 

Semelhante a Breaking down the Monowhat (20)

AWS STARTUP DAY 2018 I If, how and when to adopt microservices
AWS STARTUP DAY 2018 I If, how and when to adopt microservicesAWS STARTUP DAY 2018 I If, how and when to adopt microservices
AWS STARTUP DAY 2018 I If, how and when to adopt microservices
 
From Monolithic to Microservices (AWS & Digital Goodie)
From Monolithic to Microservices (AWS & Digital Goodie)From Monolithic to Microservices (AWS & Digital Goodie)
From Monolithic to Microservices (AWS & Digital Goodie)
 
Microservices and Serverless for MegaStartups
Microservices and Serverless for MegaStartupsMicroservices and Serverless for MegaStartups
Microservices and Serverless for MegaStartups
 
From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices
 
Containers on AWS
Containers on AWSContainers on AWS
Containers on AWS
 
JFokus 2020 - How to migrate an application to serverless
JFokus 2020 - How to migrate an application to serverlessJFokus 2020 - How to migrate an application to serverless
JFokus 2020 - How to migrate an application to serverless
 
Building Modern Applications on AWS
Building Modern Applications on AWSBuilding Modern Applications on AWS
Building Modern Applications on AWS
 
2020-04-02 DevConf - How to migrate an existing application to serverless
2020-04-02 DevConf - How to migrate an existing application to serverless2020-04-02 DevConf - How to migrate an existing application to serverless
2020-04-02 DevConf - How to migrate an existing application to serverless
 
Identity and access control for custom enterprise applications - SDD412 - AWS...
Identity and access control for custom enterprise applications - SDD412 - AWS...Identity and access control for custom enterprise applications - SDD412 - AWS...
Identity and access control for custom enterprise applications - SDD412 - AWS...
 
Modern Applications Development on AWS
Modern Applications Development on AWSModern Applications Development on AWS
Modern Applications Development on AWS
 
Mythical Mysfits - Build & collaborate on a modern web application on AWS - M...
Mythical Mysfits - Build & collaborate on a modern web application on AWS - M...Mythical Mysfits - Build & collaborate on a modern web application on AWS - M...
Mythical Mysfits - Build & collaborate on a modern web application on AWS - M...
 
Mythical Mysfits: Build & collaborate on a modern web application on AWS - MA...
Mythical Mysfits: Build & collaborate on a modern web application on AWS - MA...Mythical Mysfits: Build & collaborate on a modern web application on AWS - MA...
Mythical Mysfits: Build & collaborate on a modern web application on AWS - MA...
 
Mythical Mysfits: Monolith to microservices using Docker and Fargate - MAD309...
Mythical Mysfits: Monolith to microservices using Docker and Fargate - MAD309...Mythical Mysfits: Monolith to microservices using Docker and Fargate - MAD309...
Mythical Mysfits: Monolith to microservices using Docker and Fargate - MAD309...
 
DevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon WayDevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon Way
 
DevOps: The Amazon Story
DevOps: The Amazon StoryDevOps: The Amazon Story
DevOps: The Amazon Story
 
Moving to DevOps the Amazon Way
Moving to DevOps the Amazon WayMoving to DevOps the Amazon Way
Moving to DevOps the Amazon Way
 
AWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsAWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applications
 
AWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon Way
AWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon WayAWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon Way
AWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon Way
 
Introduction to Serverless Computing - OOP Munich
 Introduction to Serverless Computing - OOP Munich Introduction to Serverless Computing - OOP Munich
Introduction to Serverless Computing - OOP Munich
 
CI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day IsraelCI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day Israel
 

Mais de Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Mais de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Breaking down the Monowhat

  • 1.
  • 2. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Breaking Down the Monowhat? Lessons from Amazon’s journey Durga Prasad Kakaraparthi Solutions Architecture Amazon Internet Services
  • 4. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. The Monolith “…a single-tiered software application in which the user interface and data access code are combined into a single program from a single platform. A monolithic application is self-contained, and independent from other computing applications.” - Wikipedia
  • 5. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 6. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 7.
  • 8. Okay, let’s start from the beginning…
  • 9. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. First let’s discuss Software Monoliths, A traditional approach to software design.
  • 10. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Break warehouse processes into few big blocks INBOUND OUTBOUND
  • 11. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Warehouse Process Blocks INBOUND • Track products traveling to the warehouse • Receive products • Prepare products to be stored • Store products • Handle inbound defects • … OUTBOUND • Pick customer orders • Prepare shipments • Track shipments • Handle outbound defects • …
  • 12. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Set up Software Teams INBOUND • Track products traveling to the warehouse • Receive products • Prepare products to be stored • Store products in the warehouse • Handle inbound defects • … OUTBOUND • Pick customer orders • Prepare shipments • Track shipments • Report defects • Handle outbound defects • … Inbound Software Team Outbound Software Team
  • 13. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Software Teams & Dependencies Inbound Software Team 50+ developers Shared libraries Outbound Software Team 50+ developers Inbound Software Monolith Outbound Software Monolith
  • 14. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. High Software Coupling! Inbound Software Outbound SoftwareShared libraries • Teams depend on each other’s libraries + other common libraries • “We’re blocked as we cannot build our software until you hand us the latest version of your library” • Teams depend on each other’s database schema • “We’re afraid the changes we’re making to our database schema will break your code”
  • 15. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Long Build/Test/Release Cycles Inbound Software Team Outbound Software Team Build Test Release Build Test Release • “I’m constantly having to resolve commit conflicts and merges. This is taking too much of my time!” • “Our last build attempt failed after 4 hours. We don’t know who broke the build as 30 commits were made” Massive builds Long time to run tests Ever growing release binaries
  • 16. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Problems With Monolith Software System operation is a nightmare (module X is failing, who’s the owner?) Lack of agility (very long time to add new features) Lack of innovation (team always busy fixing inefficiencies) Long Build/Test/Release Cycles (who broke the build?) Software architecture is hard to maintain and evolveScalability is compromised (vertical scalability) Slow development pace (developers busy fixing issues) Customers frustrated (new releases take months)
  • 17. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Use Micro-services!
  • 18. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. The Anatomy of a Micro-service Micro-service = Service-oriented architecture + “small” public API Micro-service Software Modules (application, libraries, etc) Data Store (eg, DynamoDB, RDS, Cache, S3) Public API addProductDetails(ProductId id, ProductDetails details) removeProductDetails(ProductId id) getProductDetails(ProductId id) : ProductDetails
  • 19. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Back to the Amazon Warehouse A micro-services approach will require us to break down processes way further… INBOUND • Track products traveling to the warehouse • Receive products • Prepare products to be stored • Store products • Handle inbound defects • … OUTBOUND • Pick customer orders • Prepare shipments • Track shipments • Report defects • Handle outbound defects • … Handle outbound defectsTrack products traveling to the warehouse Receive products Prepare products to be stored Store products Handle inbound defects Pick customer orders Prepare shipments Report defectsTrack shipments Smaller Teams = Finer-grained Software = Micro-services
  • 20. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Micro-services Can Be Built By Small Development Teams 2-pizza Amazon Development Teams “Pick customer orders” Team 2-pizza team (typically 4-8 people) Micro-service Warehouse employee using micro-service via web interface
  • 21. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Micro-services Only Rely on Each Other’s Public API Micro-service Micro-service public API public API
  • 22. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Web of Micro-services Store products in the warehouse Pick products for customers Report defects Track shipments Product Details
  • 23. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS is a great platform for micro-services… … and that’s where Amazon micro-services reside
  • 24. Important Considerations about Micro-services from Amazon’s Experience
  • 25. Principle 1 Micro-services 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/)
  • 26. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Micro-services Considerations Hide your data Hey Sally, can we read data from your micro- service’s database? Sorry Paul, in a micro-services architecture you should only rely on our exposed public APIs. We might redesign our data model in the future and we don’t want to break your code. Nope! Yep!
  • 27. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Micro-services Considerations Evolve Public API in a Backward-compatible Fashion storeProduct (ProductId id, LocationId id ) storeProduct (ProductId id, LocationId id ) storePallet(PalletId id, LocationId id) storeProduct (ProductId id, LocationId id ) storePallet(PalletId id, LocationId id) storeProduct(ProductId id, LocationId id, int numberOfUnits) storeProduct (ProductId id, LocationId id ) storePallet(PalletId id, LocationId id) storeProduct(ProductId id, LocationId id, int numberOfUnits) Version 1.0 Version 1.1 Version 1.2 Version 1.3 Public API created and released A new API to store pallets is released A new API to store products is released Old API still available Old API to store products is deprecated so old clients can still call it but no new clients are accepted for that API The public API is a contract between your micro-services and its clients and once released will have to be maintained for as long as clients rely on it.
  • 28. 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/)
  • 29. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Principle 2: Use the right tool for the job (Embrace polyglot persistence) Micro-service A Micro-service B public API public API DynamoDB
  • 30. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Principle 2: Use the right tool for the job (Embrace polyglot persistence) Micro-service A Micro-service B public API public API DynamoDB Amazon Elasticsearch Service
  • 31. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Principle 2: Use the right tool for the job (Embrace polyglot persistence) Micro-service A Micro-service B public API public API Amazon Elasticsearch Service RDS Aurora
  • 32. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Principle 2: Use the right tool for the job (Embrace polyglot programming frameworks) Micro-service A Micro-service B public API public API Amazon Elasticsearch Service RDS Aurora
  • 33. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Principle 2: Use the right tool for the job (Embrace polyglot programming frameworks) Micro-service A Micro-service B public API public API Amazon Elasticsearch Service RDS Aurora
  • 34. 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/)
  • 35. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Micro-services Considerations Secure Your Service: authentication, authorization • Authentication (identify of the client is verified) • Authorization (client is given permission for a limited scope of actions) Eg, AAA protocols
  • 36. Principle 4 Be a good citizen within 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,
  • 37. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Micro-services Considerations Scale the service as needed Product Details 15 TPS 100 TPS 5 TPS 20 TPS Before we let you call our micro-service we need to understand your use case, expected load (TPS) and accepted latency
  • 38. Principle 5 More than just technology 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/)
  • 39. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Two-pizza teams Full ownership Full accountability Aligned incentives DevOps “You build it, you run it”
  • 40. 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/)
  • 41. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Principle 6: Automate everything AWS CodeCommit AWS CodePipeline AWS CodeDeploy ELB Auto ScalingEC2 Lambda ECS DynamoDBRDS ElastiCache SQS SWF SESSNS API GatewayCloudWatch Cloud Trail Kinesis Elastic Beanstalk
  • 42. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. releasetestbuild Focused agile teams 2-pizza team delivery pipeline service
  • 43. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. releasetestbuild releasetestbuild Focused agile teams 2-pizza team delivery pipeline service2-pizza team delivery pipeline service2-pizza team delivery pipeline
  • 44. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. releasetestbuild releasetestbuild Focused agile teams 2-pizza team delivery pipeline service releasetestbuild
  • 45. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. releasetestbuild releasetestbuild Focused agile teams 2-pizza team delivery pipeline service releasetestbuild releasetestbuild
  • 46. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. releasetestbuild releasetestbuild Focused agile teams 2-pizza team delivery pipeline service releasetestbuild releasetestbuild releasetestbuild
  • 47. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. releasetestbuild releasetestbuild Focused agile teams 2-pizza team delivery pipeline service releasetestbuild releasetestbuild releasetestbuild releasetestbuild
  • 48. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Benefits of Micro-services for Amazon System operation is simple (developers can be on-call ) Agility (new features added quickly) Innovation as its best (team has time to think big) Short Build/Test/Release Cycles (fix problems soon) Software architecture is easier to maintain and evolve Scalable Software (horizontal scalability) Fast development pace (developers fully focused on writing code) Customers Excited (new software releases every day!)
  • 49. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. > 60 million deployments a year* × Microservice architecture × Continuous delivery × Multiple environments *2016 number Thousands of teams *2016 number Benefits of Micro-services for Amazon
  • 50. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Getting Started Resource Center https://aws.amazon.com/getting-started/projects/break-monolith-app-microservices-ecs-docker-ec2/ Microservices on AWS Whitepaper: https://d1.awsstatic.com/whitepapers/microservices-on-aws.pdf