SlideShare a Scribd company logo
© 2017 InfluxData. All rights reserved.1 © 2017 InfluxData. All rights reserved.1
An introduction to Docker and how to handle time series data in container orchestration
25 SEP 2017
Introduction to Docker & Monitoring
with InfluxData
© 2017 InfluxData. All rights reserved.2 © 2017 InfluxData. All rights reserved.2
Our Speakers Today
Gary Forghetti
Technical Alliance
Engineer
Gunnar Aasen
Partner Engineering
© 2017 InfluxData. All rights reserved.3 © 2017 InfluxData. All rights reserved.3
Agenda
¨Introduction to Docker, Images & Containers
¨Docker Compose & Swarm
¨What’s new in Docker 17.06
¨Understanding the time series problem
¨Introduction to InfluxData
¨Q & A
Deploying Applications with Docker
Gary Forghetti
Technical Alliance Engineer
Business Development
Docker, Inc.
● Overview of Docker
● Images and Containers
● docker-compose
● Docker Swarm
● What's new in Docker 17.06
Agenda
● Founded in 2013 as Linux developer tool.
● Docker solves the “works on my machine”
problem.
● Docker allows you to transform and modernize
your applications and infrastructure, and reduce
costs.
● Docker provides portability, agility and efficiency
and has built-in security.
● Docker can be run on physical hardware,
desktops, and on virtual machines in public or
private clouds.
Docker Overview
Docker is the world's leading software container platform.
● The Docker platform contains multiple products and
tools for developing, testing, deploying, and managing
applications packaged in containers.
● Docker technology focuses on convenience, ease of
use and enablement.
● Docker runs on Linux, macOS and Windows
● Docker Editions
○ Docker Community Edition (free, community
support)
○ Docker Enterprise Edition (subscription,
business day and business critical support)
● Docker Datacenter (container as a service platform)
○ Docker Universal Control Plane (management UI)
○ Docker Trusted Registry (image storage)
● Docker Datacenter is included with Docker EE
Standard and Advanced
Docker Overview
Docker is the world's leading software container platform.
Docker Images and Containers
● A Docker Image is a template which is used to build a running
Docker Container.
● It contains the application code, required binaries, libraries,
configuration files and metadata needed to run the application.
● Docker Images do not contain a full operating system.
○ No system kernel or kernel modules.
● Docker Images are stored and shared in registries.
○ Docker Hub (default), Docker Store, and private registries.
● Think of a Docker Image as a "container at rest".
Docker Images
Understanding Image Layers
● An image is a collection of files and some meta
data.
● Images are comprised of multiple layers.
● A layer is also just another image.
● Each image contains the software you want to
run.
● Every image contains a base layer.
● Docker uses a copy on write system.
● Layers are read only.
Docker Images
● Docker Containers are processes running
applications.
● Docker Containers are created from Docker
Images.
● Docker Containers are lightweight, standalone
and portable.
● Unlike virtual machines they do not contain a full
operating system.
● No system kernel or kernel modules.
● Docker Containers use the system kernel on the
host machine (Docker Node).
Docker Containers
Docker containers are based on open standards and run on all major Linux distributions, macOS,
Microsoft Windows, and on any infrastructure including VMs, bare-metal and in the cloud.
Comparing an application running on physical
hardware, on virtual machines and in Docker
Containers.
Limitations:
● Slow deployment times
● High costs
● Wasted resources
● Difficult to scale
● Difficult to migrate
● Vendor lock in
Application running on a Physical Server
One Application on One Physical Server
Benefits:
● Multiple containers can run on the same physical machine
or virtual machine.
● Containers run as isolated processes and share the system
resources CPU, Ram and Storage.
● Containers do not contain a full operating system, they all
share the same operating system kernel.
● Containers take up less space and start quicker.
● Smaller attack surface from a security perspective.
● Containers are easily scaled.
● Containers are portable.
Application running in a Docker Container
Docker Containers
Used together, Docker Containers and VMs provide a tremendous amount of flexibility to optimally
deploy and manage applications.
Benefits:
● Better resource pooling
● One physical machine divided into multiple virtual
machines
● Easier to scale
● VMs in the cloud
● Rapid elasticity
● Pay as you go model
Application running on a Virtual Machine
Hypervisor-Based Virtualization
Limitations:
● Each VM stills requires:
○ CPU allocation
○ RAM
○ Storage
○ An entire guest operating syst
● Full guest OS means wasted resources
● Application portability not guaranteed
Docker Terminology:
Stack
Service
Task
● Stack - a collection of Services that make up an application.
● Service - provides a function and is based on a docker image.
○ Some examples of Services:
■ Load Balancer
■ Web Frontend Application
■ Business Logic Backend Application
Database
● Task - an individual container running in a Service.
Service can have 1-n Tasks (replicas)
Terminology
Manual Application Stack deployment with
Docker.
Manual Application Stack deployment
Automate Application Stack deployments with
docker-compose.
docker-compose is a Docker tool which allows you to deploy multi-container applications
(Stacks) on a docker node in an automated fashion.
● You define your application Stack as one or more Services in a compose yaml file
Compose file documentation: https://docs.docker.com/compose/compose-file/
● The single command "docker-compose" is then used to create and start the Services in the
application Stack.
● The "docker-compose" command is also used to terminate and remove the Services in the
application Stack.
● docker-compose is intended for development and testing.
What is docker-compose?
Docker Application Stack Yaml file template
docker-compose.yml file
Create the Stack
Stack Deployed and running
Docker Swarm
Clustering and container scheduling.
● Allows you to scale up/down
● Allows you to perform upgrades and roll backs (blue/green deployments)
● Has built-in service discovery and load balancing
● Ensures containers are restarted if they fail
● Allows you to control where containers run (which nodes)
● Has built-in End to End Security
○ Ensure only trusted servers are running your containers
○ Provides a mechanism to store and retrieve secure secrets, passwords and keys, and
restrict which containers can access them
● Supports Windows and Linux workloads in the same swarm
● Application Stack is defined as one or more services in a yaml file
● Single command deploys the Stack ("docker stack deploy") and destroys the Stack
("docker stack rm")
Docker Swarm is not enabled by default.
What is Docker Swarm?
Docker Swarm Topology
● docker swarm (manage the swarm) https://docs.master.dockerproject.org/swarm/reference/
○ ca - Display and rotate the root CA
○ init - Initialize a swarm
○ join - Join a swarm as a node and/or manager
○ join-token - Manage join tokens
○ leave - Leave the swarm
○ unlock - Unlock swarm
○ unlock-key - Manage the unlock key
○ update - Update the swarm
● docker node (manage nodes in the swarm) https://docs.docker.com/engine/reference/commandline/node/
○ demote - Demote one or more nodes from manager in the swarm
○ inspect - Display detailed information on one or more nodes
○ ls - List nodes in the swarm
○ promote - Promote one or more nodes to manager in the swarm
○ ps - List tasks running on one or more nodes, defaults to current node
○ rm - Remove one or more nodes from the swarmu
○ update - Update a node
Docker Swarm commands
● docker stack (manage stacks) https://docs.docker.com/engine/reference/commandline/stack/
○ deploy - Deploy a new stack or update an existing stack
○ ls - List stacks
○ ps - List the tasks in the stack
○ rm - Remove one or more stacks
○ services - List the services in the stack
● docker service (manage services) https://docs.docker.com/engine/reference/commandline/service/
○ create - Create a new service
○ inspect - Display detailed information on one or more services
○ logs - Fetch the logs of a service or task
○ ls - List services
○ ps - List the tasks of one or more services
○ rm - Remove one or more services
○ scale - Scale one or multiple replicated services
○ update - Update a service
● docker secret (manage secrets) https://docs.docker.com/engine/reference/commandline/secret/
○ create - Create a secret from a file or STDIN as content
○ inspect - Display detailed information on one or more secrets
○ ls - List secrets
○ rm - Remove one or more secrets
Docker Swarm commands
Docker Service
Automate and manage Application Stacks with
Docker Swarm.
Docker Swarm
Create the Docker Swarm
Docker Swarm created
● Pets is a simple multi service dockerized application written by a Docker employee
○ Displays random pictures of pets and allows you to "vote" on your favorites.
● Pets is written in Python and uses the Flask Python Web Framework
● Pets consists of 2 Docker Services:
○ Pets Python Flask Frontend application
■ Custom Docker image: chrch/docker-pets:1.0
○ Database backend key value store used by the Pets application to store state data
■ Official Docker image: consul:0.7.2
● Pets is used a lot for demos and has also been used in labs at DockerCon
● Pets is available in a public GitHub repo -> https://github.com/mark-church/docker-pets
Pets - Example Docker Application
Docker Application Stack Yaml file
Deploy the Stack
Display the Stack, Services, and Tasks
Display the Tasks for a Service
Docker Swarm Overlay Multi-Host Networking
Docker Swarm Ingress Network Routing
Docker Swarm Ingress Network Routing
Docker Swarm Ingress Network Routing
Recovery
Update the pets_db Service with a new Docker Image
Update the pets_db Service
What's new in Docker 17.06
● Support for IBM Z and Windows 2016 Server
● Custom Roles
○ Now have the ability to create custom roles with very granular access (down to a specific API
function)
● Role Based Access Control for nodes
○ Restrict which users and teams can deploy to which nodes
● Mixed cluster support
○ Run Linux and Windows services in same cluster
○ Use placement constraints to run Windows containers on Windows nodes and Linux containers on
Linux nodes in the cluster
● Policy-Based Automation
○ Automate image promotion using pre-defined policies to move images from one repository to another
within the same registry
○ Create immutable repositories to prevent image tags from being modified or deleted, ensuring that
production application repositories are secure and locked down
● Multi-stage Builds
○ Create Dockerfile with multiple FROM statements and copy artifacts from 1 stage to another. Allows
you to build a docker image with less clutter and reduce it's size
● More info: https://blog.docker.com/2017/08/docker-enterprise-edition-17-06/
What's new in Docker 17.06
Additional Information
● What's new in Docker Enterprise Edition
○ https://www.youtube.com/watch?v=yGkoSsnKlQk
● Docker Modernizing Traditional Applications Program
○ https://blog.docker.com/2017/04/modernizing-traditional-apps-with-docker/
● DockerCon Europe 2017 – October 16-19
○ https://europe-2017.dockercon.com/
● Docker Documentation
○ https://docs.docker.com/
● Docker Community
○ https://www.docker.com/docker-community
● Docker Store
○ https://store.docker.com/
● Docker Technology Partner Guide
○ https://www.docker.com/sites/default/files/community/Docker-Technology-Partner-Program-Guide-082517.
pdf
● Docker Store Vendor Partner
○ https://store.docker.com/publisher/signup
● Docker Maintenance Lifecycle
○ https://success.docker.com/Policies/Maintenance_Lifecycle
● Docker Pricing
○ https://www.docker.com/pricing
Additional Information
Vagrantfile for a 3 node Docker Swarm
Vagrantfile for a 3 node Docker Swarm
InfluxData
Overview
© 2017 InfluxData. All rights reserved.55 © 2017 InfluxData. All rights reserved.55
What makes time-series unique
¨Needs fast ingestion of data
¨High & low precision data have different retention policy
¨Software agent or DB must be able to compute
¨Unique & changing time query
Containers generating huge data load
¨Regular vs. irregular
¨Containers themselves + components within
Understanding the time series problem
© 2017 InfluxData. All rights reserved.56 © 2017 InfluxData. All rights reserved.56
Time to metrics… graphs… value…
¨Primary developers of InfluxDB
¨Created the TICK stack: platform for time series
¨Telegraf and Chronograf fully open source
¨InfluxDB and Kapacitor open core
¨Single nodes scale to 1 million points ingested per second
¨Enterprise clustered and high availability solution
¨InfluxCloud managed platform
Introduction
© 2017 InfluxData. All rights reserved.57 © 2017 InfluxData. All rights reserved.57
Platform Components
Telegraf
¨Collection of metrics and events
¨Many input plugins, deployed to worker nodes
InfluxDB
¨High performance time-series database
Chronograf
¨User Interface for InfluxDB & Kapacitor
Kapacitor
¨Metrics processing and alerting engine
© 2017 InfluxData. All rights reserved.58 © 2017 InfluxData. All rights reserved.58
Demo
© 2017 InfluxData. All rights reserved.59 © 2017 InfluxData. All rights reserved.59
Learn More
URL or other notes on where to find further info.
URL or other notes on where to find further info.
https://hub.docker.com/_/influxdb/
http://webinars.devops.com/how-to-use-the-tick-stack-coreos-docker-to-make-your-sa
as-offering-better
https://www.influxdata.com/integration/docker-monitoring-tools/
https://github.com/influxdata/TICK-docker
https://github.com/influxdata/telegraf/tree/release-1.3/plugins/inputs/docker
https://github.com/influxdata/telegraf/issues/2054 (contributions welcome!)
https://docs.docker.com/compose/
https://docs.docker.com/engine/swarm/
© 2017 InfluxData. All rights reserved.60 © 2017 InfluxData. All rights reserved.60
Q & A?

More Related Content

What's hot (20)

PDF
Alan Pope, Sebastian Spaink [InfluxData] | Data Collection 101 | InfluxDays N...
InfluxData
 
PPTX
How to Use Telegraf and Its Plugin Ecosystem
InfluxData
 
PDF
How to Build a Monitoring Application in 20 Minutes | Russ Savage | InfluxData
InfluxData
 
PDF
A TRUE STORY ABOUT DATABASE ORCHESTRATION
InfluxData
 
PPTX
Lessons Learned Running InfluxDB Cloud and Other Cloud Services at Scale by T...
InfluxData
 
PDF
DOWNSAMPLING DATA
InfluxData
 
PDF
Jacob Marble [InfluxData] | Observability with InfluxDB IOx and OpenTelemetry...
InfluxData
 
PDF
Vasilis Papavasiliou [Mist.io] | Integrating Telegraf, InfluxDB and Mist to M...
InfluxData
 
PPTX
How an Open Marine Standard, InfluxDB and Grafana Are Used to Improve Boating...
InfluxData
 
PDF
Kapacitor Stream Processing
InfluxData
 
PDF
Inside the InfluxDB storage engine
InfluxData
 
PDF
Getting Started: Intro to Telegraf - July 2021
InfluxData
 
PPTX
InfluxEnterprise Architecture Patterns by Tim Hall & Sam Dillard
InfluxData
 
PDF
tado° Makes Your Home Environment Smart with InfluxDB
InfluxData
 
PDF
Kapacitor Manager
InfluxData
 
PPTX
Container Monitoring Best Practices Using AWS and InfluxData by Gunnar Aasen
InfluxData
 
PPTX
Episode 3: Kubernetes and Big Data Services
Mesosphere Inc.
 
PDF
Tim Hall and Ryan Betts [InfluxData] | InfluxDB Roadmap and Engineering Updat...
InfluxData
 
PPTX
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...
InfluxData
 
PDF
Observability of InfluxDB IOx: Tracing, Metrics and System Tables
InfluxData
 
Alan Pope, Sebastian Spaink [InfluxData] | Data Collection 101 | InfluxDays N...
InfluxData
 
How to Use Telegraf and Its Plugin Ecosystem
InfluxData
 
How to Build a Monitoring Application in 20 Minutes | Russ Savage | InfluxData
InfluxData
 
A TRUE STORY ABOUT DATABASE ORCHESTRATION
InfluxData
 
Lessons Learned Running InfluxDB Cloud and Other Cloud Services at Scale by T...
InfluxData
 
DOWNSAMPLING DATA
InfluxData
 
Jacob Marble [InfluxData] | Observability with InfluxDB IOx and OpenTelemetry...
InfluxData
 
Vasilis Papavasiliou [Mist.io] | Integrating Telegraf, InfluxDB and Mist to M...
InfluxData
 
How an Open Marine Standard, InfluxDB and Grafana Are Used to Improve Boating...
InfluxData
 
Kapacitor Stream Processing
InfluxData
 
Inside the InfluxDB storage engine
InfluxData
 
Getting Started: Intro to Telegraf - July 2021
InfluxData
 
InfluxEnterprise Architecture Patterns by Tim Hall & Sam Dillard
InfluxData
 
tado° Makes Your Home Environment Smart with InfluxDB
InfluxData
 
Kapacitor Manager
InfluxData
 
Container Monitoring Best Practices Using AWS and InfluxData by Gunnar Aasen
InfluxData
 
Episode 3: Kubernetes and Big Data Services
Mesosphere Inc.
 
Tim Hall and Ryan Betts [InfluxData] | InfluxDB Roadmap and Engineering Updat...
InfluxData
 
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...
InfluxData
 
Observability of InfluxDB IOx: Tracing, Metrics and System Tables
InfluxData
 

Similar to Introduction to Docker and Monitoring with InfluxData (20)

PPTX
You, and Me, and Docker Makes Three
Christopher Grayson
 
PDF
Docker in real life
Nguyen Van Vuong
 
PPTX
Introduction to docker
Frederik Mogensen
 
PDF
Docker slides
Jyotsna Raghuraman
 
PPTX
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
PPTX
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
PDF
Dockers & kubernetes detailed - Beginners to Geek
wiTTyMinds1
 
PDF
Docker for developers
andrzejsydor
 
PDF
Introduction to Docker - VIT Campus
Ajeet Singh Raina
 
ODP
Docker and stuff
Raimondas Rimkevičius
 
PPTX
Introduction To Docker, Docker Compose, Docker Swarm
An Nguyen
 
PPTX
Docker Basic to Advance
Paras Jain
 
PPTX
Docker-Presentation.pptx
Vipobav
 
PPTX
Introducing & playing with Docker | Manel Martinez | 1st Docker Crete Meetup
Alexandra Karapidaki
 
PDF
Introduction to Docker - Vellore Institute of Technology
Ajeet Singh Raina
 
PDF
Hack the whale
Marco Ferrigno
 
PDF
Accelerate your software development with Docker
Andrey Hristov
 
PPTX
Accelerate your development with Docker
Andrey Hristov
 
PDF
Docker fundamentals
Alper Unal
 
PDF
Docker Essentials Workshop— Innovation Labs July 2020
CloudHero
 
You, and Me, and Docker Makes Three
Christopher Grayson
 
Docker in real life
Nguyen Van Vuong
 
Introduction to docker
Frederik Mogensen
 
Docker slides
Jyotsna Raghuraman
 
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
Dockers & kubernetes detailed - Beginners to Geek
wiTTyMinds1
 
Docker for developers
andrzejsydor
 
Introduction to Docker - VIT Campus
Ajeet Singh Raina
 
Docker and stuff
Raimondas Rimkevičius
 
Introduction To Docker, Docker Compose, Docker Swarm
An Nguyen
 
Docker Basic to Advance
Paras Jain
 
Docker-Presentation.pptx
Vipobav
 
Introducing & playing with Docker | Manel Martinez | 1st Docker Crete Meetup
Alexandra Karapidaki
 
Introduction to Docker - Vellore Institute of Technology
Ajeet Singh Raina
 
Hack the whale
Marco Ferrigno
 
Accelerate your software development with Docker
Andrey Hristov
 
Accelerate your development with Docker
Andrey Hristov
 
Docker fundamentals
Alper Unal
 
Docker Essentials Workshop— Innovation Labs July 2020
CloudHero
 
Ad

More from InfluxData (20)

PPTX
Announcing InfluxDB Clustered
InfluxData
 
PDF
Best Practices for Leveraging the Apache Arrow Ecosystem
InfluxData
 
PDF
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
InfluxData
 
PDF
Power Your Predictive Analytics with InfluxDB
InfluxData
 
PDF
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
InfluxData
 
PDF
Build an Edge-to-Cloud Solution with the MING Stack
InfluxData
 
PDF
Meet the Founders: An Open Discussion About Rewriting Using Rust
InfluxData
 
PDF
Introducing InfluxDB Cloud Dedicated
InfluxData
 
PDF
Gain Better Observability with OpenTelemetry and InfluxDB
InfluxData
 
PPTX
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
InfluxData
 
PDF
How Delft University's Engineering Students Make Their EV Formula-Style Race ...
InfluxData
 
PPTX
Introducing InfluxDB’s New Time Series Database Storage Engine
InfluxData
 
PDF
Start Automating InfluxDB Deployments at the Edge with balena
InfluxData
 
PDF
Understanding InfluxDB’s New Storage Engine
InfluxData
 
PDF
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
InfluxData
 
PPTX
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
InfluxData
 
PDF
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
InfluxData
 
PDF
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
InfluxData
 
PDF
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
InfluxData
 
PDF
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
InfluxData
 
Announcing InfluxDB Clustered
InfluxData
 
Best Practices for Leveraging the Apache Arrow Ecosystem
InfluxData
 
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
InfluxData
 
Power Your Predictive Analytics with InfluxDB
InfluxData
 
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
InfluxData
 
Build an Edge-to-Cloud Solution with the MING Stack
InfluxData
 
Meet the Founders: An Open Discussion About Rewriting Using Rust
InfluxData
 
Introducing InfluxDB Cloud Dedicated
InfluxData
 
Gain Better Observability with OpenTelemetry and InfluxDB
InfluxData
 
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
InfluxData
 
How Delft University's Engineering Students Make Their EV Formula-Style Race ...
InfluxData
 
Introducing InfluxDB’s New Time Series Database Storage Engine
InfluxData
 
Start Automating InfluxDB Deployments at the Edge with balena
InfluxData
 
Understanding InfluxDB’s New Storage Engine
InfluxData
 
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
InfluxData
 
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
InfluxData
 
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
InfluxData
 
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
InfluxData
 
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
InfluxData
 
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
InfluxData
 
Ad

Recently uploaded (20)

PPTX
Metaphysics_Presentation_With_Visuals.pptx
erikjohnsales1
 
PPTX
L1A Season 1 ENGLISH made by A hegy fixed
toszolder91
 
PPTX
西班牙巴利阿里群岛大学电子版毕业证{UIBLetterUIB文凭证书}文凭复刻
Taqyea
 
PPTX
Presentation3gsgsgsgsdfgadgsfgfgsfgagsfgsfgzfdgsdgs.pptx
SUB03
 
PPTX
PHIPA-Compliant Web Hosting in Toronto: What Healthcare Providers Must Know
steve198109
 
PDF
FutureCon Seattle 2025 Presentation Slides - You Had One Job
Suzanne Aldrich
 
PPTX
Networking_Essentials_version_3.0_-_Module_3.pptx
ryan622010
 
PPTX
Orchestrating things in Angular application
Peter Abraham
 
PDF
The Internet - By the numbers, presented at npNOG 11
APNIC
 
PDF
Cleaning up your RPKI invalids, presented at PacNOG 35
APNIC
 
PDF
Boardroom AI: The Next 10 Moves | Cerebraix Talent Tech
ssuser73bdb11
 
PDF
BRKAPP-1102 - Proactive Network and Application Monitoring.pdf
fcesargonca
 
PPTX
04 Output 1 Instruments & Tools (3).pptx
GEDYIONGebre
 
PDF
BRKACI-1003 ACI Brownfield Migration - Real World Experiences and Best Practi...
fcesargonca
 
PDF
Top 10 Testing Procedures to Ensure Your Magento to Shopify Migration Success...
CartCoders
 
PDF
BRKACI-1001 - Your First 7 Days of ACI.pdf
fcesargonca
 
PDF
Enhancing Parental Roles in Protecting Children from Online Sexual Exploitati...
ICT Frame Magazine Pvt. Ltd.
 
PDF
BRKSP-2551 - Introduction to Segment Routing.pdf
fcesargonca
 
DOCX
Custom vs. Off-the-Shelf Banking Software
KristenCarter35
 
PPTX
法国巴黎第二大学本科毕业证{Paris 2学费发票Paris 2成绩单}办理方法
Taqyea
 
Metaphysics_Presentation_With_Visuals.pptx
erikjohnsales1
 
L1A Season 1 ENGLISH made by A hegy fixed
toszolder91
 
西班牙巴利阿里群岛大学电子版毕业证{UIBLetterUIB文凭证书}文凭复刻
Taqyea
 
Presentation3gsgsgsgsdfgadgsfgfgsfgagsfgsfgzfdgsdgs.pptx
SUB03
 
PHIPA-Compliant Web Hosting in Toronto: What Healthcare Providers Must Know
steve198109
 
FutureCon Seattle 2025 Presentation Slides - You Had One Job
Suzanne Aldrich
 
Networking_Essentials_version_3.0_-_Module_3.pptx
ryan622010
 
Orchestrating things in Angular application
Peter Abraham
 
The Internet - By the numbers, presented at npNOG 11
APNIC
 
Cleaning up your RPKI invalids, presented at PacNOG 35
APNIC
 
Boardroom AI: The Next 10 Moves | Cerebraix Talent Tech
ssuser73bdb11
 
BRKAPP-1102 - Proactive Network and Application Monitoring.pdf
fcesargonca
 
04 Output 1 Instruments & Tools (3).pptx
GEDYIONGebre
 
BRKACI-1003 ACI Brownfield Migration - Real World Experiences and Best Practi...
fcesargonca
 
Top 10 Testing Procedures to Ensure Your Magento to Shopify Migration Success...
CartCoders
 
BRKACI-1001 - Your First 7 Days of ACI.pdf
fcesargonca
 
Enhancing Parental Roles in Protecting Children from Online Sexual Exploitati...
ICT Frame Magazine Pvt. Ltd.
 
BRKSP-2551 - Introduction to Segment Routing.pdf
fcesargonca
 
Custom vs. Off-the-Shelf Banking Software
KristenCarter35
 
法国巴黎第二大学本科毕业证{Paris 2学费发票Paris 2成绩单}办理方法
Taqyea
 

Introduction to Docker and Monitoring with InfluxData

  • 1. © 2017 InfluxData. All rights reserved.1 © 2017 InfluxData. All rights reserved.1 An introduction to Docker and how to handle time series data in container orchestration 25 SEP 2017 Introduction to Docker & Monitoring with InfluxData
  • 2. © 2017 InfluxData. All rights reserved.2 © 2017 InfluxData. All rights reserved.2 Our Speakers Today Gary Forghetti Technical Alliance Engineer Gunnar Aasen Partner Engineering
  • 3. © 2017 InfluxData. All rights reserved.3 © 2017 InfluxData. All rights reserved.3 Agenda ¨Introduction to Docker, Images & Containers ¨Docker Compose & Swarm ¨What’s new in Docker 17.06 ¨Understanding the time series problem ¨Introduction to InfluxData ¨Q & A
  • 4. Deploying Applications with Docker Gary Forghetti Technical Alliance Engineer Business Development Docker, Inc.
  • 5. ● Overview of Docker ● Images and Containers ● docker-compose ● Docker Swarm ● What's new in Docker 17.06 Agenda
  • 6. ● Founded in 2013 as Linux developer tool. ● Docker solves the “works on my machine” problem. ● Docker allows you to transform and modernize your applications and infrastructure, and reduce costs. ● Docker provides portability, agility and efficiency and has built-in security. ● Docker can be run on physical hardware, desktops, and on virtual machines in public or private clouds. Docker Overview Docker is the world's leading software container platform.
  • 7. ● The Docker platform contains multiple products and tools for developing, testing, deploying, and managing applications packaged in containers. ● Docker technology focuses on convenience, ease of use and enablement. ● Docker runs on Linux, macOS and Windows ● Docker Editions ○ Docker Community Edition (free, community support) ○ Docker Enterprise Edition (subscription, business day and business critical support) ● Docker Datacenter (container as a service platform) ○ Docker Universal Control Plane (management UI) ○ Docker Trusted Registry (image storage) ● Docker Datacenter is included with Docker EE Standard and Advanced Docker Overview Docker is the world's leading software container platform.
  • 8. Docker Images and Containers
  • 9. ● A Docker Image is a template which is used to build a running Docker Container. ● It contains the application code, required binaries, libraries, configuration files and metadata needed to run the application. ● Docker Images do not contain a full operating system. ○ No system kernel or kernel modules. ● Docker Images are stored and shared in registries. ○ Docker Hub (default), Docker Store, and private registries. ● Think of a Docker Image as a "container at rest". Docker Images
  • 10. Understanding Image Layers ● An image is a collection of files and some meta data. ● Images are comprised of multiple layers. ● A layer is also just another image. ● Each image contains the software you want to run. ● Every image contains a base layer. ● Docker uses a copy on write system. ● Layers are read only. Docker Images
  • 11. ● Docker Containers are processes running applications. ● Docker Containers are created from Docker Images. ● Docker Containers are lightweight, standalone and portable. ● Unlike virtual machines they do not contain a full operating system. ● No system kernel or kernel modules. ● Docker Containers use the system kernel on the host machine (Docker Node). Docker Containers Docker containers are based on open standards and run on all major Linux distributions, macOS, Microsoft Windows, and on any infrastructure including VMs, bare-metal and in the cloud.
  • 12. Comparing an application running on physical hardware, on virtual machines and in Docker Containers.
  • 13. Limitations: ● Slow deployment times ● High costs ● Wasted resources ● Difficult to scale ● Difficult to migrate ● Vendor lock in Application running on a Physical Server One Application on One Physical Server
  • 14. Benefits: ● Multiple containers can run on the same physical machine or virtual machine. ● Containers run as isolated processes and share the system resources CPU, Ram and Storage. ● Containers do not contain a full operating system, they all share the same operating system kernel. ● Containers take up less space and start quicker. ● Smaller attack surface from a security perspective. ● Containers are easily scaled. ● Containers are portable. Application running in a Docker Container Docker Containers Used together, Docker Containers and VMs provide a tremendous amount of flexibility to optimally deploy and manage applications.
  • 15. Benefits: ● Better resource pooling ● One physical machine divided into multiple virtual machines ● Easier to scale ● VMs in the cloud ● Rapid elasticity ● Pay as you go model Application running on a Virtual Machine Hypervisor-Based Virtualization Limitations: ● Each VM stills requires: ○ CPU allocation ○ RAM ○ Storage ○ An entire guest operating syst ● Full guest OS means wasted resources ● Application portability not guaranteed
  • 17. ● Stack - a collection of Services that make up an application. ● Service - provides a function and is based on a docker image. ○ Some examples of Services: ■ Load Balancer ■ Web Frontend Application ■ Business Logic Backend Application Database ● Task - an individual container running in a Service. Service can have 1-n Tasks (replicas) Terminology
  • 18. Manual Application Stack deployment with Docker.
  • 20. Automate Application Stack deployments with docker-compose.
  • 21. docker-compose is a Docker tool which allows you to deploy multi-container applications (Stacks) on a docker node in an automated fashion. ● You define your application Stack as one or more Services in a compose yaml file Compose file documentation: https://docs.docker.com/compose/compose-file/ ● The single command "docker-compose" is then used to create and start the Services in the application Stack. ● The "docker-compose" command is also used to terminate and remove the Services in the application Stack. ● docker-compose is intended for development and testing. What is docker-compose?
  • 22. Docker Application Stack Yaml file template
  • 27. Clustering and container scheduling. ● Allows you to scale up/down ● Allows you to perform upgrades and roll backs (blue/green deployments) ● Has built-in service discovery and load balancing ● Ensures containers are restarted if they fail ● Allows you to control where containers run (which nodes) ● Has built-in End to End Security ○ Ensure only trusted servers are running your containers ○ Provides a mechanism to store and retrieve secure secrets, passwords and keys, and restrict which containers can access them ● Supports Windows and Linux workloads in the same swarm ● Application Stack is defined as one or more services in a yaml file ● Single command deploys the Stack ("docker stack deploy") and destroys the Stack ("docker stack rm") Docker Swarm is not enabled by default. What is Docker Swarm?
  • 29. ● docker swarm (manage the swarm) https://docs.master.dockerproject.org/swarm/reference/ ○ ca - Display and rotate the root CA ○ init - Initialize a swarm ○ join - Join a swarm as a node and/or manager ○ join-token - Manage join tokens ○ leave - Leave the swarm ○ unlock - Unlock swarm ○ unlock-key - Manage the unlock key ○ update - Update the swarm ● docker node (manage nodes in the swarm) https://docs.docker.com/engine/reference/commandline/node/ ○ demote - Demote one or more nodes from manager in the swarm ○ inspect - Display detailed information on one or more nodes ○ ls - List nodes in the swarm ○ promote - Promote one or more nodes to manager in the swarm ○ ps - List tasks running on one or more nodes, defaults to current node ○ rm - Remove one or more nodes from the swarmu ○ update - Update a node Docker Swarm commands
  • 30. ● docker stack (manage stacks) https://docs.docker.com/engine/reference/commandline/stack/ ○ deploy - Deploy a new stack or update an existing stack ○ ls - List stacks ○ ps - List the tasks in the stack ○ rm - Remove one or more stacks ○ services - List the services in the stack ● docker service (manage services) https://docs.docker.com/engine/reference/commandline/service/ ○ create - Create a new service ○ inspect - Display detailed information on one or more services ○ logs - Fetch the logs of a service or task ○ ls - List services ○ ps - List the tasks of one or more services ○ rm - Remove one or more services ○ scale - Scale one or multiple replicated services ○ update - Update a service ● docker secret (manage secrets) https://docs.docker.com/engine/reference/commandline/secret/ ○ create - Create a secret from a file or STDIN as content ○ inspect - Display detailed information on one or more secrets ○ ls - List secrets ○ rm - Remove one or more secrets Docker Swarm commands
  • 32. Automate and manage Application Stacks with Docker Swarm.
  • 36. ● Pets is a simple multi service dockerized application written by a Docker employee ○ Displays random pictures of pets and allows you to "vote" on your favorites. ● Pets is written in Python and uses the Flask Python Web Framework ● Pets consists of 2 Docker Services: ○ Pets Python Flask Frontend application ■ Custom Docker image: chrch/docker-pets:1.0 ○ Database backend key value store used by the Pets application to store state data ■ Official Docker image: consul:0.7.2 ● Pets is used a lot for demos and has also been used in labs at DockerCon ● Pets is available in a public GitHub repo -> https://github.com/mark-church/docker-pets Pets - Example Docker Application
  • 39. Display the Stack, Services, and Tasks
  • 40. Display the Tasks for a Service
  • 41. Docker Swarm Overlay Multi-Host Networking
  • 42. Docker Swarm Ingress Network Routing
  • 43. Docker Swarm Ingress Network Routing
  • 44. Docker Swarm Ingress Network Routing
  • 46. Update the pets_db Service with a new Docker Image
  • 48. What's new in Docker 17.06
  • 49. ● Support for IBM Z and Windows 2016 Server ● Custom Roles ○ Now have the ability to create custom roles with very granular access (down to a specific API function) ● Role Based Access Control for nodes ○ Restrict which users and teams can deploy to which nodes ● Mixed cluster support ○ Run Linux and Windows services in same cluster ○ Use placement constraints to run Windows containers on Windows nodes and Linux containers on Linux nodes in the cluster ● Policy-Based Automation ○ Automate image promotion using pre-defined policies to move images from one repository to another within the same registry ○ Create immutable repositories to prevent image tags from being modified or deleted, ensuring that production application repositories are secure and locked down ● Multi-stage Builds ○ Create Dockerfile with multiple FROM statements and copy artifacts from 1 stage to another. Allows you to build a docker image with less clutter and reduce it's size ● More info: https://blog.docker.com/2017/08/docker-enterprise-edition-17-06/ What's new in Docker 17.06
  • 51. ● What's new in Docker Enterprise Edition ○ https://www.youtube.com/watch?v=yGkoSsnKlQk ● Docker Modernizing Traditional Applications Program ○ https://blog.docker.com/2017/04/modernizing-traditional-apps-with-docker/ ● DockerCon Europe 2017 – October 16-19 ○ https://europe-2017.dockercon.com/ ● Docker Documentation ○ https://docs.docker.com/ ● Docker Community ○ https://www.docker.com/docker-community ● Docker Store ○ https://store.docker.com/ ● Docker Technology Partner Guide ○ https://www.docker.com/sites/default/files/community/Docker-Technology-Partner-Program-Guide-082517. pdf ● Docker Store Vendor Partner ○ https://store.docker.com/publisher/signup ● Docker Maintenance Lifecycle ○ https://success.docker.com/Policies/Maintenance_Lifecycle ● Docker Pricing ○ https://www.docker.com/pricing Additional Information
  • 52. Vagrantfile for a 3 node Docker Swarm
  • 53. Vagrantfile for a 3 node Docker Swarm
  • 55. © 2017 InfluxData. All rights reserved.55 © 2017 InfluxData. All rights reserved.55 What makes time-series unique ¨Needs fast ingestion of data ¨High & low precision data have different retention policy ¨Software agent or DB must be able to compute ¨Unique & changing time query Containers generating huge data load ¨Regular vs. irregular ¨Containers themselves + components within Understanding the time series problem
  • 56. © 2017 InfluxData. All rights reserved.56 © 2017 InfluxData. All rights reserved.56 Time to metrics… graphs… value… ¨Primary developers of InfluxDB ¨Created the TICK stack: platform for time series ¨Telegraf and Chronograf fully open source ¨InfluxDB and Kapacitor open core ¨Single nodes scale to 1 million points ingested per second ¨Enterprise clustered and high availability solution ¨InfluxCloud managed platform Introduction
  • 57. © 2017 InfluxData. All rights reserved.57 © 2017 InfluxData. All rights reserved.57 Platform Components Telegraf ¨Collection of metrics and events ¨Many input plugins, deployed to worker nodes InfluxDB ¨High performance time-series database Chronograf ¨User Interface for InfluxDB & Kapacitor Kapacitor ¨Metrics processing and alerting engine
  • 58. © 2017 InfluxData. All rights reserved.58 © 2017 InfluxData. All rights reserved.58 Demo
  • 59. © 2017 InfluxData. All rights reserved.59 © 2017 InfluxData. All rights reserved.59 Learn More URL or other notes on where to find further info. URL or other notes on where to find further info. https://hub.docker.com/_/influxdb/ http://webinars.devops.com/how-to-use-the-tick-stack-coreos-docker-to-make-your-sa as-offering-better https://www.influxdata.com/integration/docker-monitoring-tools/ https://github.com/influxdata/TICK-docker https://github.com/influxdata/telegraf/tree/release-1.3/plugins/inputs/docker https://github.com/influxdata/telegraf/issues/2054 (contributions welcome!) https://docs.docker.com/compose/ https://docs.docker.com/engine/swarm/
  • 60. © 2017 InfluxData. All rights reserved.60 © 2017 InfluxData. All rights reserved.60 Q & A?