NOTE: Accompanying video is available for viewing at http://bit.ly/1k56U46
What does intermodal shipping have to do with managing your app’s components in different environments? Speed and portability. Docker CEO Ben Golub spoke at Rackspace::Solve in San Francisco to discuss how the right infrastructure can mean success and peace of mind.
6. B EN GOLU B CEO | DO CKER
The Future
of Applications
7. • The Matrix from Hell and the Need for Containers
• Docker & Containers: how they work
• Docker Overview and Docker Ecosystem
• Current Usage and Adoption
• Creating an Open Environment
• Docker Roadmap & Business Model
Agenda
8. ~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
9. User DB
Static website
Web frontend
Queue
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 server
Public Cloud
Disaster recovery
Contributor’s laptop
Production Servers
Production Cluster
Customer Data Center
Mul$plicity
of
Stacks
Mul$plicity
of
hardware
environments
Do
services
and
apps
interact
appropriately?
Can
I
migrate
smoothly
and
quickly?
The Problem in 2014
10. Static website ? ? ? ? ? ? ?
Web frontend ? ? ? ? ? ? ?
Background workers ? ? ? ? ? ? ?
User DB ? ? ? ? ? ? ?
Analytics DB ? ? ? ? ? ? ?
Queue ? ? ? ? ? ? ?
Development
VM
QA
Server
Single Prod
Server
Onsite Cluster Public Cloud
Contributor’s
laptop
Customer
Servers
The Matrix From Hell
11. An Inspiration…and Some Really Ancient History:
Cargo Transport Pre-1960
Mul$plicity
of
GoodsMul$pilicity
of
methods
for
transpor$ng/storing
Do
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)
12. A standard container
that is loaded with
virtually any goods,
and stays sealed until it
reaches final delivery.
Mul$plicity
of
GoodsMul$pilicity
of
methods
for
transpor$ng/storing
Do
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
Solution: Intermodal Shipping Container
13. • 90% of all cargo now shipped in a standard container
• Order of magnitude reduction in cost and time to load and unload ships
• Massive reduction in losses due to theft or damage
• Huge reduction in freight cost as percent of final goods (from >25% to <3%)
àMassive globalization
• 5000 ships deliver 200M containers per year
This Spawned an Intermodal
Shipping Container Ecosystem
14. An engine that enables any
payload to be encapsulated
as a lightweight, portable,
self-sufficient container…
…that can be manipulated
using standard operations
and run consistently on
virtually any hardware
platform
Let’s Create a Shipping Container
System for Applications
Static website User DB Analytics DBQueueWeb frontend
Mul$plicity
of
StacksMul$plicity
of
hardware
environments
Do
services
and
apps
interact
appropriately?
Can
I
migrate
smoothly
and
quickly
Development
VM
QA
server
Public
Cloud
Contributor’s
laptop
Production
Cluster
Customer
Data Center
15. Static website
Web frontend
Background workers
User DB
Analytics DB
Queue
Development
VM
QA
Server
Single Prod
Server
Onsite Cluster Public Cloud
Contributor’s
laptop
Customer
Servers
And Eliminate the Matrix from Hell
16. Hypervisor (Type 2)
Host OS
Server
VM
Containers are isolated, but
share OS kernel and, where
appropriate, bins/libraries
…result is significantly faster deployment, much
less overhead, easier migration, faster restart
App
A
Bins/
Libs
Guest
OS
App
A’
Bins/
Libs
Guest
OS
App
B
Bins/
Libs
Guest
OS
App
A’
Host OS
Server
App
A
App
B
App
B’
App
B’
App
B’
Container
Bins/Libs Bins/Libs
Step One: Create a Lightweight Container
(vs. VMs)
17. A set of slides from IBM: Comparing Docker (Blue) to VM (Red)
18. • Container technology has been around for a while
• Use limited to specialized organizations, tools & training. Containers were not
portable
• Analogy: Shipping containers are not just steel boxes.
• With Docker, Containers get the following:
-‐ Ease of use, tooling
-‐ Re-usable components
-‐ Portable
-‐ Able to move between any of the above in a matter
of seconds-no modification or delay
-‐ Ability to share containerized components
-‐ Interoperability with all existing devops tools
-‐ Self contained environment—no dependency hell
-‐ Tools for how containers work together: linking, nesting,
discovery, orchestration, ++
Type 1 Hypervisor Linux Containers docker
Step 2: Make the Containers Easy to Use,
Standardized, Interoperable, Automatable
19. Step 3: Make Containers Super Lightweight
Bins/
Libs
App
A
App
Δ
B/L
Every app, every copy
of an app, and every slight
modification of the app
requires a new virtual server
App
A
VMs Containers
App
A
App
A
App
A’
Guest
OS
VMs
(No OS to
take up space,
resources,
or require restart)
Original App
No OS. Can
Share bins/libs
Copy of App
Copy on write
allows us to only
save the diffs
Between container
A and container A’
Modified App
Guest
OS
Guest
OS
Bins/
Libs
Bins/
Libs
Bins/
Libs
App
A
App
A
App
A’
20. An Open Platform to Build, Ship, and Run Distributed Applications
21. An Open Platform…
API
Engine Hub
open source software at the
heart of the Docker platform
cloud-based platform services
for distributed applications
API
22. API
Engine Hub
cloud-based platform services
for distributed applications
API
open source software at the heart
of the Docker platform
An Open Platform…
Any App
• + 20K apps
• + 10K projects
• Physical
• Virtual cloud
Any Infrastructure
23. …to Build, Ship, and Run
Build Ship
Run
Dev
QA
Source
Staging
Physical
Virtual
Cloud
Infrastructure Management
Infrastructure Management
DockerFil
e
Source Code
Repository
TESTTEST
TESTTEST
TEST
GCE RAX IBM
Mac/Win Dev
Machine
Docker
Analytics
DB
Prod Machine
DockerDocker
++
Users Collab
Provenance Policy
Docker Hub
Registries
Public Curated Private
Docker Hub API
Third Party Tools
Prod Machine
DockerDocker
Prod Machine
DockerDocker
VM
DockerDocker
VM
DockerDocker
VM
DockerDocker
QA Machine
DockerDocker
Boot2Docker
Linux OS
Linux OS Linux OS Linux OS
25. Step 5: Build an Ecosystem
Official Repos & 14K+ Dockerized Apps
Community
• 500+ Contributors
• 250+ Meetups on Docker
• 6M Downloads
• 10K Projects on GitHub
Support
• Enterprise Support
• Robust Documentation
• Implementation, Integration,
Training
• Network of Partners
The Docker Platform
• Docker Engine
• Docker Hub
Partners
Content
Users
Build, Ship, and Run
27. Who is Using Docker?
And hundreds of others… these are just a sample of those who have published use cases
28. Step 6: Build Systems and Infrastructure
to Take Advantage of This New Paradigm
BARE METAL SERVERS
API-drivenInstantly
Available
Highly
Specialized
No
Hypervisor
OnMetal
29. Conclusion
• Enables applications to be built
flexibly and deployed flexibly
• Provides greater degree of visibility,
control, and management of what
runs where and what components
are allowed
• Massive cost, speed, efficiency
savings
• Docker is becoming the standard
for containerization
• Rackspace is a true leader in
enabling this revolution!
• Multiple forces are driving a
reconsideration of how applications
should be created, built, deployed,
scaled, and managed
• We believe that the right approach
is to decouple application
management from infrastructure
management
• Container based approach
(vs. VM approach) provides right
level of abstraction
• Enables infrastructure to be
managed consistently and stably
30. Learn More
All slides & talks from DockerCon dockercon.com
Security & Isolation: see above, also blog.docker.com
Docker project: www.docker.com/
Follow Docker on Twitter: twitter.com/docker
Take the Docker interactive tutorial: www.docker.com/gettingstarted/
Join Docker on IRC: botbot.me/freenode/docker/
Go to the Docker repository on GitHub: github.com/dotcloud/docker/
Go to a meetup: www.docker.io/community/#Docker-Meetups
See what others are doing: www.docker.io/community/