2 - Monolith To Microservices
2 - Monolith To Microservices
refactoring applications
Rene Martinez
[email protected]
Monolith Microservices
Miniservices
Completely
? independent
Webserver
App Service
Load
Browser
Balancer Visualization Database
Service
- Time to Market
- Time to Repair
- Enabled Hyperscaling
- Technologically Independent
APIs
Webserver
Integration services
APIs
APIs
Visualization Service
Hooks
Rehost
Determine Modify underlying
Replatform new platform infrastructure
Repurchase
Redesign Application Full
Refactor application / code ALM / Integration
(re-architect) infrastructure development SDLC
Retire
Retain
Separate:
• Stateless
• Stateful
• Supporting services
Replatformed
Monolith
here RP 2
Serverless
RP 1 (FaaS)
Containers
(CaaS)
Platform as a
Infrastructure Service (PaaS)
as a Service
Metal (IaaS)
Decide: Refactored
(Lab example)
• Orchestrated (containers)
• Serverless
Monolith
here
Serverless
RF 2 Containers (FaaS)
(CaaS)
Platform as a
Infrastructure Service (PaaS)
as a Service
Metal (IaaS)
RF 1
© 2019, Amazon Web Services, Inc. or its Affiliates.
Transformation Steps
Visualization APIs
• Containerized or serverless
Service Organizational requirements
Hooks
Monitoring
Product Process
Key concepts (*): Reduce
Version Automated Common
• Continuous everything – never done everything testing
technical
metrics
debt
• Everything is code – tested & monitored
• Commit frequently!
Test Driven Canary Continuous Continuous
Development rollouts integration delivery
Minimum Minimum
Small Continuous
Viable Viable
releases testing
Product Process
One step
Amazon Amazon S3
CloudFront
Amazon
Aurora
serverless
Browser
• Bucket policies
• ACLs
IAM
Amazon • OAI Amazon S3
CloudFront • Geo-Restriction
• Signed Cookies
• Signed URLs
• DDOS Amazon
Aurora
serverless IAM
Browser
Amazon Amazon S3
CloudFront
Amazon
Aurora
Browser serverless
AWS Fargate
Amazon IAM
Amazon S3
CloudFront
Amazon
Aurora
Browser serverless IAM
AWS Fargate
2. Serverless
3. Zappa
4. Chalice
5. Etc.
AWS SAM:
• CloudFormation extension optimized for serverless
• New serverless resources: functions, APIs, and tables
• Supports anything CloudFormation supports
• Local testing and debug (Node.js, Java, Python, and Go)
• Open sourced under Apache 2.0
ListTable:
Type: AWS::Serverless::SimpleTable
AWS Lambda
Code/Packages/
Swagger