21
Docker and CloudStack Sebastien Goasguen London Meetup May 21 st @sebgoa

Sebastien goasguen cloud stack and docker

Embed Size (px)

Citation preview

Page 1: Sebastien goasguen   cloud stack and docker

Docker and CloudStack

Sebastien GoasguenLondon Meetup

May 21st @sebgoa

Page 2: Sebastien goasguen   cloud stack and docker

Background

• Citrix Open Source Architect

• Open Source Business Office

• VP of Apache CloudStack• PMC of Apache libcloud• ASF member• O’Reilly author of the

Docker cookbook

Page 3: Sebastien goasguen   cloud stack and docker

Cloud Goals

• Utility computing• Elasticity of the infrastructure• On-demand• Pay as you go• Multi-tenant• Programmable access (i.e API)

Page 4: Sebastien goasguen   cloud stack and docker

So what…

• Solved with CloudStack

• What is not solved:• - Application deployment• - Application scalability• - Application portability• - Application composability

Page 5: Sebastien goasguen   cloud stack and docker
Page 6: Sebastien goasguen   cloud stack and docker

Docker basics

• Originated at Dotcloud• Wrapper on top of LXC• Great UX for developers• Ease of use• Apparent speed compared to VMs

Page 7: Sebastien goasguen   cloud stack and docker

Containers

• Docker now based on libcontainer• Create separate process namespace on host• Same kernel• Use cgroups for resource allocation/isolation• Not an hypervisor• Not meant to be logged into• Packages application/services

Page 8: Sebastien goasguen   cloud stack and docker

Installation

$ sudo curl -sSL https://get.docker.com/ubuntu/ | sudo sh

$ sudo yum install docker

Page 9: Sebastien goasguen   cloud stack and docker

Use

$ docker run busybox echo foobar

Foobar

$ docker run –ti ubuntu:14.04 /bin/bash

root@0156ad334ca4:/#

Page 10: Sebastien goasguen   cloud stack and docker

The App store

$ docker push runseb/application

$ docker pull runseb/application

$ docker run –d runseb/application

Page 11: Sebastien goasguen   cloud stack and docker

Building docker images

Page 12: Sebastien goasguen   cloud stack and docker

How to use this in CloudStack

• #1 Gut reaction:– Let’s write a Docker plugin and treat it as an

Hypervisor

• But:– It’s not an hypervisor– The networking model is still evolving– It will not help with application deployment and

portability– It’s trying to put a PaaS in a IaaS

Page 13: Sebastien goasguen   cloud stack and docker

And…

• Where is Docker going to run ?

• On baremetal ?

• On VMs ?

• In the Cloud ?

Page 14: Sebastien goasguen   cloud stack and docker

How to use this in CloudStack

• #2 Docker in VM– Create CloudStack template that have the Docker

daemon

• Examples:– AWS default AMI– GCE container VM– Azure Docker templates

Page 15: Sebastien goasguen   cloud stack and docker

New OS

Page 16: Sebastien goasguen   cloud stack and docker

How to use this in CloudStack

• #3 Docker optimized OS– Create CloudStack template from new OS

• Examples:– coreOS – in production– Ubuntu snappy– Atomic– RancherOS– Microsoft nano

Page 17: Sebastien goasguen   cloud stack and docker

coreOS “OEM”

http://github.com/coreos/coreos-overlay

Page 18: Sebastien goasguen   cloud stack and docker

How to use this in CloudStack

• #4 Container service– Launch containers in clusters through API

• Examples:– AWS ECS– Google GKE (i.e Kubernetes )– Lattice CF– Mesos/Marathon– Rancher

• See Docker “platforms” as a workload

Page 19: Sebastien goasguen   cloud stack and docker

How to use this in CloudStack

• #5 CloudStack plugins in Docker ecosystem– Docker-machine

Page 20: Sebastien goasguen   cloud stack and docker

Docker and CloudStack

• Do not try to write a new “hypervisor” plugin• Docker ecosystem taking care of Docker

orchestration

• Focus on:– Docker optimized OS (e.g coreOS, atomic)– Deploying application mgt framework (e.g Mesos,

Kubernetes)

Page 21: Sebastien goasguen   cloud stack and docker