SlideShare a Scribd company logo
©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
Empire
Building a PaaS with Docker and AWS
Agenda
• A little background about why we decided to
build an internal PaaS.
• Introduction to Empire.
• How we’re leveraging ECS as the backend.
• Demo
• Q&A
Who am I
• Eric Holmes
• Infrastructure Engineer at Remind
• I like building things for other developers
• Work mostly with Go and Ruby
• You can find my open source stuff at
https://github.com/ejholmes
What’s Remind?
• Remind is a messaging platform for teachers,
students and parents.
• Chat/Announcements/Files
• ~25 million users. ~350,000 new users per day
during BTS
• ~5 million messages per day.
• ~50 employees. ~30 engineers.
Architecture
Started as a monorail
We started growing...
Broke apart the monolith
• Sidekiq queues were IO bound and constantly
backed up during BTS
• Message delivery workers were tightly coupled
to the rest of the application. Difficult to scale out
horizontally
• Database would need to be sharded
• Started breaking the monolith apart into loosely
coupled services.
• Now have ~50 production services
Heroku
• Entirely hosted on Heroku
• Heroku has been awesome; never needed an
ops team.
• Allowed us to focus on building product.
But we ran into issues...
• “Internal” micro-services need to be exposed
publicly.
• Databases need to be opened up to all traffic.
• Little visibility into performance of hosts.
• No control over the routing layer.
What do we want?
• Want to use AWS services.
• Want to maintain operational simplicity.
• Support 12 factor apps. http://12factor.net/
• Maintain shared patterns for deployment. Faster iteration and build +
release cycles
• No ops.
• Decrease our surface area and only expose a single app publicly.
• Robust and resilient to failure. Self-healing.
• If we can, continue to use containers as a unit of deployment.
Why containers?
• Fast to build*
• Let us isolate dependencies as a portable, easy-
to-distribute package.
• Allow us to create better development
environments with more dev/prod parity.
• Limit the number of moving parts when we
deploy.
• Better resource utilization and cost management
We’re not the first company to want a PaaS
• Netflix - Asgard
• SoundCloud - Bazooka
• Every other company in our investor’s portfolio...
Something we can re-use?
• Flynn
–Alpha
–Undergoing many architectural changes
–Custom load balancer
• Deis
–More than it needed to be
–Nobody using it successfully in production
(that we knew of)
Empire was born
• Initially started as a management layer on top of
CoreOS + fleet.
• Load balancing via nginx configured through
confd + etcd.
• Unit of deployment was Docker containers
• Implemented a subset of the Heroku API
Therein lies the rub...
• Fleet initially worked well, until we started testing
failure modes.
• Fleet had a lot of bugs
• etcd was fragile
• We needed resilience and stability
• We didn’t want to run and operate our own
clustering.
ECS becomes GA
• ECS became GA while we were looking for an
alternative scheduler.
• Looked promising to serve as the scheduling
backend.
What is ECS?
• Pools hosts together as a single compute
resource.
• Provides a set of APIs for placing tasks on
machines
• Scheduler supports “services” for scaling tasks
horizontally and maintaining desired state.
• Services integrate with ELB for connection
draining, zero downtime, and healthchecks.
ECS Components
• Container Instance
• ECS Agent
• ECS Scheduler
ECS Resources
• Task Definition
• Service
• Task
• Cluster
ECS for Empire
• Solid set of primitives to serve as the scheduling
backend
• Managed service
• Failure modes behaved as we expected them to
• ELB integration allowed us to remove custom
routing layer
• Service discovery via DNS
What is Empire?
• Open source internal PaaS for micro-services
• A layer of usability on top of ECS for 12 factor
apps
• Single binary. Minimal deps. Easy to run.
• Provides an API and CLI to create apps, deploy
docker images, update configuration, run one off
tasks etc.
• Allows you to use Procfiles to build multiple ECS
services
Is it ready for production?
• Running ~15 production services within ECS
managed via Empire for a little over a month
• Empire is hands off after you’ve deployed. AWS
services take over
• Moving directly onto EC2 showed huge
performance improvements for services
Demo
What does Empire not do?
• Bring your own logging and metrics (soon?)
• It doesn’t handle building your Docker images
• Doesn’t handle the creation of attached
resources like Databases
Things to keep an eye on
• http://www.convox.com/
Thank you
• GH: @ejholmes
• Twitter: @vesirin
• https://github.com/remind101/empire
• https://github.com/ejholmes/empire-demo
• http://12factor.net/

More Related Content

What's hot

Real World Rails Deployment
Real World Rails DeploymentReal World Rails Deployment
Real World Rails Deployment
Alan Hecht
 
Greetings from AWS User Group Taiwan
Greetings from AWS User Group TaiwanGreetings from AWS User Group Taiwan
Greetings from AWS User Group Taiwan
Cliff Chao-kuan Lu
 
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon Web Services
 
Container management with docker & kubernetes
Container management with docker & kubernetesContainer management with docker & kubernetes
Container management with docker & kubernetes
Kasun Rajapakse
 
Modernizing DevOps
Modernizing DevOpsModernizing DevOps
Modernizing DevOps
CloudHesive
 
Deep Dive into AWS ECS and Spot Instances at Scale
Deep Dive into AWS ECS and Spot Instances at ScaleDeep Dive into AWS ECS and Spot Instances at Scale
Deep Dive into AWS ECS and Spot Instances at Scale
Pahud Hsieh
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
CloudHesive
 
Dcpl cloud computing amazon fail
Dcpl cloud computing amazon failDcpl cloud computing amazon fail
Dcpl cloud computing amazon fail
chris tonjes
 
AWS for Start-ups - Case Study - PeoplePerHour
AWS for Start-ups - Case Study - PeoplePerHour AWS for Start-ups - Case Study - PeoplePerHour
AWS for Start-ups - Case Study - PeoplePerHour
Amazon Web Services
 
Aws developer meetup 24 feb-18 noida
Aws developer meetup 24 feb-18 noidaAws developer meetup 24 feb-18 noida
Aws developer meetup 24 feb-18 noida
Albert Anthony
 
IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...
IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...
IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...
DataArt
 
AWS at Childrens in the BBC
AWS at Childrens in the BBCAWS at Childrens in the BBC
AWS at Childrens in the BBC
ajevans
 
Scaling micro-services Architecture on AWS
Scaling micro-services Architecture on AWSScaling micro-services Architecture on AWS
Scaling micro-services Architecture on AWS
Boyan Dimitrov
 
Moving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScaleMoving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScale
mmoline
 
Meetup #3: Migrate a fast scale system to AWS
Meetup #3: Migrate a fast scale system to AWSMeetup #3: Migrate a fast scale system to AWS
Meetup #3: Migrate a fast scale system to AWS
AWS Vietnam Community
 
Resource Management in the Enterprise Data Center
Resource Management in the Enterprise Data CenterResource Management in the Enterprise Data Center
Resource Management in the Enterprise Data Center
Raghvender Arni
 
A brief introduction to CloudFormation
A brief introduction to CloudFormationA brief introduction to CloudFormation
A brief introduction to CloudFormation
SWIFTotter Solutions
 
Active Cloud DB at CloudComp '10
Active Cloud DB at CloudComp '10Active Cloud DB at CloudComp '10
Active Cloud DB at CloudComp '10
Chris Bunch
 
從劍宗到氣宗 - 談AWS ECS與Serverless最佳實踐
從劍宗到氣宗  - 談AWS ECS與Serverless最佳實踐從劍宗到氣宗  - 談AWS ECS與Serverless最佳實踐
從劍宗到氣宗 - 談AWS ECS與Serverless最佳實踐
Pahud Hsieh
 
Five Years of EC2 Distilled
Five Years of EC2 DistilledFive Years of EC2 Distilled
Five Years of EC2 Distilled
Grig Gheorghiu
 

What's hot (20)

Real World Rails Deployment
Real World Rails DeploymentReal World Rails Deployment
Real World Rails Deployment
 
Greetings from AWS User Group Taiwan
Greetings from AWS User Group TaiwanGreetings from AWS User Group Taiwan
Greetings from AWS User Group Taiwan
 
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
 
Container management with docker & kubernetes
Container management with docker & kubernetesContainer management with docker & kubernetes
Container management with docker & kubernetes
 
Modernizing DevOps
Modernizing DevOpsModernizing DevOps
Modernizing DevOps
 
Deep Dive into AWS ECS and Spot Instances at Scale
Deep Dive into AWS ECS and Spot Instances at ScaleDeep Dive into AWS ECS and Spot Instances at Scale
Deep Dive into AWS ECS and Spot Instances at Scale
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Dcpl cloud computing amazon fail
Dcpl cloud computing amazon failDcpl cloud computing amazon fail
Dcpl cloud computing amazon fail
 
AWS for Start-ups - Case Study - PeoplePerHour
AWS for Start-ups - Case Study - PeoplePerHour AWS for Start-ups - Case Study - PeoplePerHour
AWS for Start-ups - Case Study - PeoplePerHour
 
Aws developer meetup 24 feb-18 noida
Aws developer meetup 24 feb-18 noidaAws developer meetup 24 feb-18 noida
Aws developer meetup 24 feb-18 noida
 
IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...
IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...
IT Talk «Microservices & Serverless Architectures», Alexander Chichenin (Solu...
 
AWS at Childrens in the BBC
AWS at Childrens in the BBCAWS at Childrens in the BBC
AWS at Childrens in the BBC
 
Scaling micro-services Architecture on AWS
Scaling micro-services Architecture on AWSScaling micro-services Architecture on AWS
Scaling micro-services Architecture on AWS
 
Moving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScaleMoving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScale
 
Meetup #3: Migrate a fast scale system to AWS
Meetup #3: Migrate a fast scale system to AWSMeetup #3: Migrate a fast scale system to AWS
Meetup #3: Migrate a fast scale system to AWS
 
Resource Management in the Enterprise Data Center
Resource Management in the Enterprise Data CenterResource Management in the Enterprise Data Center
Resource Management in the Enterprise Data Center
 
A brief introduction to CloudFormation
A brief introduction to CloudFormationA brief introduction to CloudFormation
A brief introduction to CloudFormation
 
Active Cloud DB at CloudComp '10
Active Cloud DB at CloudComp '10Active Cloud DB at CloudComp '10
Active Cloud DB at CloudComp '10
 
從劍宗到氣宗 - 談AWS ECS與Serverless最佳實踐
從劍宗到氣宗  - 談AWS ECS與Serverless最佳實踐從劍宗到氣宗  - 談AWS ECS與Serverless最佳實踐
從劍宗到氣宗 - 談AWS ECS與Serverless最佳實踐
 
Five Years of EC2 Distilled
Five Years of EC2 DistilledFive Years of EC2 Distilled
Five Years of EC2 Distilled
 

Viewers also liked

Actividadde aprendizaje8
Actividadde aprendizaje8Actividadde aprendizaje8
Actividadde aprendizaje8
jesus pintado
 
printing brochure SS
printing brochure SSprinting brochure SS
printing brochure SS
Dall'Antonia Jewellery
 
Examen final word
Examen final wordExamen final word
Examen final word
jesus pintado
 
Το κοινό επενδύει στους διαδρόμους γυμναστικής | bbclub.gr
Το κοινό επενδύει στους διαδρόμους γυμναστικής | bbclub.grΤο κοινό επενδύει στους διαδρόμους γυμναστικής | bbclub.gr
Το κοινό επενδύει στους διαδρόμους γυμναστικής | bbclub.gr
Bodybuilding Club
 
print brochure AW
print brochure AWprint brochure AW
print brochure AW
Dall'Antonia Jewellery
 
Bone physiology & regulation of calcium metabolism
Bone physiology & regulation of calcium metabolismBone physiology & regulation of calcium metabolism
Bone physiology & regulation of calcium metabolism
Mohan Phaneendra Akana
 
Michael E Burns Resume
Michael E Burns ResumeMichael E Burns Resume
Michael E Burns Resume
michael burns
 
Top 8 academic registrar resume samples
Top 8 academic registrar resume samplesTop 8 academic registrar resume samples
Top 8 academic registrar resume samples
AnnettLouisan678
 
Top 8 administrative receptionist resume samples
Top 8 administrative receptionist resume samplesTop 8 administrative receptionist resume samples
Top 8 administrative receptionist resume samples
AnnettLouisan678
 
Top 8 bank teller supervisor resume samples
Top 8 bank teller supervisor resume samplesTop 8 bank teller supervisor resume samples
Top 8 bank teller supervisor resume samples
AnnettLouisan678
 
Top 8 beauty salon receptionist resume samples
Top 8 beauty salon receptionist resume samplesTop 8 beauty salon receptionist resume samples
Top 8 beauty salon receptionist resume samples
AnnettLouisan678
 
Top 8 agriculture teacher resume samples
Top 8 agriculture teacher resume samplesTop 8 agriculture teacher resume samples
Top 8 agriculture teacher resume samples
AnnettLouisan678
 

Viewers also liked (12)

Actividadde aprendizaje8
Actividadde aprendizaje8Actividadde aprendizaje8
Actividadde aprendizaje8
 
printing brochure SS
printing brochure SSprinting brochure SS
printing brochure SS
 
Examen final word
Examen final wordExamen final word
Examen final word
 
Το κοινό επενδύει στους διαδρόμους γυμναστικής | bbclub.gr
Το κοινό επενδύει στους διαδρόμους γυμναστικής | bbclub.grΤο κοινό επενδύει στους διαδρόμους γυμναστικής | bbclub.gr
Το κοινό επενδύει στους διαδρόμους γυμναστικής | bbclub.gr
 
print brochure AW
print brochure AWprint brochure AW
print brochure AW
 
Bone physiology & regulation of calcium metabolism
Bone physiology & regulation of calcium metabolismBone physiology & regulation of calcium metabolism
Bone physiology & regulation of calcium metabolism
 
Michael E Burns Resume
Michael E Burns ResumeMichael E Burns Resume
Michael E Burns Resume
 
Top 8 academic registrar resume samples
Top 8 academic registrar resume samplesTop 8 academic registrar resume samples
Top 8 academic registrar resume samples
 
Top 8 administrative receptionist resume samples
Top 8 administrative receptionist resume samplesTop 8 administrative receptionist resume samples
Top 8 administrative receptionist resume samples
 
Top 8 bank teller supervisor resume samples
Top 8 bank teller supervisor resume samplesTop 8 bank teller supervisor resume samples
Top 8 bank teller supervisor resume samples
 
Top 8 beauty salon receptionist resume samples
Top 8 beauty salon receptionist resume samplesTop 8 beauty salon receptionist resume samples
Top 8 beauty salon receptionist resume samples
 
Top 8 agriculture teacher resume samples
Top 8 agriculture teacher resume samplesTop 8 agriculture teacher resume samples
Top 8 agriculture teacher resume samples
 

Similar to Building a PaaS with Docker and AWS

Building a PaaS with Docker and AWS
Building a PaaS with Docker and AWSBuilding a PaaS with Docker and AWS
Building a PaaS with Docker and AWS
Amazon Web Services
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
Karthik Gaekwad
 
(DVO308) Docker & ECS in Production: How We Migrated Our Infrastructure from ...
(DVO308) Docker & ECS in Production: How We Migrated Our Infrastructure from ...(DVO308) Docker & ECS in Production: How We Migrated Our Infrastructure from ...
(DVO308) Docker & ECS in Production: How We Migrated Our Infrastructure from ...
Amazon Web Services
 
Chicago Microservices Integration Talk
Chicago Microservices Integration TalkChicago Microservices Integration Talk
Chicago Microservices Integration Talk
Christian Posta
 
Integration in the Age of DevOps
Integration in the Age of DevOpsIntegration in the Age of DevOps
Integration in the Age of DevOps
Brian Ashburn
 
Containers and Docker
Containers and DockerContainers and Docker
Containers and Docker
Damian T. Gordon
 
Container Conf 2017: Rancher Kubernetes
Container Conf 2017: Rancher KubernetesContainer Conf 2017: Rancher Kubernetes
Container Conf 2017: Rancher Kubernetes
Vishal Biyani
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experience
Alex Tumanoff
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experience
Igor Anishchenko
 
Microservices and Best Practices
Microservices and Best Practices Microservices and Best Practices
Microservices and Best Practices
Weaveworks
 
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
IndicThreads
 
NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013
aspyker
 
Easy Docker Deployments with Mesosphere DCOS on Azure
Easy Docker Deployments with Mesosphere DCOS on AzureEasy Docker Deployments with Mesosphere DCOS on Azure
Easy Docker Deployments with Mesosphere DCOS on Azure
Mesosphere Inc.
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
Bert Poller
 
Handling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using DockerHandling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using Docker
Matomy
 
Getting Started with Containers on AWS: Collision 2018
Getting Started with Containers on AWS: Collision 2018Getting Started with Containers on AWS: Collision 2018
Getting Started with Containers on AWS: Collision 2018
Amazon Web Services
 
Cloud Foundry at Rakuten
Cloud Foundry at RakutenCloud Foundry at Rakuten
Cloud Foundry at Rakuten
Platform CF
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel Riding
Christian Posta
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
Web à Québec
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes matters
Platform9
 

Similar to Building a PaaS with Docker and AWS (20)

Building a PaaS with Docker and AWS
Building a PaaS with Docker and AWSBuilding a PaaS with Docker and AWS
Building a PaaS with Docker and AWS
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
 
(DVO308) Docker & ECS in Production: How We Migrated Our Infrastructure from ...
(DVO308) Docker & ECS in Production: How We Migrated Our Infrastructure from ...(DVO308) Docker & ECS in Production: How We Migrated Our Infrastructure from ...
(DVO308) Docker & ECS in Production: How We Migrated Our Infrastructure from ...
 
Chicago Microservices Integration Talk
Chicago Microservices Integration TalkChicago Microservices Integration Talk
Chicago Microservices Integration Talk
 
Integration in the Age of DevOps
Integration in the Age of DevOpsIntegration in the Age of DevOps
Integration in the Age of DevOps
 
Containers and Docker
Containers and DockerContainers and Docker
Containers and Docker
 
Container Conf 2017: Rancher Kubernetes
Container Conf 2017: Rancher KubernetesContainer Conf 2017: Rancher Kubernetes
Container Conf 2017: Rancher Kubernetes
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experience
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experience
 
Microservices and Best Practices
Microservices and Best Practices Microservices and Best Practices
Microservices and Best Practices
 
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
 
NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013
 
Easy Docker Deployments with Mesosphere DCOS on Azure
Easy Docker Deployments with Mesosphere DCOS on AzureEasy Docker Deployments with Mesosphere DCOS on Azure
Easy Docker Deployments with Mesosphere DCOS on Azure
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
 
Handling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using DockerHandling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using Docker
 
Getting Started with Containers on AWS: Collision 2018
Getting Started with Containers on AWS: Collision 2018Getting Started with Containers on AWS: Collision 2018
Getting Started with Containers on AWS: Collision 2018
 
Cloud Foundry at Rakuten
Cloud Foundry at RakutenCloud Foundry at Rakuten
Cloud Foundry at Rakuten
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel Riding
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes matters
 

Recently uploaded

DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
alowpalsadig
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
Paul Brebner
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
Zycus
 
Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
michniczscribd
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdfTheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
Ortus Solutions, Corp
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
kalichargn70th171
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
kalichargn70th171
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
Alina Yurenko
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
KrishnaveniMohan1
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
sandeepmenon62
 
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA ComplianceSecure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
ICS
 
What is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdfWhat is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdf
kalichargn70th171
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
campbellclarkson
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
Pedro J. Molina
 

Recently uploaded (20)

DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
 
Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdfTheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
 
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA ComplianceSecure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
 
What is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdfWhat is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdf
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
 

Building a PaaS with Docker and AWS

  • 1. ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved Empire Building a PaaS with Docker and AWS
  • 2. Agenda • A little background about why we decided to build an internal PaaS. • Introduction to Empire. • How we’re leveraging ECS as the backend. • Demo • Q&A
  • 3. Who am I • Eric Holmes • Infrastructure Engineer at Remind • I like building things for other developers • Work mostly with Go and Ruby • You can find my open source stuff at https://github.com/ejholmes
  • 4. What’s Remind? • Remind is a messaging platform for teachers, students and parents. • Chat/Announcements/Files • ~25 million users. ~350,000 new users per day during BTS • ~5 million messages per day. • ~50 employees. ~30 engineers.
  • 6. Started as a monorail
  • 8. Broke apart the monolith • Sidekiq queues were IO bound and constantly backed up during BTS • Message delivery workers were tightly coupled to the rest of the application. Difficult to scale out horizontally • Database would need to be sharded • Started breaking the monolith apart into loosely coupled services. • Now have ~50 production services
  • 9. Heroku • Entirely hosted on Heroku • Heroku has been awesome; never needed an ops team. • Allowed us to focus on building product.
  • 10. But we ran into issues... • “Internal” micro-services need to be exposed publicly. • Databases need to be opened up to all traffic. • Little visibility into performance of hosts. • No control over the routing layer.
  • 11. What do we want? • Want to use AWS services. • Want to maintain operational simplicity. • Support 12 factor apps. http://12factor.net/ • Maintain shared patterns for deployment. Faster iteration and build + release cycles • No ops. • Decrease our surface area and only expose a single app publicly. • Robust and resilient to failure. Self-healing. • If we can, continue to use containers as a unit of deployment.
  • 12. Why containers? • Fast to build* • Let us isolate dependencies as a portable, easy- to-distribute package. • Allow us to create better development environments with more dev/prod parity. • Limit the number of moving parts when we deploy. • Better resource utilization and cost management
  • 13. We’re not the first company to want a PaaS • Netflix - Asgard • SoundCloud - Bazooka • Every other company in our investor’s portfolio...
  • 14. Something we can re-use? • Flynn –Alpha –Undergoing many architectural changes –Custom load balancer • Deis –More than it needed to be –Nobody using it successfully in production (that we knew of)
  • 15. Empire was born • Initially started as a management layer on top of CoreOS + fleet. • Load balancing via nginx configured through confd + etcd. • Unit of deployment was Docker containers • Implemented a subset of the Heroku API
  • 16. Therein lies the rub... • Fleet initially worked well, until we started testing failure modes. • Fleet had a lot of bugs • etcd was fragile • We needed resilience and stability • We didn’t want to run and operate our own clustering.
  • 17. ECS becomes GA • ECS became GA while we were looking for an alternative scheduler. • Looked promising to serve as the scheduling backend.
  • 18. What is ECS? • Pools hosts together as a single compute resource. • Provides a set of APIs for placing tasks on machines • Scheduler supports “services” for scaling tasks horizontally and maintaining desired state. • Services integrate with ELB for connection draining, zero downtime, and healthchecks.
  • 19. ECS Components • Container Instance • ECS Agent • ECS Scheduler
  • 20. ECS Resources • Task Definition • Service • Task • Cluster
  • 21. ECS for Empire • Solid set of primitives to serve as the scheduling backend • Managed service • Failure modes behaved as we expected them to • ELB integration allowed us to remove custom routing layer • Service discovery via DNS
  • 22. What is Empire? • Open source internal PaaS for micro-services • A layer of usability on top of ECS for 12 factor apps • Single binary. Minimal deps. Easy to run. • Provides an API and CLI to create apps, deploy docker images, update configuration, run one off tasks etc. • Allows you to use Procfiles to build multiple ECS services
  • 23. Is it ready for production? • Running ~15 production services within ECS managed via Empire for a little over a month • Empire is hands off after you’ve deployed. AWS services take over • Moving directly onto EC2 showed huge performance improvements for services
  • 24. Demo
  • 25. What does Empire not do? • Bring your own logging and metrics (soon?) • It doesn’t handle building your Docker images • Doesn’t handle the creation of attached resources like Databases
  • 26. Things to keep an eye on • http://www.convox.com/
  • 27. Thank you • GH: @ejholmes • Twitter: @vesirin • https://github.com/remind101/empire • https://github.com/ejholmes/empire-demo • http://12factor.net/