639
Solve(scale)
video placeholder
B EN GOLU B CEO | DO CKER
The Future
of Applications
• 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
~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
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
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
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)
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
• 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
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
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
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)
A set of slides from IBM: Comparing Docker (Blue) to VM (Red)
• 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
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’
An Open Platform to Build, Ship, and Run Distributed Applications
An Open Platform…
API
Engine Hub
open source software at the
heart of the Docker platform 
cloud-based platform services
for distributed applications
API
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
…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
…Distributed Applications
Data
User
DB
Queue
Analytics
DB
API
Endpoint
Web
Frontend
Data
Background
Workers
Development VM
QA Server
Disaster Recovery
Contributor’s Laptop
Production Servers
Production Cluster
Customer Data Center
Public Cloud
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
Partner
Ecosystem
Who is Using Docker?
And hundreds of others… these are just a sample of those who have published use cases
Step 6: Build Systems and Infrastructure
to Take Advantage of This New Paradigm
BARE METAL SERVERS
API-drivenInstantly
Available
Highly
Specialized
No
Hypervisor
OnMetal
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
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/
Rackspace::Solve SFO - Solve(Scale) Featuring Docker CEO Ben Golub

Rackspace::Solve SFO - Solve(Scale) Featuring Docker CEO Ben Golub

  • 2.
  • 4.
  • 6.
    B EN GOLUB CEO | DO CKER The Future of Applications
  • 7.
    • The Matrixfrom 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 Developmentis 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 Webfrontend 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 SomeReally 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 thatis 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% ofall 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 thatenables 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 Backgroundworkers 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) HostOS 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 ofslides from IBM: Comparing Docker (Blue) to VM (Red)
  • 18.
    • Container technologyhas 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: MakeContainers 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 Platformto Build, Ship, and Run Distributed Applications
  • 21.
    An Open Platform… API EngineHub open source software at the heart of the Docker platform  cloud-based platform services for distributed applications API
  • 22.
    API Engine Hub cloud-based platformservices 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
  • 24.
    …Distributed Applications Data User DB Queue Analytics DB API Endpoint Web Frontend Data Background Workers Development VM QAServer Disaster Recovery Contributor’s Laptop Production Servers Production Cluster Customer Data Center Public Cloud
  • 25.
    Step 5: Buildan 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
  • 26.
  • 27.
    Who is UsingDocker? And hundreds of others… these are just a sample of those who have published use cases
  • 28.
    Step 6: BuildSystems and Infrastructure to Take Advantage of This New Paradigm BARE METAL SERVERS API-drivenInstantly Available Highly Specialized No Hypervisor OnMetal
  • 29.
    Conclusion • Enables applicationsto 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/