Top Banner
Docker Usage Patterns No Hype, Just Data Docker Meetup Paris Nov 10, 2015 Benjamin Fernandes Software Engineer — Datadog @LotharSee
51

Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Jan 23, 2018

Download

Software

Datadog
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Docker Usage PatternsNo Hype, Just Data

Docker Meetup ParisNov 10, 2015

Benjamin Fernandes Software Engineer — Datadog@LotharSee

Page 2: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

About Me

• MS, CS degree from Ecole Centrale ParisFormer chairman at VIA Centrale Réseaux

• Joined Datadog 3 years ago

• Worked on Datadog’s integration with Docker and its ecosystem

Benjamin FernandesSoftware Engineer

Datadog @LotharSee

Page 3: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Quick Overview of Datadog Datadog gathers performance data from all your application and infrastructure components.

• Monitoring for modern applications1. Dynamic Infrastructure2. 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)

Page 4: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Monitor Everything Datadog gathers performance data from all your application components.

Page 5: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Why so much Docker?

Page 6: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Avoid Dependency Hell

Page 7: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Who is running Docker today?

Docker Adoption

Page 8: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

What about in production?

Docker Adoption

Page 9: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

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

Page 10: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Turns out you aren’t alone!

Docker Adoption

Source: http://dtdg.co/dckr-adopt

Page 11: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Fact 1: Docker Adoption Up 5x in 1 Year

Page 12: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Docker Adoption Growth We’ve see 5x increase of Docker adoption over the last year.

Page 13: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Fact 2: Docker now runs on 6% of hosts we monitor

Page 14: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015
Page 15: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Fact 3: Larger Companies Are the Early Adopters!

Page 16: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015
Page 17: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Fact 4: 2/3 of Companies That Try Docker Adopt It

Page 18: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015
Page 19: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Fact 5: Users 3x the Number of Containers They Use in 5 Months

Page 20: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015
Page 21: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Fact 6: Most Widely Used Images Are Registry, NGINX, and Redis

Page 22: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015
Page 23: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Fact 7: Docker Hosts Often Run Four Containers at a Time

Page 24: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Fact 8: VMs Live 4x Longer Than Containers

Page 25: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015
Page 26: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Bonus fact. Thanks The Onion.

Page 27: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015
Page 28: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

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

Page 29: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Operational Complexity: Scale

100instances

400containers

Page 30: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Operational Complexity: Scale

160metrics per host

640metrics per host

Assuming 4 containers per host

Page 31: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Operational Complexity: Scale

100instances

64,000metrics

Assuming 4 containers per host

Page 32: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Operational Complexity: Velocity

Page 33: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

So what does that mean for monitoring and management?

Page 34: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015
Page 35: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Monitoring Needs and Pains

• Avoid Static config files tracking dynamic infrastructure.

Page 36: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Monitoring Needs and Pains

• Avoid Static config files tracking dynamic infrastructure. • Avoid a host centric view. Focus on service level.

Page 37: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Monitoring Needs and Pains: Host Centric vs Service Centric

Page 38: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

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.

Page 39: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

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.

Page 40: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

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.

Page 41: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Collecting Docker Metrics

Page 42: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

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)

Page 43: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Collecting Docker Metrics: stats api

• Stream of JSON, more detailed

Page 44: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

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

Page 45: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015
Page 46: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

What to do with that?

Page 47: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Appendix A:

Monitoring 101 Crash Course

More at: http://goo.gl/t1Rgcg

Page 48: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Monitoring 101: Categorize Your Metrics

More at: http://goo.gl/t1Rgcg

Page 49: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Monitoring 101: Focus on symptoms

More at: http://goo.gl/t1Rgcg

Page 50: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Recurse until you find root cause.

More at: http://goo.gl/t1Rgcg

Page 51: Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015

Woof!