SlideShare a Scribd company logo
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
2 7 & 2 8 O c t o b e r 2 0 2 1
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jason Umiker
Sr. Specialist Solutions Architect - Containers
Amazon Web Services
Breaking down the monolith with containers
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
• Why containers?
• Why decouple monoliths into microservices?
• Popular decoupling patterns with containers
• Decoupling with containers for security
• Practical decoupling tips
• A (brief) overview of our container services
Agenda
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Why containers?
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Applications aren’t just code, they have dependencies
Code
Code packages Operating
system packages
Runtime
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Containers turn applications into one deployable artifact
Code
Code packages Operating
system packages
Container image
Runtime
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Build
Gather the app and
its dependencies.
Create an immutable
container image.
Push
Store the container
image in a registry so it
can be downloaded to
compute
Run
Download image to
compute, unpack it,
and run it in an
isolated environment
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Breaking a monolith is scary because more services mean
more dependencies
Code
Code packages
Operating
system packages
Code
Operating
system packages
Service A Service B
Python: 3.9.6
PyPi packages
Node: 16.6.2
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Containers make dependencies a decentralized job
Code
Code packages
Operating
system packages
Team A
Service A
Container A
Node: 16.6.2
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Containers make dependencies a decentralized job
Team B
Container B
Code
Operating
system packages
Service B
Python: 3.9.6
PyPi packages
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Infrastructure is now agnostic to container contents.
Container B
Container A
AWS Fargate
Container D
Container C Different containers can be
handled the same way
using the same tooling
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Why decouple monoliths into
microservices?
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Decoupling your services = decoupling your teams
Team A Team B
API = Contract
w/SLAs,
versioning, etc.
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
“Smaller teams working on
smaller codebases tend to be
more productive.”
Sam Newman
Building Microservices
“Can we make a change to a
microservice and deploy it without
having to deploy any other?”
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Can we make a change to a
microservice and deploy it without
needing to have a meeting?
Me
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Popular decoupling patterns
with containers
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Decouple traffic: One domain, multiple services
Amazon
CloudFront
Users
mycompany.com/blog/*
mycompany.com
mycompany.com/api/*
AWS Fargate
Amazon Simple
Storage Service
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Decouple API into microservices
Amazon
CloudFront
Users
mycompany.com/blog/*
mycompany.com
mycompany.com/api/*
AWS Fargate
Amazon Simple
Storage Service
Application Load
Balancer
AWS Fargate
mycompany.com/api/users/*
mycompany.com/api/order/*
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Listener Rule
Match on host
Hostname == mycompany.com
Hostname == api.mycompany.com
Match on path
Path == /api/users
Path == /api/orders
Match on header
Version == 1.0.0
User-Agent == mobile
Match on query string
?utm_source==bot
Up to 100 rules
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Decouple background workers
Application Load
Balancer
Users AWS Fargate Amazon
Simple Queue
Service
AWS Fargate
Job producer Worker
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Decouple background workers
Application Load
Balancer
Users AWS Fargate Amazon
Simple Queue
Service
AWS Fargate
Job producer Worker
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
User Service
Friend service
Message service
User signed up
User deleted account
Email Service
Email Queue
Friend request
Mobile Push
Notification
Push Notification Queue
DM was sent
Producer Queue
Topic
Consumer
Subscription
Recommendation
Service
Recommendation Queue
Use Topics and Queues for more complicated business logic
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
User Service user signed up
user deleted account
Email Service
Email Queue
Subscription
User Team
Email Team
User team is responsible for
web API and their own topics
Email team is responsible for
their worker service, queue, and
the subscriptions to topics they
are interested in.
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Decouple scheduled tasks from the monolith
Every day at
5:00
AWS Fargate
Amazon
EventBridge
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Decoupling with containers for
security
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Containers can have their own security groups and IAM roles
Container A
Amazon VPC
Security
Group
AWS Identity
and Access
Management
Amazon
Simple
Storage
Service
Networking control
API level control
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Control access to databases on a service by service basis
Container A
Security
Group
Amazon RDS
Container B
Security
Group
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Control access from one service to another
Container A
Security
Group
Container B
Security
Group
Container C
Security
Group
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Control API level actions for services
Job producer
Job Consumer
Amazon
Simple
Queue
Service
IAM Role IAM Role
Producer is allowed to
add items to queue, but
not read queue
Consumer is allowed
to read queue but
not add jobs
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Practical decoupling tips
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Practical decoupling: from monolith to micro
Functioning monolith
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Trying to break things up too fast is a recipe for disaster
Boom!
Semi-functioning
microservice
Broken
implementation
Buggy service
This part works
great!
Kind of works?
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Decouple gradually, leave the central monolith for a while
Functioning monolith
Well functioning
service
Efficient
microservice
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Some practical places to start: User signup
Core API
Password
storage and
hashing
Password
database
Main database
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Some practical places to start: User signup
Core API
Password storage
and hashing
Password
database
Main database
Emailer
Service
Queue
Worker
service
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Where to start?
When deciding what parts of your app to spin out of the monolith you
should look for transactions that:
• Can be made asynchronous
– vs. a monolith that is mainly syncronous
• Have well above average response times
– For example, just that transaction could be re-written in Rust/Go vs. Python
• Have different resource requirements or scaling needs
– For example, just that transaction of the app could benefit from expensive GPUs
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Overview of AWS Container Services
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Operating containers at scale is challenging
Do we have
vulnerabilities on our
hosts?
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Operating containers at scale is challenging
How are we
handling ongoing
AMI management,
logging, &
monitoring?
Do we have
vulnerabilities on our
hosts?
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Operating containers at scale is challenging
How are we
handling ongoing
AMI management,
logging, &
monitoring?
Do we have
vulnerabilities on our
hosts?
Is the size of our
cluster properly sized
and can we scale as-
needed?
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Operating containers at scale is challenging
Are we being
efficient with
our spend?
How are we
handling ongoing
AMI management,
logging, &
monitoring?
Do we have
vulnerabilities on our
hosts?
Is the size of our
cluster properly sized
and can we scale as-
needed?
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Operating containers at scale is challenging
Are we being
efficient with
our spend?
How are we
handling ongoing
AMI management,
logging, &
monitoring?
Do we have
vulnerabilities on our
hosts?
Is the size of our
cluster properly sized
and can we scale as-
needed?
Do we spend
more time on
our
infrastructure
than our
applications?
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Choosing your container environment
Amazon ECS
Powerful simplicity
• Fully managed containers
orchestration
• Opinionated solution for containers
• Reduced time to build and deploy
• Fewer decisions needed
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Choosing your container environment
Amazon ECS
Powerful simplicity
• Fully managed containers
orchestration
• Opinionated solution for containers
• Reduced time to build and deploy
• Fewer decisions needed
Amazon EKS
Open flexibility
• If you are invested in Kubernetes
• Vibrant ecosystem and
community
• Consistent open-source APIs
• Easier to run K8s resiliently and
at-scale
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Choosing your container environment
Amazon ECS
Powerful simplicity
• Fully managed containers
orchestration
• Opinionated solution for containers
• Reduced time to build and deploy
• Fewer decisions needed
Amazon EKS
Open flexibility
• If you are invested in Kubernetes
• Vibrant ecosystem and
community
• Consistent open-source APIs
• Easier to run K8s resiliently and
at-scale
AWS Fargate
Serverless
• No servers to manage
• Pay only for resources when used
• Eliminate capacity planning
• Supports both Amazon EKS and
Amazon ECS
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Choosing your container environment
And many customers run a mix of all three!
Amazon ECS
Powerful simplicity
• Fully managed containers
orchestration
• Opinionated solution for containers
• Reduced time to build and deploy
• Fewer decisions needed
Amazon EKS
Open flexibility
• If you are invested in Kubernetes
• Vibrant ecosystem and
community
• Consistent open-source APIs
• Easier to run K8s resiliently and
at-scale
AWS Fargate
Serverless
• No servers to manage
• Pay only for resources when used
• Eliminate capacity planning
• Supports both Amazon EKS and
Amazon ECS
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Decouple workloads responsibly.
And it is okay to have a central monolith!
Core API
Microservice Database
Worker
Queue
Scheduled cron job
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Visit the Modern Applications Resource Hub for more resources
Dive deeper with these resources to help you develop an effective plan for
your modernization journey.
• Build modern applications on AWS e-book
• Build mobile and web apps faster e-book
• Modernize today with containers on AWS e-book
• Adopting a modern Dev+Ops model e-book
• Modern apps need modern ops e-book
• Determining the total cost of ownership: Comparing Serverless and
Server-based technologies paper
• Continuous learning, continuous modernization e-book
• … and more!
https://bit.ly/3yfOvbK
Visit resource hub »
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Training and Certification
Accelerate modernization with continuous learning
Free digital courses, including:
Architecting serverless solutions
Getting started with DevOps on AWS
Hands-on classroom training
(available virtually) including:
Running containers on Amazon Elastic
Kubernetes Service (Amazon EKS)
Advanced developing on AWS
Earn an industry-recognized credential:
AWS Certified Developer – Associate
AWS Certified DevOps – Professional
Create a self-paced learning roadmap
AWS ramp-up guide - Developer
AWS ramp-up guide - DevOps
Take Developer
and DevOps training
today
Learn more about
Modernization training for you
and your team
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Thank you for attending AWS Innovate
Modern Applications Edition
We hope you found it interesting! A kind reminder to complete the survey.
Let us know what you thought of today’s event and how we can improve the event
experience for you in the future.
aws-apj-marketing@amazon.com
twitter.com/AWSCloud
facebook.com/AmazonWebServices
youtube.com/user/AmazonWebServices
slideshare.net/AmazonWebServices
twitch.tv/aws
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Thank you!
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

More Related Content

Similar to Innovate - Breaking Down The Monolith

Securing Container-Based Applications at the Speed of DevOps
Securing Container-Based Applications at the Speed of DevOpsSecuring Container-Based Applications at the Speed of DevOps
Securing Container-Based Applications at the Speed of DevOps
DevOps.com
 
Containers on AWS
Containers on AWSContainers on AWS
Containers on AWS
Reham Maher El-Safarini
 
Aws container services overview
Aws container services overviewAws container services overview
Aws container services overview
Patricio Vazquez
 
AWS Containers Day.pdf
AWS Containers Day.pdfAWS Containers Day.pdf
AWS Containers Day.pdf
Amazon Web Services
 
Scale up a Web Application (ARC409-R) - AWS re:Invent 2018
Scale up a Web Application (ARC409-R) - AWS re:Invent 2018Scale up a Web Application (ARC409-R) - AWS re:Invent 2018
Scale up a Web Application (ARC409-R) - AWS re:Invent 2018
Amazon Web Services
 
Orchestrating containers on AWS | AWS Floor28
Orchestrating containers on AWS | AWS Floor28Orchestrating containers on AWS | AWS Floor28
Orchestrating containers on AWS | AWS Floor28
Amazon Web Services
 
Set Up a CI/CD Pipeline for Deploying Containers Using the AWS Developer Tool...
Set Up a CI/CD Pipeline for Deploying Containers Using the AWS Developer Tool...Set Up a CI/CD Pipeline for Deploying Containers Using the AWS Developer Tool...
Set Up a CI/CD Pipeline for Deploying Containers Using the AWS Developer Tool...
Amazon Web Services
 
IDI 2022: Making sense of the '17 ways to run containers on AWS'
IDI 2022: Making sense of the '17 ways to run containers on AWS'IDI 2022: Making sense of the '17 ways to run containers on AWS'
IDI 2022: Making sense of the '17 ways to run containers on AWS'
Massimo Ferre'
 
PaaS – From Code to Running Application using AWS Elastic Beanstalk (DEV323) ...
PaaS – From Code to Running Application using AWS Elastic Beanstalk (DEV323) ...PaaS – From Code to Running Application using AWS Elastic Beanstalk (DEV323) ...
PaaS – From Code to Running Application using AWS Elastic Beanstalk (DEV323) ...
Amazon Web Services
 
Deep Dive into Amazon Fargate
Deep Dive into Amazon FargateDeep Dive into Amazon Fargate
Deep Dive into Amazon Fargate
Amazon Web Services
 
Securing Container-Based Applications at the Speed of DevOps
Securing Container-Based Applications at the Speed of DevOpsSecuring Container-Based Applications at the Speed of DevOps
Securing Container-Based Applications at the Speed of DevOps
WhiteSource
 
Getting-started-with-containers on AWS
Getting-started-with-containers on AWSGetting-started-with-containers on AWS
Getting-started-with-containers on AWS
Amazon Web Services
 
深入淺出 AWS 混合式雲端架構
深入淺出 AWS 混合式雲端架構 深入淺出 AWS 混合式雲端架構
深入淺出 AWS 混合式雲端架構
Amazon Web Services
 
20210608 - Desarrollo de aplicaciones en la nube
20210608 - Desarrollo de aplicaciones en la nube20210608 - Desarrollo de aplicaciones en la nube
20210608 - Desarrollo de aplicaciones en la nube
Marcia Villalba
 
20200520 - Como empezar a desarrollar aplicaciones serverless
20200520 - Como empezar a desarrollar aplicaciones serverless 20200520 - Como empezar a desarrollar aplicaciones serverless
20200520 - Como empezar a desarrollar aplicaciones serverless
Marcia Villalba
 
The Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 KeynoteThe Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 Keynote
Arun Gupta
 
Containers - State of the Union
Containers - State of the UnionContainers - State of the Union
Containers - State of the Union
Amazon Web Services
 
20201013 - Serverless Architecture Conference - How to migrate your existing ...
20201013 - Serverless Architecture Conference - How to migrate your existing ...20201013 - Serverless Architecture Conference - How to migrate your existing ...
20201013 - Serverless Architecture Conference - How to migrate your existing ...
Marcia Villalba
 
EKS Workshop
 EKS Workshop EKS Workshop
EKS Workshop
AWS Germany
 
Containers on AWS: An Introduction
Containers on AWS: An IntroductionContainers on AWS: An Introduction
Containers on AWS: An Introduction
Amazon Web Services
 

Similar to Innovate - Breaking Down The Monolith (20)

Securing Container-Based Applications at the Speed of DevOps
Securing Container-Based Applications at the Speed of DevOpsSecuring Container-Based Applications at the Speed of DevOps
Securing Container-Based Applications at the Speed of DevOps
 
Containers on AWS
Containers on AWSContainers on AWS
Containers on AWS
 
Aws container services overview
Aws container services overviewAws container services overview
Aws container services overview
 
AWS Containers Day.pdf
AWS Containers Day.pdfAWS Containers Day.pdf
AWS Containers Day.pdf
 
Scale up a Web Application (ARC409-R) - AWS re:Invent 2018
Scale up a Web Application (ARC409-R) - AWS re:Invent 2018Scale up a Web Application (ARC409-R) - AWS re:Invent 2018
Scale up a Web Application (ARC409-R) - AWS re:Invent 2018
 
Orchestrating containers on AWS | AWS Floor28
Orchestrating containers on AWS | AWS Floor28Orchestrating containers on AWS | AWS Floor28
Orchestrating containers on AWS | AWS Floor28
 
Set Up a CI/CD Pipeline for Deploying Containers Using the AWS Developer Tool...
Set Up a CI/CD Pipeline for Deploying Containers Using the AWS Developer Tool...Set Up a CI/CD Pipeline for Deploying Containers Using the AWS Developer Tool...
Set Up a CI/CD Pipeline for Deploying Containers Using the AWS Developer Tool...
 
IDI 2022: Making sense of the '17 ways to run containers on AWS'
IDI 2022: Making sense of the '17 ways to run containers on AWS'IDI 2022: Making sense of the '17 ways to run containers on AWS'
IDI 2022: Making sense of the '17 ways to run containers on AWS'
 
PaaS – From Code to Running Application using AWS Elastic Beanstalk (DEV323) ...
PaaS – From Code to Running Application using AWS Elastic Beanstalk (DEV323) ...PaaS – From Code to Running Application using AWS Elastic Beanstalk (DEV323) ...
PaaS – From Code to Running Application using AWS Elastic Beanstalk (DEV323) ...
 
Deep Dive into Amazon Fargate
Deep Dive into Amazon FargateDeep Dive into Amazon Fargate
Deep Dive into Amazon Fargate
 
Securing Container-Based Applications at the Speed of DevOps
Securing Container-Based Applications at the Speed of DevOpsSecuring Container-Based Applications at the Speed of DevOps
Securing Container-Based Applications at the Speed of DevOps
 
Getting-started-with-containers on AWS
Getting-started-with-containers on AWSGetting-started-with-containers on AWS
Getting-started-with-containers on AWS
 
深入淺出 AWS 混合式雲端架構
深入淺出 AWS 混合式雲端架構 深入淺出 AWS 混合式雲端架構
深入淺出 AWS 混合式雲端架構
 
20210608 - Desarrollo de aplicaciones en la nube
20210608 - Desarrollo de aplicaciones en la nube20210608 - Desarrollo de aplicaciones en la nube
20210608 - Desarrollo de aplicaciones en la nube
 
20200520 - Como empezar a desarrollar aplicaciones serverless
20200520 - Como empezar a desarrollar aplicaciones serverless 20200520 - Como empezar a desarrollar aplicaciones serverless
20200520 - Como empezar a desarrollar aplicaciones serverless
 
The Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 KeynoteThe Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 Keynote
 
Containers - State of the Union
Containers - State of the UnionContainers - State of the Union
Containers - State of the Union
 
20201013 - Serverless Architecture Conference - How to migrate your existing ...
20201013 - Serverless Architecture Conference - How to migrate your existing ...20201013 - Serverless Architecture Conference - How to migrate your existing ...
20201013 - Serverless Architecture Conference - How to migrate your existing ...
 
EKS Workshop
 EKS Workshop EKS Workshop
EKS Workshop
 
Containers on AWS: An Introduction
Containers on AWS: An IntroductionContainers on AWS: An Introduction
Containers on AWS: An Introduction
 

Recently uploaded

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 

Recently uploaded (20)

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 

Innovate - Breaking Down The Monolith

  • 1. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. 2 7 & 2 8 O c t o b e r 2 0 2 1
  • 2. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Jason Umiker Sr. Specialist Solutions Architect - Containers Amazon Web Services Breaking down the monolith with containers
  • 3. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. • Why containers? • Why decouple monoliths into microservices? • Popular decoupling patterns with containers • Decoupling with containers for security • Practical decoupling tips • A (brief) overview of our container services Agenda
  • 4. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Why containers?
  • 5. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Applications aren’t just code, they have dependencies Code Code packages Operating system packages Runtime
  • 6. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Containers turn applications into one deployable artifact Code Code packages Operating system packages Container image Runtime
  • 7. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Build Gather the app and its dependencies. Create an immutable container image. Push Store the container image in a registry so it can be downloaded to compute Run Download image to compute, unpack it, and run it in an isolated environment
  • 8. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Breaking a monolith is scary because more services mean more dependencies Code Code packages Operating system packages Code Operating system packages Service A Service B Python: 3.9.6 PyPi packages Node: 16.6.2
  • 9. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Containers make dependencies a decentralized job Code Code packages Operating system packages Team A Service A Container A Node: 16.6.2
  • 10. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Containers make dependencies a decentralized job Team B Container B Code Operating system packages Service B Python: 3.9.6 PyPi packages
  • 11. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Infrastructure is now agnostic to container contents. Container B Container A AWS Fargate Container D Container C Different containers can be handled the same way using the same tooling
  • 12. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Why decouple monoliths into microservices?
  • 13. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Decoupling your services = decoupling your teams Team A Team B API = Contract w/SLAs, versioning, etc.
  • 14. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. “Smaller teams working on smaller codebases tend to be more productive.” Sam Newman Building Microservices “Can we make a change to a microservice and deploy it without having to deploy any other?”
  • 15. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Can we make a change to a microservice and deploy it without needing to have a meeting? Me
  • 16. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Popular decoupling patterns with containers
  • 17. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Decouple traffic: One domain, multiple services Amazon CloudFront Users mycompany.com/blog/* mycompany.com mycompany.com/api/* AWS Fargate Amazon Simple Storage Service
  • 18. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Decouple API into microservices Amazon CloudFront Users mycompany.com/blog/* mycompany.com mycompany.com/api/* AWS Fargate Amazon Simple Storage Service Application Load Balancer AWS Fargate mycompany.com/api/users/* mycompany.com/api/order/*
  • 19. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Listener Rule Match on host Hostname == mycompany.com Hostname == api.mycompany.com Match on path Path == /api/users Path == /api/orders Match on header Version == 1.0.0 User-Agent == mobile Match on query string ?utm_source==bot Up to 100 rules
  • 20. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Decouple background workers Application Load Balancer Users AWS Fargate Amazon Simple Queue Service AWS Fargate Job producer Worker
  • 21. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Decouple background workers Application Load Balancer Users AWS Fargate Amazon Simple Queue Service AWS Fargate Job producer Worker
  • 22. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. User Service Friend service Message service User signed up User deleted account Email Service Email Queue Friend request Mobile Push Notification Push Notification Queue DM was sent Producer Queue Topic Consumer Subscription Recommendation Service Recommendation Queue Use Topics and Queues for more complicated business logic
  • 23. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. User Service user signed up user deleted account Email Service Email Queue Subscription User Team Email Team User team is responsible for web API and their own topics Email team is responsible for their worker service, queue, and the subscriptions to topics they are interested in.
  • 24. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Decouple scheduled tasks from the monolith Every day at 5:00 AWS Fargate Amazon EventBridge
  • 25. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Decoupling with containers for security
  • 26. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Containers can have their own security groups and IAM roles Container A Amazon VPC Security Group AWS Identity and Access Management Amazon Simple Storage Service Networking control API level control
  • 27. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Control access to databases on a service by service basis Container A Security Group Amazon RDS Container B Security Group
  • 28. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Control access from one service to another Container A Security Group Container B Security Group Container C Security Group
  • 29. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Control API level actions for services Job producer Job Consumer Amazon Simple Queue Service IAM Role IAM Role Producer is allowed to add items to queue, but not read queue Consumer is allowed to read queue but not add jobs
  • 30. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Practical decoupling tips
  • 31. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Practical decoupling: from monolith to micro Functioning monolith
  • 32. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Trying to break things up too fast is a recipe for disaster Boom! Semi-functioning microservice Broken implementation Buggy service This part works great! Kind of works?
  • 33. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Decouple gradually, leave the central monolith for a while Functioning monolith Well functioning service Efficient microservice
  • 34. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Some practical places to start: User signup Core API Password storage and hashing Password database Main database
  • 35. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Some practical places to start: User signup Core API Password storage and hashing Password database Main database Emailer Service Queue Worker service
  • 36. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Where to start? When deciding what parts of your app to spin out of the monolith you should look for transactions that: • Can be made asynchronous – vs. a monolith that is mainly syncronous • Have well above average response times – For example, just that transaction could be re-written in Rust/Go vs. Python • Have different resource requirements or scaling needs – For example, just that transaction of the app could benefit from expensive GPUs
  • 37. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Overview of AWS Container Services
  • 38. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Operating containers at scale is challenging Do we have vulnerabilities on our hosts?
  • 39. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Operating containers at scale is challenging How are we handling ongoing AMI management, logging, & monitoring? Do we have vulnerabilities on our hosts?
  • 40. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Operating containers at scale is challenging How are we handling ongoing AMI management, logging, & monitoring? Do we have vulnerabilities on our hosts? Is the size of our cluster properly sized and can we scale as- needed?
  • 41. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Operating containers at scale is challenging Are we being efficient with our spend? How are we handling ongoing AMI management, logging, & monitoring? Do we have vulnerabilities on our hosts? Is the size of our cluster properly sized and can we scale as- needed?
  • 42. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Operating containers at scale is challenging Are we being efficient with our spend? How are we handling ongoing AMI management, logging, & monitoring? Do we have vulnerabilities on our hosts? Is the size of our cluster properly sized and can we scale as- needed? Do we spend more time on our infrastructure than our applications?
  • 43. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Choosing your container environment Amazon ECS Powerful simplicity • Fully managed containers orchestration • Opinionated solution for containers • Reduced time to build and deploy • Fewer decisions needed
  • 44. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Choosing your container environment Amazon ECS Powerful simplicity • Fully managed containers orchestration • Opinionated solution for containers • Reduced time to build and deploy • Fewer decisions needed Amazon EKS Open flexibility • If you are invested in Kubernetes • Vibrant ecosystem and community • Consistent open-source APIs • Easier to run K8s resiliently and at-scale
  • 45. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Choosing your container environment Amazon ECS Powerful simplicity • Fully managed containers orchestration • Opinionated solution for containers • Reduced time to build and deploy • Fewer decisions needed Amazon EKS Open flexibility • If you are invested in Kubernetes • Vibrant ecosystem and community • Consistent open-source APIs • Easier to run K8s resiliently and at-scale AWS Fargate Serverless • No servers to manage • Pay only for resources when used • Eliminate capacity planning • Supports both Amazon EKS and Amazon ECS
  • 46. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Choosing your container environment And many customers run a mix of all three! Amazon ECS Powerful simplicity • Fully managed containers orchestration • Opinionated solution for containers • Reduced time to build and deploy • Fewer decisions needed Amazon EKS Open flexibility • If you are invested in Kubernetes • Vibrant ecosystem and community • Consistent open-source APIs • Easier to run K8s resiliently and at-scale AWS Fargate Serverless • No servers to manage • Pay only for resources when used • Eliminate capacity planning • Supports both Amazon EKS and Amazon ECS
  • 47. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Decouple workloads responsibly. And it is okay to have a central monolith! Core API Microservice Database Worker Queue Scheduled cron job
  • 48. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Visit the Modern Applications Resource Hub for more resources Dive deeper with these resources to help you develop an effective plan for your modernization journey. • Build modern applications on AWS e-book • Build mobile and web apps faster e-book • Modernize today with containers on AWS e-book • Adopting a modern Dev+Ops model e-book • Modern apps need modern ops e-book • Determining the total cost of ownership: Comparing Serverless and Server-based technologies paper • Continuous learning, continuous modernization e-book • … and more! https://bit.ly/3yfOvbK Visit resource hub »
  • 49. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Training and Certification Accelerate modernization with continuous learning Free digital courses, including: Architecting serverless solutions Getting started with DevOps on AWS Hands-on classroom training (available virtually) including: Running containers on Amazon Elastic Kubernetes Service (Amazon EKS) Advanced developing on AWS Earn an industry-recognized credential: AWS Certified Developer – Associate AWS Certified DevOps – Professional Create a self-paced learning roadmap AWS ramp-up guide - Developer AWS ramp-up guide - DevOps Take Developer and DevOps training today Learn more about Modernization training for you and your team
  • 50. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Thank you for attending AWS Innovate Modern Applications Edition We hope you found it interesting! A kind reminder to complete the survey. Let us know what you thought of today’s event and how we can improve the event experience for you in the future. aws-apj-marketing@amazon.com twitter.com/AWSCloud facebook.com/AmazonWebServices youtube.com/user/AmazonWebServices slideshare.net/AmazonWebServices twitch.tv/aws
  • 51. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Thank you! © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Editor's Notes

  1. File:Documents icon.svg - Wikimedia Commons
  2. Quotes from the book Building Microservices, 2nd edition by Sam Newman from O’Reilly (2021) chapter 1. Accessed it online where there are no page numbers.
  3. Image - https://commons.wikimedia.org/wiki/File:Spring05.jpg
  4. Suggested speaker notes: If you would like to learn more building modern applications, please visit our resource hub. We have many new resources to help you jumpstart your modernization journey.
  5. Suggested speaker notes: Start your learning journey with AWS Training and Certification by clicking on the links provided here.
  6. Suggested speaker notes: Thank you again for attending. Please do take the time to fill up the feedback form so we can better understand your requirements. <include personal sign off – e.g. My name is xxxxx….go build, go build something innovative and we look forward to engaging with you again at the next AWS event.