↓ Skip to main content

Orchestration support announced on DockerCon

·3 mins

Orchestration
#

The philo­sophy be­hind docker is that in or­der to be solved, a large prob­lem has to be di­vided into its root prob­lems. One can then pro­ceed by solv­ing every one of these prob­lems step by step. Ad­di­tion­ally all ele­ments of the solu­tion need to com­mu­nic­ate through a com­mon app.

Docker has al­ways been a tool with a single pur­pose: the cre­at­ing, trans­port, and run­ning of im­ages. Un­til today there where sev­eral is­sues with docker that make us­ing it some­what try­ing at times. It lacked in cap­ab­il­it­ies for or­ches­tra­tion which is cat­egor­ised by:

  1. In­stall­a­tion of a docker host from scratch;
  2. Clus­ter­ing of mul­tiple docker hosts to spread re­source util­isa­tion over the cluster;
  3. Man­aging inter-container de­pend­en­cies at runtime.

Today this changed as Docker Inc. an­nounced a new set of tools.

Provisioning: Machine
#

Ma­chine provides a one step in­staller for cre­at­ing a new docker host on your local ma­chine, a pub­licly hos­ted cloud, or a private cloud. It will auto­mat­ic­ally pro­vi­sion a new ma­chine and set the en­vir­on­ment vari­ables such that any fol­low­ing docker com­mand runs on the newly cre­ated host. This is very sim­ilar to what boot2docker provides.

There are sev­eral en­gines for pro­vi­sion­ing in dif­fer­ent plat­forms such as:

  • VirtualBox
  • VMWare
  • AWS
  • Mi­crosoft Hy­per­visor
  • etc. (todo link)

More in­form­a­tion can be found at git­hub.

Clustering: Swarm
#

Ideally you want to con­trol a cluster of docker hosts with the same in­ter­face as you con­trol a single host. In other words the in­ter­face needs to be trans­par­ent or stand­ard­ised. With swarm you can.

All ex­ist­ing com­mands on docker work with the swarm as well. Just point your docker bin­ary to the swarm proxy and you are con­trolling the cluster in­stead of one single ma­chine. Swarm is location/data centre aware and also in­cor­por­ates re­source man­age­ment. The de­fault strategy is to use as little hosts as pos­sible. The strategy places sev­eral lighter con­tain­ers on the same node in or­der to re­serve other nodes for heav­ier con­tain­ers.

The main fea­tures are:

  1. Re­source man­age­ment
  2. Schedul­ing hon­or­ing con­straints
  3. Health checks on the cluster and nodes
  4. Sup­port­ing the en­tire docker in­ter­face

Ad­di­tion­ally Mesos can be used to provide the schedul­ing. Docker Inc. also an­nounced that Mesos will be a first class cit­izen in Docker. The goal is to be able to run docker con­tain­ers along side other Mesos jobs in the Mesos cluster.

More in­form­a­tion also on git­hub.

It ap­pears that swarm is not sup­por­ted yet by ma­chine, sadly.

Managing inter-container dependencies: Composer
#

Set­ting up ap­plic­a­tions that re­quire mul­tiple con­tain­ers to func­tion cor­rectly is dif­fi­cult. Keep­ing them run­ning is even harder. Docker pro­poses the Docker Composer.

Tra­di­tion­ally it ran on one single ma­chine and, un­til today, or­ches­tra­tion needed to be done manu­ally or through ex­ternal tools.

Docker Hub
#

Docker Inc. also an­nounces an en­ter­prise ver­sion of the Docker Hub. It is able to run wherever the en­ter­prise needs it to run and comes with safe 1-click up­grades. En­ter­prises are ad­opt­ing con­tain­ers as de­vel­op­ment is up to 30 times faster with halve the er­ror rate.

Some fun facts:

  • 100000 con­trib­ut­ors to docker hub
  • 157 TB of data trans­mit­ted each month
  • 50 TB of data stored

The timeline for 2015:

  1. In­crease per­form­ance of pulls
  2. In­crease trans­parancy by adding and im­prov­ing on status pages
  3. En­gage in part­ner­ship with Mi­crosoft. Most not­ably this will res­ult be­ing able to run Linux on Mi­crosoft Azure.