docker deployments - at scale and in production

12
Docker Deployments At Scale and In Production Karl Matthias Lead Site Reliability Engineer Friday, March 13, 15

Upload: karl-matthias

Post on 25-Jul-2015

210 views

Category:

Internet


2 download

TRANSCRIPT

Page 1: Docker Deployments - At Scale and in Production

Docker DeploymentsAt Scale and In Production

Karl MatthiasLead Site Reliability Engineer

Friday, March 13, 15

Page 2: Docker Deployments - At Scale and in Production

Where We Came From

About 5 applications made up the whole site

Server pool grew but didn’t drastically change

Deployment tooling is all hand-crafted

1-2 deployment specialists on each team

FAIRLY STABLE, TRADITIONAL SETUP

Friday, March 13, 15

Page 3: Docker Deployments - At Scale and in Production

Where We Were GoingShipping a large new product that would double server count

SOA: Break up those monolithic applications into ~25 new services

Go from 1-2 deploys a day to up to 1 deploy per day per service

Double the number of developers each year

ORGANIZATIONAL CHANGES

Friday, March 13, 15

Page 4: Docker Deployments - At Scale and in Production

Fix Deployment

Deployment was the riskiest part of the new era

Only worry about stateless apps for right now

Define some application standards

Then fix the process

HIGHEST RISK

Friday, March 13, 15

Page 5: Docker Deployments - At Scale and in Production

Traditional DeploymentMIGHT BE FAMILIAR

Friday, March 13, 15

Page 6: Docker Deployments - At Scale and in Production

Docker DeploymentONE HANDOFF

Friday, March 13, 15

Page 7: Docker Deployments - At Scale and in Production

Clean separation between development and operations concerns

Supports heterogeneous app languages

Build one set of reliable deployment tools

Discover dependencies and conflicts in testing

Ship exactly what you tested

Keep configuration out of the application repository

Why Docker?

Friday, March 13, 15

Page 8: Docker Deployments - At Scale and in Production

Repeatable Deployments

Rolling, zero-down-time deploys

Any ops engineer can deploy any app

Configuration is not in the application repo

CENTURION

Friday, March 13, 15

Page 9: Docker Deployments - At Scale and in Production

Taking it to Production

Repeatable deployments: Centurion

Service Discovery: SmartStack (Airbnb) on Apache Zookeeper

Visualization: Bosun (name likely to change)

Monitoring: Initially Nagios and our check_docker, increasingly customized tooling

THE WHOLE PACKAGE

Friday, March 13, 15

Page 10: Docker Deployments - At Scale and in Production

Bosun is our visualization framework (evolving to do discovery)

It just finds new nodes and services

Gossip-based so it scales well

Works in development with no infrastructure

See all the instances of a service on all hosts

What’s Running?SEE THE CLUSTER

Friday, March 13, 15

Page 11: Docker Deployments - At Scale and in Production

The Future

Centurion to deploy into Mesos/Marathon

Discovery through gossip-based Bosun (in progress)

Dynamic scheduling of hosts by Marathon

Dynamic monitoring from Bosun data

WHERE TO FROM HERE?

Friday, March 13, 15

Page 12: Docker Deployments - At Scale and in Production

Links

@relistan - Karl Matthias

Docker Book: http://goo.gl/AM943M

https://github.com/newrelic/centurion

https://github.com/newrelic/check_docker

https://github.com/newrelic/go_nagios

Friday, March 13, 15