Slide 1

Slide 1 text

Docker Usage Patterns No Hype, Just Data Docker Meetup Palo Alto
 Nov 3, 2015 Ilan Rabinovitch Director, Community
 Datadog

Slide 2

Slide 2 text

About Me • Long time Datadog user. • Prior to Datadog built automation and monitoring tooling at Ooyala and Edmunds.com
 • Love Community Events
 SCALE and Texas Linux Fest DevOpsDay LA DevOpsDay Silicon Valley Ilan Rabinovitch
 Datadog

Slide 3

Slide 3 text

DevOpsDays Silicon Valley • Nov 6-7, 2015 • Computer History Museum • Presentations, Open Spaces • Promo Code DOCKR for 20% off! • More info on devopsdays.org

Slide 4

Slide 4 text

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! (Remote, NY, Boston, Paris)

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

Monitor Everything Culture Automation Metrics Sharing Damon Edwards and John Willis DevOpsDay LA

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Why so much Docker?

Slide 9

Slide 9 text

Avoid Dependency Hell

Slide 10

Slide 10 text

Who is running Docker today? Docker Adoption

Slide 11

Slide 11 text

What about in production? Docker Adoption

Slide 12

Slide 12 text

Wheres the data? Docker Adoption

Slide 13

Slide 13 text

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. Docker Adoption

Slide 14

Slide 14 text

Turns out you aren’t alone! Docker Adoption

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Fact 1: Docker Adoption Up 5x in 1 Year

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

So who is adopting Docker?

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Fact 3: Larger Companies Are the Early Adopters!

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

So what are folks running?

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

How densely are we packing our containers?

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

Fact 8: VMs Live 4x Longer Than Containers

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Operational Complexity • Average containers per host: N (N=4, 10/2015) • Instances live about 4x the length of their containers • 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

Slide 37

Slide 37 text

Operational Complexity: Scale 100 instances 400 containers

Slide 38

Slide 38 text

Operational Complexity: Scale 160 metrics per host 640 metrics per host Assuming 4 containers per host

Slide 39

Slide 39 text

Operational Complexity: Scale 100 instances 64,000 metrics Assuming 4 containers per host

Slide 40

Slide 40 text

Operational Complexity: Velocity

Slide 41

Slide 41 text

So what does that mean for monitoring and management?

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

Monitoring Needs and Pains • Avoid Static config files tracking dynamic infrastructure.

Slide 47

Slide 47 text

Monitoring Needs and Pains: Static vs Dynamic • Avoid Static config files tracking dynamic infrastructure. 
 Configuration management is awesome, but….

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

Monitoring Needs and Pains: Host Centric vs Service Centric

Slide 50

Slide 50 text

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.

Slide 51

Slide 51 text

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.

Slide 52

Slide 52 text

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.

Slide 53

Slide 53 text

Collecting Docker Metrics

Slide 54

Slide 54 text

Collecting Docker Metrics: Pseudo Files • Access via sysfs in /sys/fs/cgroup or /cgroup • By default do not require root access. • Fast and light weight • Limited I/O and Network metrics.

Slide 55

Slide 55 text

Collecting Docker Metrics: stats • Continuous live stream of basic CPU, memory, & network metrics. • Available via API in JSON (see unix:///var/run/docker.sock) • At least version 1.5.0 of Docker (released Feb 2015)

Slide 56

Slide 56 text

Collecting Docker Metrics: stats api • Similar to stats command provides a stream of metrics • More details. • Data is returned in JSON (see unix:///var/run/docker.sock)

Slide 57

Slide 57 text

No content

Slide 58

Slide 58 text

Collecting Docker Metrics: Summary CPU METRICS MEMORY METRICS I/O METRICS NETWORK METRICS pseudo-files Yes Yes Some Yes, in 1.6.1+ stats command Basic Basic No Basic API Yes Yes Some Yes

Slide 59

Slide 59 text

Appendix A: Monitoring 101 Crash Course More at: http://goo.gl/t1Rgcg

Slide 60

Slide 60 text

Monitoring 101: Categorize Your Metrics More at: http://goo.gl/t1Rgcg

Slide 61

Slide 61 text

Monitoring 101: Focus on symptoms More at: http://goo.gl/t1Rgcg

Slide 62

Slide 62 text

Recurse until you find root cause. More at: http://goo.gl/t1Rgcg

Slide 63

Slide 63 text

Cloud-Scale Monitoring Monitoring that tracks your dynamic infrastructure.

Slide 64

Slide 64 text

DASHBOARDS Build Real-Time Interactive Dashboards CORRELATION Search And Correlate Metrics And Events See It All In One Place Your Servers, Your Clouds, Your Metrics, Your Apps, Your team. Together.

Slide 65

Slide 65 text

COLLABORATION Share What You Saw, Write What You Did METRIC ALERTS Get Alerted On Critical Issues DEVELOPER API Instrument Your Apps, Write New Integrations See It All In One Place Your Servers, Your Clouds, Your Metrics, Your Apps, Your team. Together.

Slide 66

Slide 66 text

Integrations Datadog gathers performance data from all your application components.