61
Making Developers Happier with Mesos, Docker and Marathon 1

Making Developers Happier with Mesos, Docker and Marathon

  • Upload
    john-d

  • View
    223

  • Download
    7

Embed Size (px)

Citation preview

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 ServicesHealthy Services

• Bad ActorsCustomizable Resources

• Static Deployment TopologiesEasy Scaling

• Explicit Service DiscoveryImplicit Service Discovery

• All Or Nothing DeploymentsCanary Deployments

The ProblemsSolutions

2015

2015

Questions?

60

2015

All images are copyright of their respective owners.