5. 5
Evolution of IT
1995 2015
Running on any
available set of
physical resources
(public/private/
virtualized)
Assembled by
developers using
best available
services
Thin app on
web or mobileThick, client-server
app on thick client
Well-defined stack:
- O/S
- Runtime
- Middleware
Monolithic
Physical
Infrastructure
Source: http://www.slideshare.net/dotCloud/why-docker
6. Challenges
2015
How to ensure services
interact consistently,
avoid dependency hell
Running on any
available set of
physical resources
(public/private/
virtualized)
Assembled by
developers using
best available
services
Thin app on
web or mobile
Source: http://www.slideshare.net/dotCloud/why-docker
How to migrate & scale
quickly, and ensure
compatibility
How to avoid N×M
different configurations
7. 7
Static website
Web frontend
User DB
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
Challenges
MultiplicityofStacksMultiplicityof
hardware
environments
Production Cluster
Customer Data Center
Doservicesand
appsinteract
appropriately?
CanImigrate
smoothlyand
quickly?
Source: http://www.slideshare.net/dotCloud/why-docker
8. 8
Results in N×M compatibility nightmare
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
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
Source: http://www.slideshare.net/dotCloud/why-docker
12. 12
Static website Web frontendUser DB Queue Analytics DB
Development
VM
QA server Public Cloud Contributor’s
laptop
Docker is a shipping container system for code
MultiplicityofStacksMultiplicityof
hardware
environments
Production
Cluster
Customer Data
Center
Doservicesand
appsinteract
appropriately?
CanImigrate
smoothlyandquickly
…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…
Source: http://www.slideshare.net/dotCloud/why-docker
13. App
A
Containers vs. VMs
Host OS
Infrastructure
Guest
OS
Bins/
Libs
App
A’
Bins/
Libs
App
B
Bins/
Libs
AppA’
Docker
Infrastructure
AppA
VM
Container
Containers are isolated,
but share OS and, where
appropriate, bins/libraries
Bins/
Libs
Source: http://www.slideshare.net/dotCloud/why-docker
Guest
OS
Bins/
Libs
Guest
OS
AppB
AppB’
AppB’
AppB’
Host OS
Hypervisor (Type 2)
14. Why the Business Care
“… make your local development and build workflow faster,
more efficient, and more lightweight.”
- James Turnbull, The Docker Book: Containerization is the
new virtualization
15. Why Developers Care
“Docker interests me because it allows simple
environment isolation and repeatability. I can create a
run-time environment once, package it up, then run it
again on any other machine. Furthermore, everything
that runs in that environment is isolated from the
underlying host (much like a virtual machine).
And best of all, everything is fast and simple.”
- Gregory Szorc, Mozilla Foundation
Source: http://www.slideshare.net/dotCloud/why-docker
16. Why Operations Care
With Docker, Developers care about their applications running
inside containers, and Operations cares about managing the
containers.
- James Turnbull, The Docker Book: Containerization is the
new virtualization