Docker Deployments Powerful for Developers, Painless for Ops Thursday, June 12, 14
Aug 29, 2014
Docker DeploymentsPowerful for Developers, Painless for Ops
Thursday, June 12, 14
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
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
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
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
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
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
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
DEMO
Thursday, June 12, 14
Productionize That Thing
Monitoring (check_docker)
Nagios
New Relic
MONITORING OH-MY
Thursday, June 12, 14
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
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
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
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