Making Developers Happier
with
Mesos, Docker and Marathon
1
2015
Architecture Trajectory
● Age of the Monolith (5 Years Ago)
○ Monolithic UI
○ Monolithic Backend
○ Unit and Manual Testing
○ Monthly Deployments
○ Infrastructure Monitoring
2015
Architecture Trajectory
● Age of the Service-Oriented Arch. (3 Years Ago)
○ Coarse Grained Services (Tomcat)
○ Unit and Service Level Testing
○ Hardware provisioned via Puppet
○ Weekly Deployments
○ Infrastructure Monitoring
○ Graphite Dashboards
2015
Architecture Trajectory
● Age of the Micro Architecture (1 Year Ago)
○ HTTP Microservices
○ Docker Managed
○ Unit, Functional Testing
○ On Demand Deployment
○ Infrastructure Monitoring
○ Application Monitoring
2015
Continuous Delivery @ Yodle
2015
Continuous Delivery @ Yodle
2015
The Problem(s)
• Unhealthy Services
• Bad Actors
• Static Deployment Topologies
• Explicit Service Discovery
• All Or Nothing Deployments

7
2015
The Solution - PaaS
• Platform as a Service
• You can focus on your application, not the
infrastructure
• We can focus on making the platform
resilient and self-healing
8
2015
Buzzword Bingo
9
201510
201511
201512
201513
201514
201515
2015
Qubit Bamboo
16
201517
201518
2015
2015
The Problem
• Unhealthy Services

• Extended service outages.
• If your services crashes you have to restart it.
• This leads to extended service outage windows as you
investigate or roll back.
20
2015
Healthy Services
21
2015
The Problem
• Bad Actors









• There’s nothing to prevent a service from consuming all the
resources on a box, starving it’s neighbors.
22
2015
Customizable Resources
23
2015
The Problem
• Static Deployment Topologies

• All your services have the same number of instances.
• If you want to scale, you need to add more machines.
24
2015
Easy Scaling
25
2015
2015
2015
The Problem
• Explicit Service Discovery

• Your application has to know where downstream services are.
• It’s explicit in the app, but it should be implicit in the plumbing.
• foo.services.prod.yodle.com, foo.services.qa.yodle.com
28
2015
Service Discovery
29
foo.service.yodle.com
2015
Service Discovery
30
2015
The Problem
• All or Nothing deployments

• Your app is deployed or not.
• If there are problems in production, you have to roll back.
• Deployment problems keep you up too late.
31
2015
Canary Deployments
32
201533
201534
201535
201536
2015
Canary Isolated:
Contact Service
2015
Canary Isolated:
Contact Service
2015
Canary Isolated:
Contact Service
201540
201541
201542
201543
2015
Cerebro
44
201545
201546
X-Canary-Isolated
Report Metrics
201547
X-Canary-Isolated
Report Metrics
201548
Report Results
2015
2015
Report Metrics
2015
2015
2015
201554
2015
2015
Qubit Bamboo
56
201557
2015
• Unhealthy Services

Healthy Services

• Bad Actors

Customizable Resources
• Static Deployment Topologies

Easy Scaling
• Explicit Service Discovery

Implicit Service Discovery
• All Or Nothing Deployments

Canary Deployments

The ProblemsSolutions
2015
2015
Questions?
60
2015
All images are copyright of their respective owners.

Making Developers Happier with Mesos, Docker and Marathon