Architecting for Scale using Microservices & Serverless Backends Yuval Fernbach, Solutions Architect Yaniv Donenfeld, Solutions Architect
Architecting for Scale using Microservices & Serverless BackendsYuval Fernbach, Solutions ArchitectYaniv Donenfeld, Solutions Architect
SpoTaxi
SpoTaxi
Agenda
• From monolithic to microservices… and containers
• EC2 Container Service overview
• Cluster Management and scheduling
• Integration with other AWS services
The Story of Amazon.com
Monolithic Application Services Microservices
The Move To Microservices Is Assisted By The Rise of Containers
• Small functional building blocks as output of the development
process
• Minimizing dependency and reducing complexity of dependency
management
Amazon ECS
EC2 INSTANCES
LOADBALANCER
InternetECS
AGENT
TASK
Container
TASK
Container
ECS AGENT
TASK
Container
TASK
ContainerAGENT COMMUNICATION
SERVICE
Amazon ECS
API
CLUSTER MANAGEMENT ENGINE
KEY/VALUE STOREECS
AGENT
TASK
Container
TASK
Container
LOADBALANCER
Core Benefits
• Built-in cluster state management system
• Deep Integration with other AWS services
Deep Integration With Other AWS Services• Elastic Load Balancing
• Amazon Elastic Block Store
• Amazon Virtual Private Cloud
• Amazon CloudWatch
• AWS Identify and Access Management
• AWS CloudTrail
IAM Roles For Tasks
DynamoDB
ECS Cluster
EC2 Instance EC2 Instance
TASK A
TASK B
TASK B
S3 Storage
Automatic Service Scaling
AMAZON ECS
Publish metrics
AMAZON CLOUDWATCH
ELASTIC LOAD BALANCING
Auto Scaling ECS service
Availability Zone A
Availability Zone B
TASK A
Add/remove ECS tasks
TASK CTASK B
Scale in /Scale outpolicies
Application Load Balancer
High performance load balancing for applications
High-performance Load Balancing Of Applications
• Path-based routing
• Dynamic Port Mapping
• HTTP/2
• WebSockets
• Detailed logging
Application Load BalancerECS Service
ALB ECS Service
/ws/api/bidstatus
/
Task
ECS Service
Bid API
Web PageTask
Demo
SpoTaxi