I’ve watched a number of Apcera demo videos and while I’m not an expert or freshman user of continuum I can spot excellence. In fact one of the conversations I had been having with some CoreOS, DataDog team members and writing about the comments made by the Fusion base image guys… the Apcera team closed the loop.
Docker and CoreOS started with the notion that the container was supposed to be lightweight. It was supposed to execute a single purpose application and maybe a few dedicated sub-processes… and maybe ssh if absolutely necessary. And to that end the Docker team started publishing their idiomatic base images. Then along came the masses who started creating all sorts of images… and then Fusion stepped in to tell us we were all doing it wrong.
Going the Phusion route meant that the only savings generated by Docker would be the shared kernel and so given the amount of tooling required to manage a Docker cluster vs an OpenStack or VMware… you’re probably better using the latter two.
So the Apcera team met me at the tipping point. In their gnatsd project they included a docker
folder where they provided a build script and two docker files. The result of running the shell script is a runtime image that is the scratch
base image plus the gnatsd
server application… and did I mention I was able to build and run the whole thing on my MacBook Air running boot2docker.
All you need is to install boot2docker and git to get things started.
boot2docker shellinit | source
git clone https://github.com/apcera/gnatsd
docker run apcera/gnatsd
If you’re working on a Windows desktop then all you will need to install gitbash.
The best part of this pipeline is that it’s all self contained and has the minimal host dependencies. It does not need complex tools like Chef or Puppet and it will install and run anywhere. Uploading the gnatsd image to a private registry is trivial and adding some code to monitor etcd and upgrade, restart etc is as simple as a fleetd service.
Great job Apcera!