- Docker can be integrated with CloudStack in several ways, including running Docker in CloudStack virtual machine guests, packaging CloudStack as Docker containers, and using Docker orchestrators to manage containers.
- CloudStack could potentially be re-architected to run its components in Docker containers and use Docker networking for isolation, with an orchestrator like Mesos or Kubernetes managing the CloudStack application.
- There are open questions around whether CloudStack or other orchestrators should schedule virtual machines or containers as the primary compute resource in a private cloud data center.
2. Background
• Citrix Open Source
Architect
• VP of Apache
CloudStack
• PMC of Apache libcloud
• ASF member
• O’Reilly author of the
Docker cookbook
3. Stop the press
•Docker is super cool
•It’s changing the way we design and manage
applications
•It may change the way we build infrastructure
systems
5. • A VM orchestrator
• Same as Opennebula/OpenStack/Eucalyptus
• Made to build a public or private cloud
• Hypervisor agnostic
• Multi-tenancy
• Network and Storage plugins
• API
6. Integration points
• Docker in CloudStack guests
• Package CloudStack as a set of containers
• Docker orchestrators
• Docker as plumbing
11. Machine
• One binary to create a remote Docker host
and setup the TLS communication with your
local docker client.
• Automates the TLS setup and the
configuration of the local environment
• Can manage multiple machines in different
clouds at the same time
12. CloudStack and Machine
• Many drivers (i.e exoscale )
• Generic CloudStack driver needs love
$ ./docker-machine create -d exoscale foobar
INFO[0000] Creating SSH key...
INFO[0001] Creating exoscale...
INFO[0005] Waiting for SSH...
INFO[0072] Configuring Machine...
14. CloudStack installation
• Docker is great to package distributed
applications
• Why not package CloudStack in Docker.
• Running CloudStack would be just about
running a few containers.
15. Docker to Package CloudStack
cloudstack/simulator
cloudstack/management_centos6
cloudstack/cloudmonkey
cloudstack/marvin
cloudstack/ec2stack
16. Dockerfiles
• All CloudStack repositories now have
Dockerfiles
• Automated builds setup on Jenkins and
Docker hub
• Need to work on bootstrap process
• Decoupling DB
• …
17. Docker Compose
• One binary to start/manage multiple
containers and volumes on a single Docker
host
• Move your lengthy docker run
commands to a YAML file
20. The Agent
• In the case of KVM, we need to run a KVM
agent
• Need to run the agent in a container, and use
it to spawn KVM processes in the host
• Easy integration with CloudStack, there are
more involved scenarios.
22. Docker orchestrators
• How to manage docker containers on multi-
host ?
• Docker swarm, Lattice, kubernetes, Rancher
• Should CloudStack orchestrates containers ?
23. How about Swarm ?
• You can create a swarm
cluster with docker-
machine
• Hence, it’s easy to
create a Swarm in
CloudStack
24. How to deploy apps in clouds
• Configuration mgt
• Terraform
• Recipes to deploy Kubernetes, Rancher and
Lattice
• Terraform plans to deploy Lattice and
Kubernetes on CloudStack
25. Philosophy
• CloudStack manages VM
• Let’s do it well
• Let something else manage containers
• Can’t keep up with the velocity of Kubernetes
• If AWS builds ECS on top of EC2 why should
we do it differently
27. Not only containers
• Docker is also becoming a great tool for
plumbing infra
• Docker network
– Allows you to create VXLAN overlays
– Plugins, including OVS plugin
• Use Docker network as a new network
provider in cloudstack
29. What if ?
• CloudStack is a distributed app
• CloudStack components all run in containers
• We use docker network to isolate users’s VM
• Why not run the VMs in containers as well
(i.e KVM process in a namespace and
cgroups)
• What manages CloudStack then ? A container
application
31. CloudStack 5.0
• CloudStack as a Mesos framework is totally
doable (e.g KVM executor )
• Kubernetes has the same lineage as Mesos (i.e
Borg)
• How about CloudStack in Kubernetes ?
– Why not. GCE is a Kubernetes app
32. What gives ?
• Docker on cloudstack ?
• Cloudstack on docker ?
• Boils down to the unit of scheduling in your
data center
• Do you prefer to schedule VMs or
containers ?
33. Conclusions
• Docker is super cool
• We already have integration points in CloudStack
• Room for more and room for your help
• What the future is made of…we will see soon
enough !