SlideShare a Scribd company logo
Microservices and elastic resource pools with
ECS
Boyan Dimitrov,
Platform Automation Lead @ Hailo
@nathariel
Microservices and elastic resource pools with Amazon EC2 Container Service
Microservices intro
•  Service to service communication libs
•  Discovery
•  Configuration
•  A/B testing capabilities
•  Monitoring & Instrumentation
•  … and much more
Each service (at Hailo) gets for free:
Service	
  B	
  
Service	
  A	
  
Service	
  C	
  
Service	
  E	
  
Service	
  D	
  
Small, self-contained units of execution with
well defined API
Built around business capabilities or domain objects
Responsible for one thing and one thing only
Fully automated lifecycle
AWS Summits 2015
Monolith	
  App	
  
What do we have
AWS Summits 2015
•  Microservices ecosystem based on Go
•  Designed specifically for the cloud – different building blocks and components
will constantly be in flux, broken or unavailable
•  1000+ AWS instances spanning multiple regions
•  200+ services in production
	
  
Service interactions – not as scary as it looks!
AWS Summits 2015
Service deployment specifics
Main goals: Reliability, Ease of Use, Resource EfficiencyAWS Summits 2015
•  Each service is decoupled from the rest and deployed individually
•  We run multiple services on the same instance
•  We rely on auto scaling groups for organizing and scaling our workload
•  We use static partitioning to match a service to an auto scaling group
•  An automated deployment system takes care of all service lifecycle details
Provisioning Service
CI Pipeline
Amazon S3
Provisioning Manager
Provisioning Service
Docker Registry
Deployment overview and our journey towards containers
Instance Instance
Process Container
Auto Scaling GroupAuto Scaling Group
How hard is to deploy a service?
service name version
auto scaling group
AWS Summits 2015
Is this good enough?
Main goals: Reliability, Ease of Use, Resource Efficiency
service name version
auto scaling group
How do I figure this one out?
Would my service live there forever?
What if my team owns 20+ services ?
As a developer:
AWS Summits 2015
What about resource efficiency?
35%
Utilization
85%
Utilization
Auto Scaling Group A
Auto Scaling Group B
AZ eu-west-1a AZ eu-west-1cAZ eu-west-1b
instance instance instance instance instance instance
instance instance instance
Main goals: Reliability, Ease of Use, Resource EfficiencyAWS Summits 2015
Challenges
AWS Summits 2015
•  Our overall utilization across the services auto scaling groups is between 25%
and 50%
•  Performance of individual services is way more complex than simple CPU and
memory calculations. Accumulated interference on the instance needs to be
accounted for
•  Static partitioning of services is hard and non scalable
•  Our developers should not care about service placement or infrastructure
specifics!
	
  
So what do we want?
Elastic resource pool
75-80%
Utilization
eu-west-1a eu-west-1b eu-west-1c
One word – such difference!	
  
Main goals: Reliability, Ease of Use, Resource Efficiency
instance	
   instance	
   instance	
   instance	
   instance	
   instance	
  
Our solution – cluster management on top of an elastic resource pool
Elastic Resource Pool
ECS Agent ECS Agent ECS Agent ECS Agent ECS Agent ECS Agent
QoS Scheduler
eu-west-1a eu-west-1b eu-west-1c
AWS
Cloud Provider
ECS
Cluster Manager
instance	
   instance	
   instance	
   instance	
   instance	
   instance	
  
Why ECS?
AWS Summits 2015
•  It is a managed service!
•  It is great for storing and enforcing task state
•  Designed with custom schedulers in mind
•  The agent code is available on a public GitHub repo and … it is in GO!
•  Easy to integrate with other AWS services
	
  
Why building our own scheduler?
AWS Summits 2015
•  Service Priority
•  Service specific runtime metrics
•  Interference
•  Cloud awareness ( availability zones, pool elasticity…)
Running services in a pay as you go fashion will soon be a reality as much as todays
on demand compute
We want a cloud-native scheduler that is aware of the cloud specifics and our
microservices ecosystem:
{!
“service”: “Foo”!
”minCPU": 10,!
”minMemory": 500,!
“minInstances”: 3,!
“Priority”: “Default”!
}	
  
{!
“service”: “Baz”!
”minCPU": 50,!
”minMemory": 1500,!
“minInstances”: 3,!
“Priority”: “Critical”!
}	
  
Take Service Priority as an example
AWS Summits 2015
t0
t1
X
Star6ng	
  t2
Service criticality ma ers when resources are constrained
AWS Summits 2015
instance	
   instance	
   instance	
  
instance	
   instance	
   instance	
  
instance	
  instance	
   instance	
  
instance	
   instance	
   instance	
  
t3
Thanks!
@nathariel
boyan@hailocab.com
@HailoTech
facebook.com/HailoUK

More Related Content

What's hot (17)

PPTX
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
Sudhir Tonse
 
PPTX
Scaling from 1 to 10 million users - Hailo
Boyan Dimitrov
 
PPTX
Pros & Cons of Microservices Architecture
Ashwini Kuntamukkala
 
PDF
Introduction to Serverless
Nikolaus Graf
 
PPTX
Microservices at Netflix
Katharina Probst
 
PPTX
Using AWS Lambda for Infrastructure Automation and Beyond
SoftServe
 
PPTX
Greetings from AWS User Group Taiwan
Cliff Chao-kuan Lu
 
PPTX
Microservices and the Cloud based future of integration final
BizTalk360
 
PDF
Continuous Delivery: How RightScale Releases Weekly
RightScale
 
PPTX
The Application Server Platform of the Future - Container & Cloud Native and ...
Lucas Jellema
 
PDF
Project Sherpa: How RightScale Went All in on Docker
RightScale
 
PDF
Intro to Serverless
Cliff Chao-kuan Lu
 
PPTX
Serverless Architecture
Michał Kurzeja
 
PDF
AWS Lambda Containers - bridging the gap between serverless and containers on...
Yun Zhi Lin
 
PDF
Cloud Lessons Learned: 3 Cloud Case Studies
RightScale
 
PDF
RightScale Webinar: How to Cloud Enable vSphere with RightScale
RightScale
 
PPTX
104 meets cloud
Cliff Chao-kuan Lu
 
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
Sudhir Tonse
 
Scaling from 1 to 10 million users - Hailo
Boyan Dimitrov
 
Pros & Cons of Microservices Architecture
Ashwini Kuntamukkala
 
Introduction to Serverless
Nikolaus Graf
 
Microservices at Netflix
Katharina Probst
 
Using AWS Lambda for Infrastructure Automation and Beyond
SoftServe
 
Greetings from AWS User Group Taiwan
Cliff Chao-kuan Lu
 
Microservices and the Cloud based future of integration final
BizTalk360
 
Continuous Delivery: How RightScale Releases Weekly
RightScale
 
The Application Server Platform of the Future - Container & Cloud Native and ...
Lucas Jellema
 
Project Sherpa: How RightScale Went All in on Docker
RightScale
 
Intro to Serverless
Cliff Chao-kuan Lu
 
Serverless Architecture
Michał Kurzeja
 
AWS Lambda Containers - bridging the gap between serverless and containers on...
Yun Zhi Lin
 
Cloud Lessons Learned: 3 Cloud Case Studies
RightScale
 
RightScale Webinar: How to Cloud Enable vSphere with RightScale
RightScale
 
104 meets cloud
Cliff Chao-kuan Lu
 

Viewers also liked (18)

ODP
Pipelines for sysadmins
ProfFalken
 
PPTX
Building microservices with docker
Roman Melnyk
 
PDF
Delivering GOV.UK: Devops for the nation
annashipman
 
PDF
Netflix running Presto in the AWS Cloud
Zhenxiao Luo
 
PPTX
Building Cloud Native Applications
Munish Gupta
 
PDF
Data Science Languages and Industry Analytics
Wes McKinney
 
PDF
Angrybirds Magento Cloud Deployment
AOE
 
PPTX
Micro services and Containers
Richard Harvey
 
PDF
DevOps Picc12 Management Talk
Michael Rembetsy
 
PDF
Proactive Cost Management for AWS Cloud
Nutanix Beam
 
PDF
The Future of Finance
Bart De Waele
 
PDF
Why Scala Is Taking Over the Big Data World
Dean Wampler
 
PDF
A Coherent Discussion About Performance
Theo Schlossnagle
 
PDF
Kapil Thangavelu - Cloud Custodian
ServerlessConf
 
PDF
Practical Medium Data Analytics with Python (10 Things I Hate About pandas, P...
Wes McKinney
 
PPTX
How To Analyze Geolocation Data with Hive and Hadoop
Hortonworks
 
PDF
DevOps Kaizen: Find and Fix What is Really Behind Your Problems
dev2ops
 
PDF
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Kai Wähner
 
Pipelines for sysadmins
ProfFalken
 
Building microservices with docker
Roman Melnyk
 
Delivering GOV.UK: Devops for the nation
annashipman
 
Netflix running Presto in the AWS Cloud
Zhenxiao Luo
 
Building Cloud Native Applications
Munish Gupta
 
Data Science Languages and Industry Analytics
Wes McKinney
 
Angrybirds Magento Cloud Deployment
AOE
 
Micro services and Containers
Richard Harvey
 
DevOps Picc12 Management Talk
Michael Rembetsy
 
Proactive Cost Management for AWS Cloud
Nutanix Beam
 
The Future of Finance
Bart De Waele
 
Why Scala Is Taking Over the Big Data World
Dean Wampler
 
A Coherent Discussion About Performance
Theo Schlossnagle
 
Kapil Thangavelu - Cloud Custodian
ServerlessConf
 
Practical Medium Data Analytics with Python (10 Things I Hate About pandas, P...
Wes McKinney
 
How To Analyze Geolocation Data with Hive and Hadoop
Hortonworks
 
DevOps Kaizen: Find and Fix What is Really Behind Your Problems
dev2ops
 
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Kai Wähner
 
Ad

Similar to Microservices and elastic resource pools with Amazon EC2 Container Service (20)

PDF
Amazon ECS (December 2015)
Julien SIMON
 
PPTX
Introduction to AWS and Docker on ECS
CloudHesive
 
PDF
Deep Dive on Microservices and Docker
Kristana Kane
 
PPTX
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks
 
PDF
ECS and ECR deep dive
Shiva Narayanaswamy
 
PPTX
Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017
Roven Drabo
 
PDF
Running Docker Containers on AWS
Vladimir Simek
 
PPTX
Docker on AWS - the Right Way
AllCloud
 
PPTX
ECS and Docker at Okta
Jon Todd
 
PDF
Running Docker clusters on AWS (June 2016)
Julien SIMON
 
PPTX
Amazon ECS.pptx tasks conatiner ecs new car
zineblahib2
 
PPTX
ECS - from 0 to 100
Vitaliy Kuznetsov
 
PPTX
How Easy to Automate Application Deployment on AWS
Institut Teknologi Sepuluh Nopember Surabaya
 
PDF
Riot Games 글로벌 게임 운영을 위한 Docker 및 Amazon ECS 활용사례 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
PDF
Microservices Architecture with AWS @ AnyMind Group
Giang Tran
 
PDF
AnyMind Group Tech Talk - Microservices architecture with AWS
Nhân Nguyễn
 
PPT
Cloud & Native Cloud for Managers
Eitan Sela
 
PPTX
Utah Codecamp Cloud Computing
Tom Creighton
 
PPTX
Docker on Amazon ECS
Deepak Kumar
 
PPTX
Containers State of the Union I AWS Dev Day 2018
AWS Germany
 
Amazon ECS (December 2015)
Julien SIMON
 
Introduction to AWS and Docker on ECS
CloudHesive
 
Deep Dive on Microservices and Docker
Kristana Kane
 
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks
 
ECS and ECR deep dive
Shiva Narayanaswamy
 
Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017
Roven Drabo
 
Running Docker Containers on AWS
Vladimir Simek
 
Docker on AWS - the Right Way
AllCloud
 
ECS and Docker at Okta
Jon Todd
 
Running Docker clusters on AWS (June 2016)
Julien SIMON
 
Amazon ECS.pptx tasks conatiner ecs new car
zineblahib2
 
ECS - from 0 to 100
Vitaliy Kuznetsov
 
How Easy to Automate Application Deployment on AWS
Institut Teknologi Sepuluh Nopember Surabaya
 
Riot Games 글로벌 게임 운영을 위한 Docker 및 Amazon ECS 활용사례 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
Microservices Architecture with AWS @ AnyMind Group
Giang Tran
 
AnyMind Group Tech Talk - Microservices architecture with AWS
Nhân Nguyễn
 
Cloud & Native Cloud for Managers
Eitan Sela
 
Utah Codecamp Cloud Computing
Tom Creighton
 
Docker on Amazon ECS
Deepak Kumar
 
Containers State of the Union I AWS Dev Day 2018
AWS Germany
 
Ad

Recently uploaded (20)

PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Python basic programing language for automation
DanialHabibi2
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
July Patch Tuesday
Ivanti
 
Python basic programing language for automation
DanialHabibi2
 

Microservices and elastic resource pools with Amazon EC2 Container Service

  • 1. Microservices and elastic resource pools with ECS Boyan Dimitrov, Platform Automation Lead @ Hailo @nathariel
  • 3. Microservices intro •  Service to service communication libs •  Discovery •  Configuration •  A/B testing capabilities •  Monitoring & Instrumentation •  … and much more Each service (at Hailo) gets for free: Service  B   Service  A   Service  C   Service  E   Service  D   Small, self-contained units of execution with well defined API Built around business capabilities or domain objects Responsible for one thing and one thing only Fully automated lifecycle AWS Summits 2015 Monolith  App  
  • 4. What do we have AWS Summits 2015 •  Microservices ecosystem based on Go •  Designed specifically for the cloud – different building blocks and components will constantly be in flux, broken or unavailable •  1000+ AWS instances spanning multiple regions •  200+ services in production  
  • 5. Service interactions – not as scary as it looks! AWS Summits 2015
  • 6. Service deployment specifics Main goals: Reliability, Ease of Use, Resource EfficiencyAWS Summits 2015 •  Each service is decoupled from the rest and deployed individually •  We run multiple services on the same instance •  We rely on auto scaling groups for organizing and scaling our workload •  We use static partitioning to match a service to an auto scaling group •  An automated deployment system takes care of all service lifecycle details
  • 7. Provisioning Service CI Pipeline Amazon S3 Provisioning Manager Provisioning Service Docker Registry Deployment overview and our journey towards containers Instance Instance Process Container Auto Scaling GroupAuto Scaling Group
  • 8. How hard is to deploy a service? service name version auto scaling group AWS Summits 2015
  • 9. Is this good enough? Main goals: Reliability, Ease of Use, Resource Efficiency service name version auto scaling group How do I figure this one out? Would my service live there forever? What if my team owns 20+ services ? As a developer: AWS Summits 2015
  • 10. What about resource efficiency? 35% Utilization 85% Utilization Auto Scaling Group A Auto Scaling Group B AZ eu-west-1a AZ eu-west-1cAZ eu-west-1b instance instance instance instance instance instance instance instance instance Main goals: Reliability, Ease of Use, Resource EfficiencyAWS Summits 2015
  • 11. Challenges AWS Summits 2015 •  Our overall utilization across the services auto scaling groups is between 25% and 50% •  Performance of individual services is way more complex than simple CPU and memory calculations. Accumulated interference on the instance needs to be accounted for •  Static partitioning of services is hard and non scalable •  Our developers should not care about service placement or infrastructure specifics!  
  • 12. So what do we want? Elastic resource pool 75-80% Utilization eu-west-1a eu-west-1b eu-west-1c One word – such difference!   Main goals: Reliability, Ease of Use, Resource Efficiency instance   instance   instance   instance   instance   instance  
  • 13. Our solution – cluster management on top of an elastic resource pool Elastic Resource Pool ECS Agent ECS Agent ECS Agent ECS Agent ECS Agent ECS Agent QoS Scheduler eu-west-1a eu-west-1b eu-west-1c AWS Cloud Provider ECS Cluster Manager instance   instance   instance   instance   instance   instance  
  • 14. Why ECS? AWS Summits 2015 •  It is a managed service! •  It is great for storing and enforcing task state •  Designed with custom schedulers in mind •  The agent code is available on a public GitHub repo and … it is in GO! •  Easy to integrate with other AWS services  
  • 15. Why building our own scheduler? AWS Summits 2015 •  Service Priority •  Service specific runtime metrics •  Interference •  Cloud awareness ( availability zones, pool elasticity…) Running services in a pay as you go fashion will soon be a reality as much as todays on demand compute We want a cloud-native scheduler that is aware of the cloud specifics and our microservices ecosystem:
  • 16. {! “service”: “Foo”! ”minCPU": 10,! ”minMemory": 500,! “minInstances”: 3,! “Priority”: “Default”! }   {! “service”: “Baz”! ”minCPU": 50,! ”minMemory": 1500,! “minInstances”: 3,! “Priority”: “Critical”! }   Take Service Priority as an example AWS Summits 2015
  • 17. t0 t1 X Star6ng  t2 Service criticality ma ers when resources are constrained AWS Summits 2015 instance   instance   instance   instance   instance   instance   instance  instance   instance   instance   instance   instance   t3

Editor's Notes

  • #3: Seamless user experience
  • #8: We built our custom provisioning system and we started by running a number of services on a single instance Initially we were running services as normal processes on the instance but this started causing noisy neighbour problems Several months ago we gradually started moving to containers aiming for isolation and resource control capabilities.
  • #11: Using static partitioning leaves a lot of unused resources When running many services on the same instance, using generic auto scaling group triggers is inefficient Running a lot of services together, containers or not, creates interference
  • #13: We want an elastic resource pool where services are scheduled on a need to basis We don’t want to manage services manually and leave that to a smart scheduler