Post on 14-Jul-2015
An Open Platform to Build, Ship, and Run Distributed Applications
whoami
Jonas Rosland
Developer Advocate
EMC {code}
emccode.github.io
@virtualswede
jonas.rosland@emc.com
March 20, 2013: Docker Launches
https://www.youtube.com/watch?v=wW9CAH9nSLs
15 Months Later: An Incredible Platform and Ecosystem
Official Repos & 14K+ Dockerized Apps
Community
460+ Contributors
250+ Meetups on Docker
2.75M Downloads
6.7K Projects on GitHub
Support
Enterprise Support
Robust Documentation
Implementation, Integration, Training
Network of Partners
The Docker Platform
Docker EngineDocker Hub
Build, Ship, and Run
Partners
Content
Users
24 Months Later: An Incredible Platform and Ecosystem
Official Repos & 14K+ Dockerized Apps
Community
790+ Contributors
150+ Meetup Groups
100M+ Downloads
50K Projects on GitHub
Support
Enterprise Support
Robust Documentation
Implementation, Integration, Training
Network of Partners
The Docker Platform
Docker EngineDocker Hub 75K Apps in the Hub
Build, Ship, and Run
Partners
Content
Users
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
• +++
Thank You Users/Use Cases*
*A small subset of the 100s who are using and/or writing about us
Thanks to those above for talking about their experiences at DockerCon
• Using Docker in our ECS appliances
And of course…
Thank You Partner Ecosystem
Agenda
Official Repos & 14K + Dockerized Apps
Partners
Content
Users
Community
460+ Contributors
250+ Meetups on Docker
2.75M Downloads
6.7K Projects on GitHub
Support
Enterprise Support
Robust Documentation
Implementation, Integration, Training
Network of Partners
The Docker Platform
Docker Engine
Docker Hub
Build, Ship, and Run
~2000 2014
Long 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
Static website
Web frontend
User DB
Queue
Analytics DB
Background workersAPI 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 Server
Public Cloud
Disaster Recovery
Contributor’s LaptopProduction Servers
Mu
ltip
lic
ity o
f S
tac
ks
Mu
ltip
lic
ity o
f H
ard
wa
re
En
vir
on
me
nts
Production Cluster
Customer Data Center
Do
se
rvic
es
an
d a
pp
s
inte
ract a
pp
rop
riate
ly?
Ca
n I m
igra
te s
mo
oth
ly
an
d q
uic
kly
?
The Problem in 2014
Results in NxN compatibility nightmare
Static website
Web frontend
Background workers
User DB
Analytics DB
Queue
Development
VMQA Server
Single Prod
Server
Onsite
ClusterPublic Cloud
Contributor’s
laptop
Customer
Servers
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
A useful analogy…
Cargo Transport Pre-1960M
ult
iplicit
y o
f
Go
od
sM
ult
iplicit
y o
f
me
tho
ds f
or
tran
sp
ort
ing
/sto
rin
g
Do
I wo
rry a
bo
ut h
ow
go
od
s in
tera
ct (e
.g.
co
ffee
be
an
s n
ex
t to
sp
ice
s)
Ca
n I tra
ns
po
rt qu
ick
ly
an
d s
mo
oth
ly
(e.g
. from
bo
at to
train
to tru
ck
)
Also an NxN Matrix
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
Solution: Intermodal Shipping ContainerM
ultip
licity o
f
Goods
Do
I wo
rry a
bo
ut h
ow
goods in
tera
ct (e
.g.
co
ffee
be
an
s n
ext to
sp
ice
s)
Ca
n I tra
nsp
ort q
uic
kly
an
d s
mo
oth
ly
(e.g
. from
boat to
train
to tru
ck)
…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.
This eliminated the NxN problem
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
Docker is a shipping container system for code
Static website Web frontend User DB Queue Analytics DB
Developmen
t VMQA server Public Cloud Contributor’
s laptop
Multip
licity o
f
Sta
cks
Production
ClusterCustomer
Data Center
Do s
erv
ices a
nd
apps in
tera
ct
appro
pria
tely
?
Can I m
igra
te
sm
ooth
ly a
nd
qu
ickly
…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…
…or put more simply
Static website Web frontend User DB Queue Analytics DB
Developmen
t VMQA server Public Cloud Contributor’
s laptop
Multip
licity o
f
Sta
cks
Production
ClusterCustomer
Data Center
Do s
erv
ices a
nd
apps in
tera
ct
appro
pria
tely
?
Can I m
igra
te
sm
ooth
ly a
nd
qu
ickly
Operator: Configure Once,
Run Anything
Developer: Build Once,
Run Anywhere (Finally)
An Open Platform to Build, Ship, and Run Distributed Applications
Containers vs. VMs
Why are Docker containers lightweight?
What are the basics of the Docker system?
An Open Platform…
API
Engine Hub
open source software at the heart of the Docker platform
cloud-based platform services for distributed applications
API
An Open Platform…
Any App
Any infrastructure
• Physical
• Virtual cloud
+ 75K apps
+ 50K projects
API
Engine Hub
cloud-based platform services for distributed applications
API
open source software at the heart of the Docker platform
…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
Docker
AnalyticsDB
Prod Machine
Linux OS
Docker
Docker
++
Users Collab
Provenance Policy
Docker Hub
Registries
Public Curated Private
Docker Hub API
Third Party Tools
Prod Machine
Linux OS
Docker
Docker
Prod Machine
Linux OS
Docker
Docker
VM
Docker
Docker
VM
Docker
Docker
VM
Docker
Docker
QA Machine
Linux OS
Docker
Docker
…Distributed Applications
Data
UserDB
Queue
AnalyticsDB
API Endpoint
Web
Frontend
Data
BackgroundWorkers
Development VM
QA Server
Public Cloud
Disaster Recovery
Contributor’s LaptopProduction Servers
Production Cluster
Customer Data Center
• Faster delivery of your applications
• Deploying and scaling more easily
• Achieving higher density and running more
workloads
So to finish up, Docker enables
An Open Platform to Build, Ship, and Run Distributed Applications