SlideShare a Scribd company logo
Why we need container in Software
Why?
Contents
• The challenge
Pre-[package] dev stack
• WAMP, XAMP
• Java/Tomcat
• Ruby/Rail
It works on MY machine
VM
• closely production env
• annoying configure
Provision a server without logging in
• Ansible, puppet, salt, Chef
• Pre-configure
• Pre-setup
• Environment-path
•  by a shell script
Simple, repeatable VMs
Market View: 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 mobile,
tabletThick, client-server app
on thick client
Well-defined stack:
- O/S
- Runtime
- Middleware
Monolithic
Physical
Infrastructure
Challenges
2015
How to ensure services
interact consistently,
avoid dependency hell
How to migrate & scale
quickly, ensure
compatibility
How to avoid n X n
different configs
Running on any
available set of
physical resources
(public/private/
virtualized)
Assembled by
developers using
best available
services
Thin app on mobile,
tablet
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
The ChallengeMultiplicityofStacks
Multiplicityof
hardware
environments
Production Cluster
Customer Data Center
Doservicesandapps
interact
appropriately?
CanImigrate
smoothlyand
quickly?
Results in N X N 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
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
A useful analogy…
MultiplicityofGoods
Multipilicityof
methodsfor
transporting/storing
DoIworryabout
howgoodsinteract
(e.g.coffeebeans
nexttospices)
CanItransportquickly
andsmoothly
(e.g.fromboattotrain
totruck)
Cargo Transport Pre-1960
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
Also an NxN Matrix
Contents
• The challenge
• The solution
MultiplicityofGoods
Multiplicityof
methodsfor
transporting/storing
DoIworryabout
howgoodsinteract
(e.g.coffeebeans
nexttospices)
CanItransport
quicklyandsmoothly
(e.g.fromboatto
traintotruck)
Solution: Intermodal Shipping Container
…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…
and spawned an Intermodal Shipping Container Ecosystem
• 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 globalizations
• 5000 ships deliver 200M containers per year
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
MultiplicityofStacks
Multiplicityof
hardware
environments
Production
Cluster
Customer Data
Center
Doservicesandapps
interact
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…
Static website Web frontendUser DB Queue Analytics DB
Development
VM
QA server Public Cloud Contributor’s
laptop
Or…put more simplyMultiplicityofStacks
Multiplicityof
hardware
environments
Production
Cluster
Customer Data
Center
Doservicesandapps
interact
appropriately?
CanImigrate
smoothlyandquickly
Operator: Configure Once, Run
Anything
Developer: Build Once, Run
Anywhere (Finally)
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
Docker solves the NXN problem
Why containers matter
Physical Containers Docker
Content Agnostic The same container can hold almost any
type of cargo
Can encapsulate any payload and its
dependencies
Hardware Agnostic Standard shape and interface allow same
container to move from ship to train to
semi-truck to warehouse to crane
without being modified or opened
Using operating system primitives (e.g. LXC)
can run consistently on virtually any
hardware—VMs, bare metal, openstack,
public IAAS, etc.—without modification
Content Isolation and
Interaction
No worry about anvils crushing bananas.
Containers can be stacked and shipped
together
Resource, network, and content isolation.
Avoids dependency hell
Automation Standard interfaces make it easy to
automate loading, unloading, moving,
etc.
Standard operations to run, start, stop,
commit, search, etc. Perfect for devops: CI,
CD, autoscaling, hybrid clouds
Highly efficient No opening or modification, quick to
move between waypoints
Lightweight, virtually no perf or start-up
penalty, quick to move and manipulate
Separation of duties Shipper worries about inside of box,
carrier worries about outside of box
Developer worries about code. Ops worries
about infrastructure.
Container
• A container is a stripped-to-basics (mimic OS kernel) version of
a Linux operating system.
Image
• An image is software you load into a container.
• hello-world: is simple app, can do a simple task as echo
• Wordpress: is complex app, run database, wait for data, ...
• or setup Ubuntu bash shell
App
A
Containers vs. VMs
Hypervisor (Type 2)
Host OS
Server
Guest
OS
Bins/
Libs
App
A’
Guest
OS
Bins/
Libs
App
B
Guest
OS
Bins/
Libs
AppA’
Docker
Host OS
Server
Bins/Libs
AppA
Bins/Libs
AppB
AppB’
AppB’
AppB’
VM
Container
Containers are isolated,
but share OS and, where
appropriate, bins/libraries
Guest
OS
Guest
OS
Why are Docker containers lightweight?
Bins/
Libs
App
A
Original App
(No OS to take
up space, resources,
or require restart)
AppΔ
Bins/
App
A
Bins/
Libs
App
A’
Guest
OS
Bins/
Libs
Modified App
Union file system allows
us to only save the diffs
Between container A
and container
A’
VMs
Every app, every copy of an
app, and every slight modification
of the app requires a new virtual server
App
A
Guest
OS
Bins/
Libs
Copy of
App
No OS. Can
Share bins/libs
App
A
Guest
OS
Guest
OS
VMs Containers
Changes and Updates
Docker Engine
Docker
Container
Image
Registry
Docker Engine
Push
Update
Bins/
Libs
App
A
AppΔ
Bins/
Base
Container
Image
Host is now running A’’
Container
Mod A’’
AppΔ
Bins/
Bins/
Libs
App
A
Bins/
Bins/
Libs
App
A’’
Host running A wants to upgrade to A’’.
Requests update. Gets only diffs
Container
Mod A’

More Related Content

PDF
Virtual Machines and Docker
Danish Khakwani
 
PPTX
Docker
Vitaly Tsaplin
 
PDF
Introduction to docker
Hiroki Endo
 
PDF
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
Lakmal Warusawithana
 
PDF
Docker introduction for Carbon IT
yannick grenzinger
 
PDF
Docker Introduction
MANAOUIL Karim
 
PDF
Docker Architecture (v1.3)
rajdeep
 
PDF
Docker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Jérôme Petazzoni
 
Virtual Machines and Docker
Danish Khakwani
 
Introduction to docker
Hiroki Endo
 
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
Lakmal Warusawithana
 
Docker introduction for Carbon IT
yannick grenzinger
 
Docker Introduction
MANAOUIL Karim
 
Docker Architecture (v1.3)
rajdeep
 
Docker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Jérôme Petazzoni
 

What's hot (20)

ODP
Ruby and Docker on Rails
Muriel Salvan
 
PDF
Docker Introduction
Sparkbit
 
PPTX
Containers and docker
SUDIP GHOSH
 
PDF
JOSA TechTalk: Introduction to docker
Jordan Open Source Association
 
PPTX
Docker Basics
DuckDuckGo
 
PDF
Intro to containerization
Balint Pato
 
PDF
Docker - introduction
Michał Kurzeja
 
PDF
Understand how docker works
Justin Li
 
PDF
Shipping Applications to Production in Containers with Docker
Jérôme Petazzoni
 
PDF
Orchestrating Docker containers at scale
Maciej Lasyk
 
PDF
Introduction to Docker - Docker workshop @Twitter
dotCloud
 
PDF
Visualising Basic Concepts of Docker
vishnu rao
 
PDF
Intro To Docker
Jessica Lucci
 
PDF
Docker
Patrick Oberdorf
 
PPTX
Introduction to Docker
Google Developer Group Zürich
 
PDF
Docker and the Linux Kernel
Docker, Inc.
 
PPTX
Performance comparison between Linux Containers and Virtual Machines
Soheila Dehghanzadeh
 
PDF
Introduction to docker
Jim Yeh
 
PDF
Introduction To Docker
Hamilton Turner
 
PDF
Docker 101 - Getting started
Matheus Marabesi
 
Ruby and Docker on Rails
Muriel Salvan
 
Docker Introduction
Sparkbit
 
Containers and docker
SUDIP GHOSH
 
JOSA TechTalk: Introduction to docker
Jordan Open Source Association
 
Docker Basics
DuckDuckGo
 
Intro to containerization
Balint Pato
 
Docker - introduction
Michał Kurzeja
 
Understand how docker works
Justin Li
 
Shipping Applications to Production in Containers with Docker
Jérôme Petazzoni
 
Orchestrating Docker containers at scale
Maciej Lasyk
 
Introduction to Docker - Docker workshop @Twitter
dotCloud
 
Visualising Basic Concepts of Docker
vishnu rao
 
Intro To Docker
Jessica Lucci
 
Introduction to Docker
Google Developer Group Zürich
 
Docker and the Linux Kernel
Docker, Inc.
 
Performance comparison between Linux Containers and Virtual Machines
Soheila Dehghanzadeh
 
Introduction to docker
Jim Yeh
 
Introduction To Docker
Hamilton Turner
 
Docker 101 - Getting started
Matheus Marabesi
 
Ad

Similar to Why we need container in Software (20)

PDF
Demystifying Containerization Principles for Data Scientists
Dr Ganesh Iyer
 
PPTX
Docker 101 - High level introduction to docker
Dr Ganesh Iyer
 
PDF
Are VM Passé?
dotCloud
 
PDF
Are VMs Passé?
Docker, Inc.
 
PPTX
The challenge of application distribution - Introduction to Docker (2014 dec ...
Sébastien Portebois
 
PDF
Rackspace::Solve SFO - Solve(Scale) Featuring Docker CEO Ben Golub
Rackspace
 
PPTX
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Jonas Rosland
 
PDF
Dockers and kubernetes
Dr Ganesh Iyer
 
PDF
Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineer...
Rackspace
 
PPTX
Hypervisor "versus" Linux Containers with Docker !
Francisco Gonçalves
 
PPTX
Docker Training - June 2015
{code}
 
PPTX
Why Docker
dotCloud
 
PPTX
Docker, Containers and the Future of Application Delivery
Docker, Inc.
 
PPTX
Docker - A high level introduction to dockers and containers
Dr Ganesh Iyer
 
PDF
Docker and Containers overview - Docker Workshop
Jonas Rosland
 
PPTX
Why docker | OSCON 2013
dotCloud
 
PPTX
Docker, Containers and the Future of Application Delivery
Docker, Inc.
 
PDF
Getting Started with Docker - Nick Stinemates
Atlassian
 
PDF
Containing the world with Docker
Giuseppe Piccolo
 
PPTX
Docker open stack boston
dotCloud
 
Demystifying Containerization Principles for Data Scientists
Dr Ganesh Iyer
 
Docker 101 - High level introduction to docker
Dr Ganesh Iyer
 
Are VM Passé?
dotCloud
 
Are VMs Passé?
Docker, Inc.
 
The challenge of application distribution - Introduction to Docker (2014 dec ...
Sébastien Portebois
 
Rackspace::Solve SFO - Solve(Scale) Featuring Docker CEO Ben Golub
Rackspace
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Jonas Rosland
 
Dockers and kubernetes
Dr Ganesh Iyer
 
Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineer...
Rackspace
 
Hypervisor "versus" Linux Containers with Docker !
Francisco Gonçalves
 
Docker Training - June 2015
{code}
 
Why Docker
dotCloud
 
Docker, Containers and the Future of Application Delivery
Docker, Inc.
 
Docker - A high level introduction to dockers and containers
Dr Ganesh Iyer
 
Docker and Containers overview - Docker Workshop
Jonas Rosland
 
Why docker | OSCON 2013
dotCloud
 
Docker, Containers and the Future of Application Delivery
Docker, Inc.
 
Getting Started with Docker - Nick Stinemates
Atlassian
 
Containing the world with Docker
Giuseppe Piccolo
 
Docker open stack boston
dotCloud
 
Ad

Recently uploaded (20)

PPT
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
PPTX
Role Of Python In Programing Language.pptx
jaykoshti048
 
PDF
Jenkins: An open-source automation server powering CI/CD Automation
SaikatBasu37
 
PDF
Protecting the Digital World Cyber Securit
dnthakkar16
 
PDF
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
PDF
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
PPTX
ConcordeApp: Engineering Global Impact & Unlocking Billions in Event ROI with AI
chastechaste14
 
PDF
Exploring AI Agents in Process Industries
amoreira6
 
PPTX
Explanation about Structures in C language.pptx
Veeral Rathod
 
PPTX
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
DOCX
Can You Build Dashboards Using Open Source Visualization Tool.docx
Varsha Nayak
 
PPTX
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
PDF
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
PDF
Adobe Illustrator Crack Full Download (Latest Version 2025) Pre-Activated
imang66g
 
PPTX
PFAS Reporting Requirements 2026 Are You Submission Ready Certivo.pptx
Certivo Inc
 
PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
ESUG
 
PPTX
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
PDF
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
PDF
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
PDF
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
Role Of Python In Programing Language.pptx
jaykoshti048
 
Jenkins: An open-source automation server powering CI/CD Automation
SaikatBasu37
 
Protecting the Digital World Cyber Securit
dnthakkar16
 
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
ConcordeApp: Engineering Global Impact & Unlocking Billions in Event ROI with AI
chastechaste14
 
Exploring AI Agents in Process Industries
amoreira6
 
Explanation about Structures in C language.pptx
Veeral Rathod
 
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Can You Build Dashboards Using Open Source Visualization Tool.docx
Varsha Nayak
 
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
Adobe Illustrator Crack Full Download (Latest Version 2025) Pre-Activated
imang66g
 
PFAS Reporting Requirements 2026 Are You Submission Ready Certivo.pptx
Certivo Inc
 
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
ESUG
 
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 

Why we need container in Software

  • 4. Pre-[package] dev stack • WAMP, XAMP • Java/Tomcat • Ruby/Rail
  • 5. It works on MY machine
  • 6. VM • closely production env • annoying configure
  • 7. Provision a server without logging in • Ansible, puppet, salt, Chef • Pre-configure • Pre-setup • Environment-path •  by a shell script
  • 9. Market View: 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 mobile, tabletThick, client-server app on thick client Well-defined stack: - O/S - Runtime - Middleware Monolithic Physical Infrastructure
  • 10. Challenges 2015 How to ensure services interact consistently, avoid dependency hell How to migrate & scale quickly, ensure compatibility How to avoid n X n different configs Running on any available set of physical resources (public/private/ virtualized) Assembled by developers using best available services Thin app on mobile, tablet
  • 11. 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 The ChallengeMultiplicityofStacks Multiplicityof hardware environments Production Cluster Customer Data Center Doservicesandapps interact appropriately? CanImigrate smoothlyand quickly?
  • 12. Results in N X N 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 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • 15. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Also an NxN Matrix
  • 17. MultiplicityofGoods Multiplicityof methodsfor transporting/storing DoIworryabout howgoodsinteract (e.g.coffeebeans nexttospices) CanItransport quicklyandsmoothly (e.g.fromboatto traintotruck) Solution: Intermodal Shipping Container …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.
  • 18. This eliminated the NXN problem…
  • 19. and spawned an Intermodal Shipping Container Ecosystem • 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 globalizations • 5000 ships deliver 200M containers per year
  • 20. 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 MultiplicityofStacks Multiplicityof hardware environments Production Cluster Customer Data Center Doservicesandapps interact 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…
  • 21. Static website Web frontendUser DB Queue Analytics DB Development VM QA server Public Cloud Contributor’s laptop Or…put more simplyMultiplicityofStacks Multiplicityof hardware environments Production Cluster Customer Data Center Doservicesandapps interact appropriately? CanImigrate smoothlyandquickly Operator: Configure Once, Run Anything Developer: Build Once, Run Anywhere (Finally)
  • 22. 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 Docker solves the NXN problem
  • 23. Why containers matter Physical Containers Docker Content Agnostic The same container can hold almost any type of cargo Can encapsulate any payload and its dependencies Hardware Agnostic Standard shape and interface allow same container to move from ship to train to semi-truck to warehouse to crane without being modified or opened Using operating system primitives (e.g. LXC) can run consistently on virtually any hardware—VMs, bare metal, openstack, public IAAS, etc.—without modification Content Isolation and Interaction No worry about anvils crushing bananas. Containers can be stacked and shipped together Resource, network, and content isolation. Avoids dependency hell Automation Standard interfaces make it easy to automate loading, unloading, moving, etc. Standard operations to run, start, stop, commit, search, etc. Perfect for devops: CI, CD, autoscaling, hybrid clouds Highly efficient No opening or modification, quick to move between waypoints Lightweight, virtually no perf or start-up penalty, quick to move and manipulate Separation of duties Shipper worries about inside of box, carrier worries about outside of box Developer worries about code. Ops worries about infrastructure.
  • 24. Container • A container is a stripped-to-basics (mimic OS kernel) version of a Linux operating system.
  • 25. Image • An image is software you load into a container. • hello-world: is simple app, can do a simple task as echo • Wordpress: is complex app, run database, wait for data, ... • or setup Ubuntu bash shell
  • 26. App A Containers vs. VMs Hypervisor (Type 2) Host OS Server Guest OS Bins/ Libs App A’ Guest OS Bins/ Libs App B Guest OS Bins/ Libs AppA’ Docker Host OS Server Bins/Libs AppA Bins/Libs AppB AppB’ AppB’ AppB’ VM Container Containers are isolated, but share OS and, where appropriate, bins/libraries Guest OS Guest OS
  • 27. Why are Docker containers lightweight? Bins/ Libs App A Original App (No OS to take up space, resources, or require restart) AppΔ Bins/ App A Bins/ Libs App A’ Guest OS Bins/ Libs Modified App Union file system allows us to only save the diffs Between container A and container A’ VMs Every app, every copy of an app, and every slight modification of the app requires a new virtual server App A Guest OS Bins/ Libs Copy of App No OS. Can Share bins/libs App A Guest OS Guest OS VMs Containers
  • 28. Changes and Updates Docker Engine Docker Container Image Registry Docker Engine Push Update Bins/ Libs App A AppΔ Bins/ Base Container Image Host is now running A’’ Container Mod A’’ AppΔ Bins/ Bins/ Libs App A Bins/ Bins/ Libs App A’’ Host running A wants to upgrade to A’’. Requests update. Gets only diffs Container Mod A’

Editor's Notes

  • #2: Docker, Containers, and the Future of Application Delivery