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


Published on

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.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

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

  1. 1. Docker Deployments Powerful for Developers, Painless for Ops Thursday, June 12, 14
  2. 2. 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
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. 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 Did AND WHY Thursday, June 12, 14
  7. 7. Builds based on standard base layers Tool for automatic docker files (Shipright) Retained Dockerfile flexibility Lowering The Bar AS IN HIGH JUMP NOT AS IN LIMBO Thursday, June 12, 14
  8. 8. 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
  9. 9. DEMO Thursday, June 12, 14
  10. 10. Productionize That Thing Monitoring (check_docker) Nagios New Relic MONITORING OH-MY Thursday, June 12, 14
  11. 11. 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 Machine WHAT WE DO NOW Thursday, June 12, 14
  12. 12. 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
  13. 13. 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
  14. 14. Links @poeslacker - Paul Showalter @relistan - Karl Matthias Thursday, June 12, 14