SlideShare ist ein Scribd-Unternehmen logo
1 von 27
©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 Amazon EC2 Container
Service (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.
Amazon EC2 Container Service (ECS) becomes GA
• Amazon ECS became GA while we were looking
for an alternative scheduler.
• Looked promising to serve as the scheduling
backend.
What is Amazon 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.
Amazon ECS Components
• Container Instance
• Amazon ECS Agent
• Amazon ECS Scheduler
Amazon ECS Resources
• Task Definition
• Service
• Task
• Cluster
Amazon 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 Amazon 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
Amazon ECS services
Is it ready for production?
• Running ~15 production services within Amazon
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/

Weitere ähnliche Inhalte

Was ist angesagt?

Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022HostedbyConfluent
 
High Availability in Microsoft Azure
High Availability in Microsoft AzureHigh Availability in Microsoft Azure
High Availability in Microsoft AzureKrunal Trivedi
 
Introduction to Azure
Introduction to AzureIntroduction to Azure
Introduction to AzureRobert Crane
 
Azure IAAS architecture with High Availability for beginners and developers -...
Azure IAAS architecture with High Availability for beginners and developers -...Azure IAAS architecture with High Availability for beginners and developers -...
Azure IAAS architecture with High Availability for beginners and developers -...Malleswar Reddy
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
Migrating Data and Databases to Azure
Migrating Data and Databases to AzureMigrating Data and Databases to Azure
Migrating Data and Databases to AzureKaren Lopez
 
Microsoft Azure - Introduction
Microsoft Azure - IntroductionMicrosoft Azure - Introduction
Microsoft Azure - IntroductionPranav Ainavolu
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservicesAnil Allewar
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREAraf Karsh Hamid
 
Microsoft Windows Server 2022 Overview
Microsoft Windows Server 2022 OverviewMicrosoft Windows Server 2022 Overview
Microsoft Windows Server 2022 OverviewDavid J Rosenthal
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...Yevgeniy Brikman
 
IBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and DockerIBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and DockerDavid Currie
 
Azure fundamentals
Azure   fundamentalsAzure   fundamentals
Azure fundamentalsRaju Kumar
 
Virtualization Vs. Containers
Virtualization Vs. ContainersVirtualization Vs. Containers
Virtualization Vs. Containersactualtechmedia
 
Introduction to Microsoft Azure
Introduction to Microsoft AzureIntroduction to Microsoft Azure
Introduction to Microsoft AzureGuy Barrette
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017Docker, Inc.
 
Microsoft Azure Platform-as-a-Service (PaaS)
Microsoft Azure Platform-as-a-Service (PaaS)Microsoft Azure Platform-as-a-Service (PaaS)
Microsoft Azure Platform-as-a-Service (PaaS)Chris Dufour
 

Was ist angesagt? (20)

Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
 
High Availability in Microsoft Azure
High Availability in Microsoft AzureHigh Availability in Microsoft Azure
High Availability in Microsoft Azure
 
Introduction to Azure
Introduction to AzureIntroduction to Azure
Introduction to Azure
 
Azure 101
Azure 101Azure 101
Azure 101
 
Azure IAAS architecture with High Availability for beginners and developers -...
Azure IAAS architecture with High Availability for beginners and developers -...Azure IAAS architecture with High Availability for beginners and developers -...
Azure IAAS architecture with High Availability for beginners and developers -...
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Springboot Microservices
Springboot MicroservicesSpringboot Microservices
Springboot Microservices
 
Migrating Data and Databases to Azure
Migrating Data and Databases to AzureMigrating Data and Databases to Azure
Migrating Data and Databases to Azure
 
Microsoft Azure - Introduction
Microsoft Azure - IntroductionMicrosoft Azure - Introduction
Microsoft Azure - Introduction
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
Microsoft Windows Server 2022 Overview
Microsoft Windows Server 2022 OverviewMicrosoft Windows Server 2022 Overview
Microsoft Windows Server 2022 Overview
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
 
IBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and DockerIBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and Docker
 
Azure fundamentals
Azure   fundamentalsAzure   fundamentals
Azure fundamentals
 
Virtualization Vs. Containers
Virtualization Vs. ContainersVirtualization Vs. Containers
Virtualization Vs. Containers
 
Introduction to Microsoft Azure
Introduction to Microsoft AzureIntroduction to Microsoft Azure
Introduction to Microsoft Azure
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
Microsoft Azure Platform-as-a-Service (PaaS)
Microsoft Azure Platform-as-a-Service (PaaS)Microsoft Azure Platform-as-a-Service (PaaS)
Microsoft Azure Platform-as-a-Service (PaaS)
 

Andere mochten auch

Batch Processing with Amazon EC2 Container Service
Batch Processing with Amazon EC2 Container ServiceBatch Processing with Amazon EC2 Container Service
Batch Processing with Amazon EC2 Container ServiceAmazon Web Services
 
Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...
Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...
Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...Amazon Web Services
 
应用开发利器 IBM Bluemix平台云介绍
应用开发利器 IBM Bluemix平台云介绍应用开发利器 IBM Bluemix平台云介绍
应用开发利器 IBM Bluemix平台云介绍Hardway Hou
 
Iguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and MesosIguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and MesosColleen Lee
 
Scheduling Containers on Amazon ECS
Scheduling Containers on Amazon ECSScheduling Containers on Amazon ECS
Scheduling Containers on Amazon ECSAmazon Web Services
 
AWS Customer Presentation - SchoolofEverything
AWS Customer Presentation - SchoolofEverythingAWS Customer Presentation - SchoolofEverything
AWS Customer Presentation - SchoolofEverythingAmazon Web Services
 
Wakoopa Recommendations Engine on AWS
Wakoopa Recommendations Engine on AWSWakoopa Recommendations Engine on AWS
Wakoopa Recommendations Engine on AWSAmazon Web Services
 
AWS Customer Presentation - Cloud Made
AWS Customer Presentation - Cloud MadeAWS Customer Presentation - Cloud Made
AWS Customer Presentation - Cloud MadeAmazon Web Services
 
Spearstone DiskAgent and Amazon Web Services
Spearstone DiskAgent and Amazon Web ServicesSpearstone DiskAgent and Amazon Web Services
Spearstone DiskAgent and Amazon Web ServicesAmazon Web Services
 
AWS Customer Presentation - MGM
AWS Customer Presentation - MGM AWS Customer Presentation - MGM
AWS Customer Presentation - MGM Amazon Web Services
 
AWS Customer Presentation - family builder
AWS Customer Presentation -  family builderAWS Customer Presentation -  family builder
AWS Customer Presentation - family builderAmazon Web Services
 
AWS Customer Presentation-Costcutter
AWS Customer Presentation-CostcutterAWS Customer Presentation-Costcutter
AWS Customer Presentation-CostcutterAmazon Web Services
 
AWS Customer Presentation - Zoomii
AWS Customer Presentation - Zoomii AWS Customer Presentation - Zoomii
AWS Customer Presentation - Zoomii Amazon Web Services
 
AWS Customer Presentation-Servicetick
 AWS Customer Presentation-Servicetick  AWS Customer Presentation-Servicetick
AWS Customer Presentation-Servicetick Amazon Web Services
 
AWS Customer Presentation - Iloverewards
AWS Customer Presentation - IloverewardsAWS Customer Presentation - Iloverewards
AWS Customer Presentation - IloverewardsAmazon Web Services
 
Rebate Networks Gmbh - AWS Customer Presentation
Rebate Networks Gmbh - AWS Customer PresentationRebate Networks Gmbh - AWS Customer Presentation
Rebate Networks Gmbh - AWS Customer PresentationAmazon Web Services
 
AWS Customer Presentation - Melodeo
AWS Customer Presentation - MelodeoAWS Customer Presentation - Melodeo
AWS Customer Presentation - MelodeoAmazon Web Services
 
AWS Architecting for the Cloud - matt tavis
AWS Architecting for the Cloud - matt tavisAWS Architecting for the Cloud - matt tavis
AWS Architecting for the Cloud - matt tavisAmazon Web Services
 
Geocloud blue raster web mapping cloud deployment lessons from the field 201...
Geocloud blue raster web mapping cloud deployment  lessons from the field 201...Geocloud blue raster web mapping cloud deployment  lessons from the field 201...
Geocloud blue raster web mapping cloud deployment lessons from the field 201...Amazon Web Services
 

Andere mochten auch (20)

Batch Processing with Amazon EC2 Container Service
Batch Processing with Amazon EC2 Container ServiceBatch Processing with Amazon EC2 Container Service
Batch Processing with Amazon EC2 Container Service
 
Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...
Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...
Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...
 
应用开发利器 IBM Bluemix平台云介绍
应用开发利器 IBM Bluemix平台云介绍应用开发利器 IBM Bluemix平台云介绍
应用开发利器 IBM Bluemix平台云介绍
 
Iguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and MesosIguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and Mesos
 
Scheduling Containers on Amazon ECS
Scheduling Containers on Amazon ECSScheduling Containers on Amazon ECS
Scheduling Containers on Amazon ECS
 
AWS Customer Presentation - SchoolofEverything
AWS Customer Presentation - SchoolofEverythingAWS Customer Presentation - SchoolofEverything
AWS Customer Presentation - SchoolofEverything
 
Wakoopa Recommendations Engine on AWS
Wakoopa Recommendations Engine on AWSWakoopa Recommendations Engine on AWS
Wakoopa Recommendations Engine on AWS
 
AWS Customer Presentation - Cloud Made
AWS Customer Presentation - Cloud MadeAWS Customer Presentation - Cloud Made
AWS Customer Presentation - Cloud Made
 
Spearstone DiskAgent and Amazon Web Services
Spearstone DiskAgent and Amazon Web ServicesSpearstone DiskAgent and Amazon Web Services
Spearstone DiskAgent and Amazon Web Services
 
AWS Customer Presentation - MGM
AWS Customer Presentation - MGM AWS Customer Presentation - MGM
AWS Customer Presentation - MGM
 
Big Data Analytics
Big Data AnalyticsBig Data Analytics
Big Data Analytics
 
AWS Customer Presentation - family builder
AWS Customer Presentation -  family builderAWS Customer Presentation -  family builder
AWS Customer Presentation - family builder
 
AWS Customer Presentation-Costcutter
AWS Customer Presentation-CostcutterAWS Customer Presentation-Costcutter
AWS Customer Presentation-Costcutter
 
AWS Customer Presentation - Zoomii
AWS Customer Presentation - Zoomii AWS Customer Presentation - Zoomii
AWS Customer Presentation - Zoomii
 
AWS Customer Presentation-Servicetick
 AWS Customer Presentation-Servicetick  AWS Customer Presentation-Servicetick
AWS Customer Presentation-Servicetick
 
AWS Customer Presentation - Iloverewards
AWS Customer Presentation - IloverewardsAWS Customer Presentation - Iloverewards
AWS Customer Presentation - Iloverewards
 
Rebate Networks Gmbh - AWS Customer Presentation
Rebate Networks Gmbh - AWS Customer PresentationRebate Networks Gmbh - AWS Customer Presentation
Rebate Networks Gmbh - AWS Customer Presentation
 
AWS Customer Presentation - Melodeo
AWS Customer Presentation - MelodeoAWS Customer Presentation - Melodeo
AWS Customer Presentation - Melodeo
 
AWS Architecting for the Cloud - matt tavis
AWS Architecting for the Cloud - matt tavisAWS Architecting for the Cloud - matt tavis
AWS Architecting for the Cloud - matt tavis
 
Geocloud blue raster web mapping cloud deployment lessons from the field 201...
Geocloud blue raster web mapping cloud deployment  lessons from the field 201...Geocloud blue raster web mapping cloud deployment  lessons from the field 201...
Geocloud blue raster web mapping cloud deployment lessons from the field 201...
 

Ähnlich wie 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 AWSvesirin
 
(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
 
Journey towards serverless infrastructure
Journey towards serverless infrastructureJourney towards serverless infrastructure
Journey towards serverless infrastructureVille Seppänen
 
Chicago Microservices Integration Talk
Chicago Microservices Integration TalkChicago Microservices Integration Talk
Chicago Microservices Integration TalkChristian Posta
 
Containerize all the things!
Containerize all the things!Containerize all the things!
Containerize all the things!Mike Melusky
 
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 2018Amazon Web Services
 
NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013aspyker
 
Integration in the Age of DevOps
Integration in the Age of DevOpsIntegration in the Age of DevOps
Integration in the Age of DevOpsBrian Ashburn
 
Getting Started with Containers Using Amazon Lightsail (CMP353-R1) - AWS re:I...
Getting Started with Containers Using Amazon Lightsail (CMP353-R1) - AWS re:I...Getting Started with Containers Using Amazon Lightsail (CMP353-R1) - AWS re:I...
Getting Started with Containers Using Amazon Lightsail (CMP353-R1) - AWS re:I...Amazon Web Services
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experienceIgor Anishchenko
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experienceAlex Tumanoff
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSAWS Vietnam Community
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerAditya Konarde
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realistsKarthik Gaekwad
 
The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...Sébastien Portebois
 
Amazon ECS with Docker | AWS Public Sector Summit 2016
Amazon ECS with Docker | AWS Public Sector Summit 2016Amazon ECS with Docker | AWS Public Sector Summit 2016
Amazon ECS with Docker | AWS Public Sector Summit 2016Amazon Web Services
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel RidingChristian Posta
 

Ähnlich wie 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
 
(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 ...
 
Journey towards serverless infrastructure
Journey towards serverless infrastructureJourney towards serverless infrastructure
Journey towards serverless infrastructure
 
Chicago Microservices Integration Talk
Chicago Microservices Integration TalkChicago Microservices Integration Talk
Chicago Microservices Integration Talk
 
Containerize all the things!
Containerize all the things!Containerize all the things!
Containerize all the things!
 
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
 
NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013
 
Containers and Docker
Containers and DockerContainers and Docker
Containers and Docker
 
AWS Distilled
AWS DistilledAWS Distilled
AWS Distilled
 
Integration in the Age of DevOps
Integration in the Age of DevOpsIntegration in the Age of DevOps
Integration in the Age of DevOps
 
Getting Started with Containers Using Amazon Lightsail (CMP353-R1) - AWS re:I...
Getting Started with Containers Using Amazon Lightsail (CMP353-R1) - AWS re:I...Getting Started with Containers Using Amazon Lightsail (CMP353-R1) - AWS re:I...
Getting Started with Containers Using Amazon Lightsail (CMP353-R1) - AWS re:I...
 
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
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
 
The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...
 
Amazon ECS with Docker | AWS Public Sector Summit 2016
Amazon ECS with Docker | AWS Public Sector Summit 2016Amazon ECS with Docker | AWS Public Sector Summit 2016
Amazon ECS with Docker | AWS Public Sector Summit 2016
 
Spring in the Cloud
Spring in the CloudSpring in the Cloud
Spring in the Cloud
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel Riding
 

Mehr von Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Mehr von Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Kürzlich hochgeladen

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Kürzlich hochgeladen (20)

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

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 Amazon EC2 Container Service (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. Amazon EC2 Container Service (ECS) becomes GA • Amazon ECS became GA while we were looking for an alternative scheduler. • Looked promising to serve as the scheduling backend.
  • 18. What is Amazon 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. Amazon ECS Components • Container Instance • Amazon ECS Agent • Amazon ECS Scheduler
  • 20. Amazon ECS Resources • Task Definition • Service • Task • Cluster
  • 21. Amazon 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 Amazon 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 Amazon ECS services
  • 23. Is it ready for production? • Running ~15 production services within Amazon 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/