I had the opportunity to present two demonstrations of the Atomic Developer Bundle (ADB) with my colleague, Navid Shaikh twice in the same week. The ADB is a Linux container development environment being developed as part of Project Atomic.
Our first audience was to members of the CentOS community in Brussels at the CentOS Dojo on 29 January 2016. This talk was mostly to system administrators and people looking for production ready solutions. (Slides and Demo Scripts)
The second presentation was to the mostly development-oriented audience of DevConf.cz 2016 on 6 February 2016. This audience, heavily drawn from the Red Hat and Fedora communities is focused on development strategies. (Slides and Demo Scripts)
If you’re not familiar with the ADB, it is a platform for developing container based applications. Today, it is still in the early stages and the upcoming 2.0 release is focused on some core goals:
-
Provide an environment for Linux container development for all major development platforms, Microsoft Windows, Apple Mac OS X, and Linux.
-
Provide an easy way for developers to setup a production mimicking environment without having to learn how to install or setup the components that make up production.
-
Enable the full use of the developer’s preferred toolset, not just Linux or CLI tools.
-
Utilize only Free and Open Source software
Reading these you’re probably thinking, “Woo! You built a Virtual Machine that has docker in it. That is not new.” In some ways, you’re right, but I believe there are two areas where we are providing new and significant value.
First, while we are opinionated about how to build containers, we aren’t closed minded. We are not trying to force you down a particular path or toward using only a specific set of technology. To that end we ship with 4 different container orchestration options today and more can easily be added.
Another significant differentiator is that our team is really focused on making sure that non-Linux users are still first-class citizens (or depending on your view point that Linux users aren’t forgotten). This means we are designing the ADB to be platform agnostic and to operate the same way everywhere (including using the same technology) as much as possible.
To accomplish this, we are enabling development using the following technology:
-
Virtual Machine Delivery: vagrant - a popular and easy way to deliver virtual machines that are easily configured, started, stopped, and reset in development environments. Many developers are using vagrant for other development workflows so we can leverage this momentum and knowledge.
-
Virtual Machine Execution (Hypervisor): Today we are building images for libvirtd, the preferred Linux hypervisor, and VirtualBox, the free cross-platform hypervisor. As there are requests, we will add more.
-
Linux Containers: docker - currently the container technology with the greatest mindshare. However, nothing in the box prevents other options like rkt and the output of the Open Container Initiative from being used.
-
Container Orchestration: Today we support development using OpenShift, Kubernetes, Mesos-Marathon, and native docker. We aren’t just shipping binaries though. Each orchestrator, where appropriate, comes pre-configured and ready to run. If you’re writing an OpenShift application, you don’t need to learn how to setup OpenShift. With one command a single node set up is running. The same holds true for the other orchestrators.
-
Host Enablement: vagrant-service-manager is a vagrant plugin being developed in conjunction with the ADB. This plugin enables easy environment setup to enable CLI and IDE tools on the workstation to interact with the ADB. Now you can treat the whole setup as a “black box” and just interact with the services, much like you would with production.
-
Tools, tools, tools: The box includes the atomic CLI which provides many missing container management functions or eases execution. Also the box is ready to support multi-container applications specified with Nulecule and built with Atomic App.
Both talks were rewarding and led to great conversations afterward in the “hallway track.” I am looking forward to following up with some potential users in India. Also, at the CentOS Dojo, it became clear that there is a system administrator use case that merits some more exploration.
I am grateful to have had the chance to speak with Navid and for being given the opportunity to speak by the organizers of both the CentOS Dojo and DevConf.cz 20161.
-
I was a volunteer at DevConf.cz 2016, however I had nothing to do with the talk selection or scheduling committees. The extent of my participation with the schedule was ensuring that it printed correctly in the program and on the various navigational signs. ↩