Go through the result of our latest large-scale study about Docker usage in real environment. Analyze and see the impact for operations and monitoring.
1. Docker Usage Patterns
No Hype, Just Data
Docker Meetup Paris
Nov 10, 2015
Benjamin Fernandes
Software Engineer — Datadog
@LotharSee
2. About Me
• MS, CS degree from Ecole Centrale Paris
Former chairman at VIA Centrale Réseaux
• Joined Datadog 3 years ago
• Worked on Datadog’s integration with
Docker and its ecosystem
Benjamin Fernandes
Software Engineer
Datadog
@LotharSee
3. Quick Overview of Datadog
Datadog gathers performance data from all your application and infrastructure components.
• Monitoring for modern applications
1. Dynamic Infrastructure
2. Containers (Docker, ECS, Mesos, k8s, and more…)
3. Microservices
• Time series storage of metrics and events
• Trending, alerting and anomaly detection
!
• We’re hiring! (New York, Paris, Remote)
9. Adopter: the average number of containers running during
the month was at least 50% the number of distinct hosts run,
or there were at least as many distinct containers as distinct
hosts run during the month.
Dabbler: used Docker during the month, but did not reach the
“adopter” threshold.
Abandoner: a currently active company that used Docker in
the past, but hasn't used it at all in the last month.
Study from 7000 organizations.
Docker Adoption
10. Turns out you aren’t alone!
Docker Adoption
Source: http://dtdg.co/dckr-adopt
28. Operational Complexity
• Average containers per host: N (N=4, 10/2015)!
• N-times as many “hosts” to manage!
• Affects!
• provisioning: prep’ing & building containers!
• configuration: passing config to containers!
• orchestration: deciding where/when containers run!
• monitoring: making sure containers run properly
38. Monitoring Needs and Pains
• Avoid Static config files tracking dynamic infrastructure.
• Avoid a host centric view. Focus on service level.
• Use tags, labels, etc on your hosts and metrics to form queries.
39. Monitoring Needs and Pains: Query Based Monitoring
“Show me rate of HTTP 500 responses from nginx”
“… in region us-east-1 across all availability zones”
“… running my app version 2….”
• Use tags, labels, etc on your hosts and metrics to form queries.
• Pull in labels from your infrastructure whether EC2, Docker or your
scheduler.
• Ask questions that will ring true regardless of your scale that day.
40. Monitoring Needs and Pains
• Avoid Static config files tracking dynamic infrastructure.
• Avoid a host centric view. Focus on service level.
• Use tags, labels, etc on your hosts and metrics to form queries.
• Know your underlying tech. In this case Docker and how to pull
metrics from it.
42. Collecting Docker Metrics: stats
• Continuous live stream of basic CPU, memory, & network metrics.!
• At least version 1.5.0 of Docker (released Feb 2015)!
!
• docker stats --no-stream $(docker ps -q)
44. Collecting Docker Metrics: Pseudo Files
• If you want to do it manually!
!
• CPU/Mem metrics!
• Access via sysfs in /sys/fs/cgroup or /cgroup!
• By default do not require root access!
• Network metrics!
• /proc/$PID/net/dev!
• Disk IO metrics!
• /proc/$PID/io