An experiment in Predictability & Scalability
Faisal Puthuparackat <faisal@druva.com>
Security issues => upgrade packages on machines
Rolling upgrade of components not possible
Deployments diverge from each other over time
Containers for virtualization
Like “chroot” on steroids
Private namespaces
Works using filesystem layers
With COW fs layers on top of that
FS layers repository
Each container image tagged with release revision number
Each container = OS Base + Libs + Python + Code
Each docker image tagged by version
OS/Lib Upgrade handled within container
Salt-stack has docker support - so everyone’s happy
You can never truly achieve scale in the cloud unless you can stop treating your servers as pets and start treating them as sheep.
~ Author unknown
Docker is a step in converting our pets into sheep.
1. Checkout trunk
2. Set your cloud name: contrib/vcloud-docker/config.rb
$cloudname = "fcloud"
3. Fire up vagrant. Should complete in 2-4 mins...
$ vagrant up
-------------------------------------------------------------------------------
Your cloud name is set to: fcloud.drtst.org
-------------------------------------------------------------------------------
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'http://devsource/lcloud/boxes/boot2docker-1.2.box'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: vcloud-docker_default_1415606582509_8383
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: bridged
-------------------------------- snipped --------------------------------------
==> default: Spinning up container: node
==> default: Spinning up container: master
==> default: Spinning up container: haproxy
$
4. Wait a couple minutes for DNS to propagate. You're done!
Please check http://genie/wiki/Your+Cloud for detailed usage information and other tips...