Last Monday, I went to the DevOps Montreal community meetup. I really enjoyed the presentations on that evening. People were quite friendly too. They had three presentations which covered:

  • the history of Linux containers,
  • the docker.io tools to leverage LXC and
  • dokku, a simple Heroku-compatible single-host PaaS, powered by docker!

Despite being given by different persons, the presentations had a lot of consistency between them, material-wise. For someone not directly working in the DevOps space, there was a lot to catch. The history of LXC made it really easy to identify the current trend occurring in this space.

This trend is what I want to quickly mention in this blog post. There are similarities going on between the DevOps and the development communities. They both need to scale quick and effective on dimensions that were not matched yet in the history of computing.

There are two manifestos that came to life in the past year(s) coming from these two communities, that share the same end-goal and some of the same techniques: the twelve factor app and the reactive manifesto. The first comes from the DevOps and the second from the functional programming inspired community.

The idea for predictable and secure deployment for DevOps goes as far to say that your deployments should be immutable. Chad Fowler wrote an interesting blog entry on this topic. In order to scale and avoid side-effects, maximum immutability should be encouraged.

That’s where the advantages of something like docker.io kicks in, as you develop a package of self-contained libraries and executables meant for one sole application running on the server. This package can be deployed on any OS that has the proper Linux kernel, which contains the LXC feature. A developer can even deploy this setup on a Mac OS X platform using Vagrant, mainly for development purposes though.

Anyway, those were great talks as I came up with speed with what’s done in the DevOps community.