SlideShare una empresa de Scribd logo
1 de 32
Building Infrastructure with
Containers
Pradeep Padala, Co-Founder/CTO
Presented at SJSU Operating Systems Class in Dec 2015
Operating System Level Virtualization
©ContainerX, http://containerx.io, @ContainerXInc
Containers
©ContainerX, http://containerx.io, @ContainerXInc
How to contain?
darth
(user: root)
(pid: 1)
luke
(user: root)
(pid: 2)
©ContainerX, http://containerx.io, @ContainerXInc
©ContainerX, http://containerx.io, @ContainerXInc
How to contain?
darth
(user: root)
(pid: 1)
luke
(user: root)
(pid: 2)
# pkill -9 luke
©ContainerX, http://containerx.io, @ContainerXInc
What If Darth can’t see Luke?
darth
(user: root)
(pid: 1)
luke
(user: root)
(pid: 2)
# pkill -9 luke
process not found
©ContainerX, http://containerx.io, @ContainerXInc
How to contain?
1. PID isolation
©ContainerX, http://containerx.io, @ContainerXInc
But, Darth can still see Luke 
darth
(user: root)
(pid: 1)
luke
(user: root)
(pid: 2)
# pkill -9 luke
process not found
# cd /home/luke
# rm –rf *
©ContainerX, http://containerx.io, @ContainerXInc
How to contain?
Namespaces
1. PID
2. File system (or mount)
3. UTS – isolate hostname, nodename
4. IPC – mq and other IPC objects
5. Network – sockets, IP address, network stack
6. …
©ContainerX, http://containerx.io, @ContainerXInc
Darth can’t see Luke!
darth
(user: root)
(pid: 1)
luke
(user: root)
(pid: 2)
# pkill -9 luke
process not found
# cd /home/luke
no such directory
©ContainerX, http://containerx.io, @ContainerXInc
But, resources are shared
darth
(user: root)
(pid: 1)
luke
(user: root)
(pid: 2)
# cat /dev/zero > /dev/null
©ContainerX, http://containerx.io, @ContainerXInc
Use cgroups to limit resources
group limitcpu {
cpu { cpu.shares = 400; }
}
group limitmem {
memory { memory.limit_in_bytes = 512m; }
}
©ContainerX, http://containerx.io, @ContainerXInc
How to contain?
1. Namespaces
2. Cgroups
©ContainerX, http://containerx.io, @ContainerXInc
We are not done yet
darth
(user: nonroot)
(pid: 1)
luke
(user: root)
(pid: 2)
$ bindto 22
©ContainerX, http://containerx.io, @ContainerXInc
Capabilities
Two modes
1. Run as root, deny all, grant selected capabilities
2. Run as non-root, grant selected capabilities
a) grant net_bind_service
©ContainerX, http://containerx.io, @ContainerXInc
How to contain?
1. Namespaces
2. Cgroups
3. Capabilities
©ContainerX, http://containerx.io, @ContainerXInc
Container Stack
Linux kernel with lxc
lxc user-space tools cgroups
Docker
©ContainerX, http://containerx.io, @ContainerXInc
Docker is a wrapper around lxc
simplifies container creation
©ContainerX, http://containerx.io, @ContainerXInc
Docker Images
Source: https://docs.docker.com/terms/layer/
©ContainerX, http://containerx.io, @ContainerXInc
Build layers using Dockerfile
FROM ubuntu
RUN apt-get install -y apache2
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
©ContainerX, http://containerx.io, @ContainerXInc
Build, Run and Inspect a container
• Setup a Docker host using docker-machine
• Write a Dockerfile
• Build
• Run
• Inspect
©ContainerX, http://containerx.io, @ContainerXInc
Demo
©ContainerX, http://containerx.io, @ContainerXInc
How to manage multiple hosts and
containers?
• It’s easy to setup a Docker hos and run a container
• It’s “super hard” to manage many of them, why?
1. Scale
2. Allocating resources (compute, storage and network)
3. Day-to-day management
4. Running infrastructure efficiently
©ContainerX, http://containerx.io, @ContainerXInc
The Container Platform for Enterprise IT
©ContainerX, http://containerx.io, @ContainerXInc
kernel
lxc cg
Docker
kernel
lxc cg
Docker
kernel
lxc cg
Docker
kernel
lxc cg
Docker
kernel
lxc cg
Docker
On-Premise Cloud
©ContainerX, http://containerx.io, @ContainerXInc
Host and Container Management
• Cluster concept – aggregation
• Elasticity
• Addition and deletion of hosts
• Automatically in cloud environments
• Horizontal scaling
• Storage
• Network
©ContainerX, http://containerx.io, @ContainerXInc
Resource Management
0%
Green Container Pool
CPU Limit: 30%
Mem Limit: 30%
Priority: Medium
20% 0%
Yellow Container Pool
CPU Limit: 60%
Mem Limit: 70%
Priority: High
60%0%
Blue Container Pool
CPU Limit: 30%
Mem Limit: 20%
Priority: Low
20%
30%30% 40%
©ContainerX, http://containerx.io, @ContainerXInc
Resource Management Trade-offs
Utilization
vs
Isolation
©ContainerX, http://containerx.io, @ContainerXInc
Many Scheduling Algorithms
What works?
• Feedback based algorithms
• Simple heuristics
• Extensive simulation to understand corner cases
Real-world robustness is most important!
©ContainerX, http://containerx.io, @ContainerXInc
Cluster scheduling – feedback loop
Monitor
Control
Action
Stats
Performance goals
Control parameters
Model
Model can model
applications, containers,
and underlying resources
Change allocation
©ContainerX, http://containerx.io, @ContainerXInc
Summary
• What are containers?
• OS virtualization
• Namespaces + CGroups + Capabilities
• Docker
• Wrapper around lxc
• User-friendly containers
• Container management – hard!
• Aggregation, Elastiticy, Multi-tenancy …
• Feedback loop for cluster scheduling
©ContainerX, http://containerx.io, @ContainerXInc

Más contenido relacionado

La actualidad más candente

Карманный PaaS с Dokku (Александр Белецкий)
Карманный PaaS с Dokku (Александр Белецкий)Карманный PaaS с Dokku (Александр Белецкий)
Карманный PaaS с Dokku (Александр Белецкий)
GeeksLab Odessa
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and Agent
Ranjit Avasarala
 

La actualidad más candente (20)

Docker for Developers - Part 2 by Borja Burgos and Fernando Mayo
Docker for Developers - Part 2 by Borja Burgos and Fernando MayoDocker for Developers - Part 2 by Borja Burgos and Fernando Mayo
Docker for Developers - Part 2 by Borja Burgos and Fernando Mayo
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
Карманный PaaS с Dokku (Александр Белецкий)
Карманный PaaS с Dokku (Александр Белецкий)Карманный PaaS с Dokku (Александр Белецкий)
Карманный PaaS с Dokku (Александр Белецкий)
 
Vagrant
VagrantVagrant
Vagrant
 
Docker 1.11
Docker 1.11Docker 1.11
Docker 1.11
 
Building Reusable Development Environments with Docker
Building Reusable Development Environments with DockerBuilding Reusable Development Environments with Docker
Building Reusable Development Environments with Docker
 
Hide your development environment and application in a container
Hide your development environment and application in a containerHide your development environment and application in a container
Hide your development environment and application in a container
 
Docker 101 @KACST Saudi HPC 2016
Docker 101  @KACST Saudi HPC 2016Docker 101  @KACST Saudi HPC 2016
Docker 101 @KACST Saudi HPC 2016
 
HP Advanced Technology Group: Docker and Ansible
HP Advanced Technology Group: Docker and AnsibleHP Advanced Technology Group: Docker and Ansible
HP Advanced Technology Group: Docker and Ansible
 
Docker linuxday 2015
Docker linuxday 2015Docker linuxday 2015
Docker linuxday 2015
 
Introduction to Docker Compose | Docker Intermediate Workshop
Introduction to Docker Compose | Docker Intermediate WorkshopIntroduction to Docker Compose | Docker Intermediate Workshop
Introduction to Docker Compose | Docker Intermediate Workshop
 
Puppeteerのお話
Puppeteerのお話Puppeteerのお話
Puppeteerのお話
 
dkr_django_slides
dkr_django_slidesdkr_django_slides
dkr_django_slides
 
Running Docker with OpenStack | Docker workshop #1
Running Docker with OpenStack | Docker workshop #1Running Docker with OpenStack | Docker workshop #1
Running Docker with OpenStack | Docker workshop #1
 
RHEL/Fedora + Docker (and SELinux)
RHEL/Fedora + Docker (and SELinux)RHEL/Fedora + Docker (and SELinux)
RHEL/Fedora + Docker (and SELinux)
 
Docker - 15 great Tutorials
Docker - 15 great TutorialsDocker - 15 great Tutorials
Docker - 15 great Tutorials
 
Containerizing Web Application with Docker
Containerizing Web Application with DockerContainerizing Web Application with Docker
Containerizing Web Application with Docker
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and Agent
 
Intro to docker
Intro to dockerIntro to docker
Intro to docker
 
Docker dDessi november 2015
Docker dDessi november 2015Docker dDessi november 2015
Docker dDessi november 2015
 

Similar a Building Infrastructure with Containers (SJSU Talk)

Similar a Building Infrastructure with Containers (SJSU Talk) (20)

Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
 
DevAssistant, Docker and You
DevAssistant, Docker and YouDevAssistant, Docker and You
DevAssistant, Docker and You
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with Docker
 
Accelerate your software development with Docker
Accelerate your software development with DockerAccelerate your software development with Docker
Accelerate your software development with Docker
 
Learning Docker with Thomas
Learning Docker with ThomasLearning Docker with Thomas
Learning Docker with Thomas
 
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornJDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
 
Docker_Interview_Questions__Answers.pdf
Docker_Interview_Questions__Answers.pdfDocker_Interview_Questions__Answers.pdf
Docker_Interview_Questions__Answers.pdf
 
2015 05-06-elias weingaertner-docker-intro
2015 05-06-elias weingaertner-docker-intro2015 05-06-elias weingaertner-docker-intro
2015 05-06-elias weingaertner-docker-intro
 
Docker and the Container Revolution
Docker and the Container RevolutionDocker and the Container Revolution
Docker and the Container Revolution
 
Docker DANS workshop
Docker DANS workshopDocker DANS workshop
Docker DANS workshop
 
HPC Cloud Burst Using Docker
HPC Cloud Burst Using DockerHPC Cloud Burst Using Docker
HPC Cloud Burst Using Docker
 
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
 
Containers Roadshow: How to Develop Containers for the Enterprise
Containers Roadshow: How to Develop Containers for the EnterpriseContainers Roadshow: How to Develop Containers for the Enterprise
Containers Roadshow: How to Develop Containers for the Enterprise
 
Containers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech TalkContainers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech Talk
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based Deployments
 
Docker for Developers
Docker for DevelopersDocker for Developers
Docker for Developers
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxData
 
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemDocker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

Building Infrastructure with Containers (SJSU Talk)

  • 1. Building Infrastructure with Containers Pradeep Padala, Co-Founder/CTO Presented at SJSU Operating Systems Class in Dec 2015
  • 2. Operating System Level Virtualization ©ContainerX, http://containerx.io, @ContainerXInc
  • 4. How to contain? darth (user: root) (pid: 1) luke (user: root) (pid: 2) ©ContainerX, http://containerx.io, @ContainerXInc
  • 6. How to contain? darth (user: root) (pid: 1) luke (user: root) (pid: 2) # pkill -9 luke ©ContainerX, http://containerx.io, @ContainerXInc
  • 7. What If Darth can’t see Luke? darth (user: root) (pid: 1) luke (user: root) (pid: 2) # pkill -9 luke process not found ©ContainerX, http://containerx.io, @ContainerXInc
  • 8. How to contain? 1. PID isolation ©ContainerX, http://containerx.io, @ContainerXInc
  • 9. But, Darth can still see Luke  darth (user: root) (pid: 1) luke (user: root) (pid: 2) # pkill -9 luke process not found # cd /home/luke # rm –rf * ©ContainerX, http://containerx.io, @ContainerXInc
  • 10. How to contain? Namespaces 1. PID 2. File system (or mount) 3. UTS – isolate hostname, nodename 4. IPC – mq and other IPC objects 5. Network – sockets, IP address, network stack 6. … ©ContainerX, http://containerx.io, @ContainerXInc
  • 11. Darth can’t see Luke! darth (user: root) (pid: 1) luke (user: root) (pid: 2) # pkill -9 luke process not found # cd /home/luke no such directory ©ContainerX, http://containerx.io, @ContainerXInc
  • 12. But, resources are shared darth (user: root) (pid: 1) luke (user: root) (pid: 2) # cat /dev/zero > /dev/null ©ContainerX, http://containerx.io, @ContainerXInc
  • 13. Use cgroups to limit resources group limitcpu { cpu { cpu.shares = 400; } } group limitmem { memory { memory.limit_in_bytes = 512m; } } ©ContainerX, http://containerx.io, @ContainerXInc
  • 14. How to contain? 1. Namespaces 2. Cgroups ©ContainerX, http://containerx.io, @ContainerXInc
  • 15. We are not done yet darth (user: nonroot) (pid: 1) luke (user: root) (pid: 2) $ bindto 22 ©ContainerX, http://containerx.io, @ContainerXInc
  • 16. Capabilities Two modes 1. Run as root, deny all, grant selected capabilities 2. Run as non-root, grant selected capabilities a) grant net_bind_service ©ContainerX, http://containerx.io, @ContainerXInc
  • 17. How to contain? 1. Namespaces 2. Cgroups 3. Capabilities ©ContainerX, http://containerx.io, @ContainerXInc
  • 18. Container Stack Linux kernel with lxc lxc user-space tools cgroups Docker ©ContainerX, http://containerx.io, @ContainerXInc
  • 19. Docker is a wrapper around lxc simplifies container creation ©ContainerX, http://containerx.io, @ContainerXInc
  • 21. Build layers using Dockerfile FROM ubuntu RUN apt-get install -y apache2 CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"] ©ContainerX, http://containerx.io, @ContainerXInc
  • 22. Build, Run and Inspect a container • Setup a Docker host using docker-machine • Write a Dockerfile • Build • Run • Inspect ©ContainerX, http://containerx.io, @ContainerXInc
  • 24. How to manage multiple hosts and containers? • It’s easy to setup a Docker hos and run a container • It’s “super hard” to manage many of them, why? 1. Scale 2. Allocating resources (compute, storage and network) 3. Day-to-day management 4. Running infrastructure efficiently ©ContainerX, http://containerx.io, @ContainerXInc
  • 25. The Container Platform for Enterprise IT ©ContainerX, http://containerx.io, @ContainerXInc
  • 26. kernel lxc cg Docker kernel lxc cg Docker kernel lxc cg Docker kernel lxc cg Docker kernel lxc cg Docker On-Premise Cloud ©ContainerX, http://containerx.io, @ContainerXInc
  • 27. Host and Container Management • Cluster concept – aggregation • Elasticity • Addition and deletion of hosts • Automatically in cloud environments • Horizontal scaling • Storage • Network ©ContainerX, http://containerx.io, @ContainerXInc
  • 28. Resource Management 0% Green Container Pool CPU Limit: 30% Mem Limit: 30% Priority: Medium 20% 0% Yellow Container Pool CPU Limit: 60% Mem Limit: 70% Priority: High 60%0% Blue Container Pool CPU Limit: 30% Mem Limit: 20% Priority: Low 20% 30%30% 40% ©ContainerX, http://containerx.io, @ContainerXInc
  • 30. Many Scheduling Algorithms What works? • Feedback based algorithms • Simple heuristics • Extensive simulation to understand corner cases Real-world robustness is most important! ©ContainerX, http://containerx.io, @ContainerXInc
  • 31. Cluster scheduling – feedback loop Monitor Control Action Stats Performance goals Control parameters Model Model can model applications, containers, and underlying resources Change allocation ©ContainerX, http://containerx.io, @ContainerXInc
  • 32. Summary • What are containers? • OS virtualization • Namespaces + CGroups + Capabilities • Docker • Wrapper around lxc • User-friendly containers • Container management – hard! • Aggregation, Elastiticy, Multi-tenancy … • Feedback loop for cluster scheduling ©ContainerX, http://containerx.io, @ContainerXInc