docker deployments: powerful for developers, painless for ops (dockercon 2014)

14
Docker Deployments Powerful for Developers, Painless for Ops Thursday, June 12, 14

Upload: relistan

Post on 29-Aug-2014

289 views

Category:

Technology


1 download

DESCRIPTION

New Relic has had production deployments on Docker since version 0.7. We've built tooling to make mass deployments easy. Here we talk about our experience and the simple approach we've taken to deploying with Docker. We also open-sourced our in-house tools. http://github.com/newrelic/centurion http://github.com/newrelic/go_nagios http://github.com/newrelic/check_docker

TRANSCRIPT

Page 1: Docker Deployments: Powerful for Developers, Painless for Ops (DockerCon 2014)

Docker DeploymentsPowerful for Developers, Painless for Ops

Thursday, June 12, 14

Page 2: Docker Deployments: Powerful for Developers, Painless for Ops (DockerCon 2014)

Zero to Liftoff

Had No Docker in Production

Launched our newest major product (Insights) on it in February

Launching several new apps each month

HTTP://WWW.SPACE.COM/14720-MUOS-1-SATELLITE-LAUNCHES-ATLAS-5-ROCKET.HTML

Thursday, June 12, 14

Page 3: Docker Deployments: Powerful for Developers, Painless for Ops (DockerCon 2014)

Impending Dooooom

5 stable apps over several years, with little churn

Dev teams are doing their own ops but can’t have access to everything

Everyone has access to all DB secrets

Deployment tooling is all hand-crafted (with a bird on it)

WE COULDN’T SCALE THE STATUS QUO

Thursday, June 12, 14

Page 4: Docker Deployments: Powerful for Developers, Painless for Ops (DockerCon 2014)

MOAR Challenge

We’re doubling developer count every year

SOA: Adding up to 30 services in next 12 months

Early part of the year we launched major product: Insights

Increasingly heterogeneous apps

ORGANIZATIONAL CHANGES

Thursday, June 12, 14

Page 5: Docker Deployments: Powerful for Developers, Painless for Ops (DockerCon 2014)

The Simplest Thing

PaaS would be great, but doesn’t fix our immediate need

Solve deployment problem first, then logging, then discovery and dynamic configuration

Start with standard web apps, not high volume data apps: do the easiest things first

THAT COULD POSSIBLY WORK

Thursday, June 12, 14

Page 6: Docker Deployments: Powerful for Developers, Painless for Ops (DockerCon 2014)

Separate builds from deploys

Hand built docker files at first, then automated configuration

Deployment via in-house tool (Centurion)

Health check end point, configs via ENV vars

What We DidAND WHY

Thursday, June 12, 14

Page 7: Docker Deployments: Powerful for Developers, Painless for Ops (DockerCon 2014)

Builds based on standard base layers

Tool for automatic docker files (Shipright)

Retained Dockerfile flexibility

Lowering The BarAS IN HIGH JUMP NOT AS IN LIMBO

Thursday, June 12, 14

Page 8: Docker Deployments: Powerful for Developers, Painless for Ops (DockerCon 2014)

Centurion

Rake application with tasks and dependencies

Talk to a fleet of Docker servers at once

Does rolling deployment

Guarantees run environment

Extensible

CONTROLLED DEPLOYMENTS WITH DOCKER

Thursday, June 12, 14

Page 9: Docker Deployments: Powerful for Developers, Painless for Ops (DockerCon 2014)

DEMO

Thursday, June 12, 14

Page 10: Docker Deployments: Powerful for Developers, Painless for Ops (DockerCon 2014)

Productionize That Thing

Monitoring (check_docker)

Nagios

New Relic

MONITORING OH-MY

Thursday, June 12, 14

Page 11: Docker Deployments: Powerful for Developers, Painless for Ops (DockerCon 2014)

Configuration is in git (etcd soon)

Builds and deployments via jenkins

Debugging via ssh, Papertrail. (log routing soon)

Developers update dependencies at will

Test, staging, integration and production are identical

Operating the MachineWHAT WE DO NOW

Thursday, June 12, 14

Page 12: Docker Deployments: Powerful for Developers, Painless for Ops (DockerCon 2014)

Developers Love It

We expected resistance, instead we got enthusiasm.

Telling developers to pull request against your puppet repo is a world of hurt.

At a recent SOA kickoff devs were able to get things up an running in hours instead of a week.

AND WE WERE SURPRISED?

Thursday, June 12, 14

Page 13: Docker Deployments: Powerful for Developers, Painless for Ops (DockerCon 2014)

A bright, shining future

Centralized configuration via etcd

Discovery through etcd, too

Dynamic allocation of hosts by Centurion

Dynamic Nagios, load balancing configs

Containerized high volume apps and databases.

WHERE TO FROM HERE?

Thursday, June 12, 14

Page 14: Docker Deployments: Powerful for Developers, Painless for Ops (DockerCon 2014)

Links

@poeslacker - Paul Showalter

@relistan - Karl Matthias

https://github.com/newrelic/check_docker

https://github.com/newrelic/go_nagios

https://github.com/newrelic/centurion

Thursday, June 12, 14