- 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.
• A VMorchestrator • 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 • Dockerin CloudStack guests • Package CloudStack as a set of containers • Docker orchestrators • Docker as plumbing
Machine • One binaryto 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
CloudStack installation • Dockeris great to package distributed applications • Why not package CloudStack in Docker. • Running CloudStack would be just about running a few containers.
15.
Docker to PackageCloudStack cloudstack/simulator cloudstack/management_centos6 cloudstack/cloudmonkey cloudstack/marvin cloudstack/ec2stack
16.
Dockerfiles • All CloudStackrepositories now have Dockerfiles • Automated builds setup on Jenkins and Docker hub • Need to work on bootstrap process • Decoupling DB • …
17.
Docker Compose • Onebinary to start/manage multiple containers and volumes on a single Docker host • Move your lengthy docker run commands to a YAML file
The Agent • Inthe 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.
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 deployapps in clouds • Configuration mgt • Terraform • Recipes to deploy Kubernetes, Rancher and Lattice • Terraform plans to deploy Lattice and Kubernetes on CloudStack
25.
Philosophy • CloudStack managesVM • 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
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
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
CloudStack 5.0 • CloudStackas 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 issuper 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 !