Docker Training - June 2015

32
An Open Platform to Build, Ship, and Run Distributed Applications

Transcript of Docker Training - June 2015

Page 1: Docker Training - June 2015

An Open Platform to Build, Ship, and Run Distributed Applications

Page 2: Docker Training - June 2015

whoami

Jonas RoslandDeveloper Advocate

EMC {code}emccode.com

@[email protected]

Page 3: Docker Training - June 2015

March 20, 2013: Docker Launches

https://www.youtube.com/watch?v=wW9CAH9nSLs

Page 4: Docker Training - June 2015

15 Months Later: An Incredible Platform and Ecosystem

Official Repos & 14K+ Dockerized Apps

Community460+ Contributors250+ Meetups on Docker2.75M Downloads6.7K Projects on GitHub

SupportEnterprise SupportRobust DocumentationImplementation, Integration, Training Network of Partners

The Docker Platform

Docker Engine Docker Hub

Build, Ship, and Run

Partners

Content

Users

Page 5: Docker Training - June 2015

24 Months Later: An Incredible Platform and Ecosystem

Official Repos & 14K+ Dockerized Apps

Community790+ Contributors150+ Meetup Groups100M+ Downloads50K Projects on GitHub

SupportEnterprise SupportRobust DocumentationImplementation, Integration, Training Network of Partners

The Docker Platform

Docker Engine Docker Hub 75K Apps in the HubBuild, Ship, and Run

Partners

Content

Users

Page 6: Docker Training - June 2015

We know we’re riding on your shoulders

Thank You to the Giants

• Namespaces (IBM)• Cgroups (Google)• LXC tools• The Linux Kernel• Git• SELinux (Red Hat)• Solaris Zones• BSD Jails• +++

Page 7: Docker Training - June 2015

Thank You Users/Use Cases*

*A small subset of the 100s who are using and/or writing about usThanks to those above for talking about their experiences at DockerCon

Page 8: Docker Training - June 2015

• Using Docker in our ECS appliances

And of course…

Page 9: Docker Training - June 2015

Thank You Partner Ecosystem

Page 10: Docker Training - June 2015

The Docker Ecosystem

Page 11: Docker Training - June 2015

Agenda

Official Repos & 14K + Dockerized Apps

Partners

Content

Users

Community460+ Contributors250+ Meetups on Docker2.75M Downloads6.7K Projects on GitHub

SupportEnterprise SupportRobust DocumentationImplementation, Integration, Training Network of Partners

The Docker Platform

Docker EngineDocker Hub

Build, Ship, and Run

Page 12: Docker Training - June 2015

~2000 2014Long lived Development is iterative and

constant

Monolithic and built on a single stack

Built from loosely coupled components

Deployed to a single server Deployed to a multitude of servers

Apps Have Fundamentally Changed

Page 13: Docker Training - June 2015

Static website

Web frontend

User DBQueue

Analytics DB

Background workers API endpoint

nginx 1.5 + modsecurity + openssl + bootstrap 2

postgresql + pgv8 + v8 hadoop + hive + thrift + OpenJDK

Ruby + Rails + sass + Unicorn

Redis + redis-sentinel

Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs + phantomjs

Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client

Development VM

QA ServerPublic Cloud

Disaster Recovery

Contributor’s LaptopProduction Servers

Mul

tiplic

ity o

f Sta

cks

Mul

tiplic

ity o

f Har

dwar

e En

viro

nmen

ts

Production Cluster

Customer Data Center

Do services and apps

interact appropriately?C

an I migrate sm

oothly and quickly?

The Problem in 2014

Page 14: Docker Training - June 2015

Results in NxN compatibility nightmare

Static website

Web frontend

Background workers

User DB

Analytics DB

Queue

Development VM QA Server Single Prod

ServerOnsite Cluster

Public Cloud

Contributor’s laptop

Customer Servers

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

Page 15: Docker Training - June 2015

A useful analogy…

Page 16: Docker Training - June 2015

Cargo Transport Pre-1960M

ultip

licity

of

Goo

dsM

ultip

licity

of

met

hods

for

tran

spor

ting/

stor

ing

Do I w

orry about how

goods interact (e.g. coffee beans

next to spices)

Can I transport

quickly and smoothly

(e.g. from boat to

train to truck)

Page 17: Docker Training - June 2015

Also an NxN Matrix

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

Page 18: Docker Training - June 2015

Solution: Intermodal Shipping ContainerM

ultip

licity

of

Goo

dsD

o I worry about how

goods interact (e.g. coffee beans next to

spices)

Can I transport quickly

and smoothly

(e.g. from boat to train

to truck)

…in between, can be loaded and unloaded, stacked, transported efficiently over long distances, and transferred from one mode of transport to another

A standard container that is loaded with virtually any goods, and stays sealed until it reaches final delivery.

Page 19: Docker Training - June 2015

This eliminated the NxN problem

Page 20: Docker Training - June 2015

The Right Approach to Containers Matters

• Separation of concerns• Automation• Efficiency• Broad ecosystem

Images courtesy of PokkO / Shutterstock.com, Lewis Hine - http://www.archives.gov/research_room/research_topics/american_cities/images/american_cities_069.jpg

Page 21: Docker Training - June 2015

Docker is a shipping container system for code

Static website Web frontend User DB Queue Analytics DB

Development VM

QA server Public Cloud Contributor’s laptop

Mul

tiplic

ity o

f S

tack

s

Production Cluster

Customer Data Center

Do services and apps interact

appropriately?

Can I m

igrate sm

oothly and quickly

…that can be manipulated using standard operations and run consistently on virtually any hardware platform

An engine that enables any payload to be encapsulated as a lightweight, portable, self-sufficient container…

Page 22: Docker Training - June 2015

…or put more simply

Static website Web frontend User DB Queue Analytics DB

Development VM

QA server Public Cloud Contributor’s laptop

Mul

tiplic

ity o

f S

tack

s

Production Cluster

Customer Data Center

Do services and apps interact

appropriately?

Can I m

igrate sm

oothly and quickly

Operator: Configure Once, Run Anything

Developer: Build Once, Run Anywhere (Finally)

Page 23: Docker Training - June 2015

An Open Platform to Build, Ship, and Run Distributed Applications

Page 24: Docker Training - June 2015

Containers vs. VMs

Page 25: Docker Training - June 2015

Why are Docker containers lightweight?

Page 26: Docker Training - June 2015

What are the basics of the Docker system?

Page 27: Docker Training - June 2015

An Open Platform…

API

Engine Hubopen source software at the heart

of the Docker platform cloud-based platform services for distributed

applications

API

Page 28: Docker Training - June 2015

An Open Platform…

Any App

Any infrastructure• Physical• Virtual cloud

+ 75K apps+ 50K projects

API

Engine Hubcloud-based platform services for distributed

applications

API

open source software at the heart of the Docker platform 

Page 29: Docker Training - June 2015

…to Build, Ship, and Run

Build Ship

Run

Dev

QA

Source

Staging

Physical

Virtual

Cloud

Infrastructure Management

Infrastructure Management

DockerFile

Source Code Repository

TESTTEST

TESTTEST

TEST

GCE RAX IBM

Mac/Win Dev Machine

Boot2Docker

Doc

ker

AnalyticsDB

Prod Machine

Linux OS

Doc

ker

Doc

ker

++

Users Collab

Provenance Policy

Docker Hub

Registries

Public Curated Private

Docker Hub API

Third Party Tools

Prod Machine

Linux OS

Doc

ker

Doc

ker

Prod Machine

Linux OS

Doc

ker

Doc

ker

VM

Doc

ker

Doc

ker

VM

Doc

ker

Doc

ker

VM

Doc

ker

Doc

ker

QA Machine

Linux OS

Doc

ker

Doc

ker

Page 30: Docker Training - June 2015

…Distributed Applications

Data

UserDB

Queue

AnalyticsDB

API Endpoint

WebFrontend

Data

Background Workers

Development VM

QA ServerPublic Cloud

Disaster Recovery

Contributor’s LaptopProduction Servers

Production Cluster

Customer Data Center

Page 31: Docker Training - June 2015

• Faster delivery of your applications

• Deploying and scaling more easily

• Achieving higher density and running more workloads

So to finish up, Docker enables

Page 32: Docker Training - June 2015

An Open Platform to Build, Ship, and Run Distributed Applications