Hard work and persistence pays off. Apache Mesos has released v1.0 and along with it comes experimental storage support. This is {code}’s first major contribution to an Apache Foundation project. We’re very excited to contribute a new solution to the Mesos ecosystem that is solving real problems.

apachemesos

In September 2015, {code} began working on two projects that would solve volume mounting capabilities. The first project, dvdcli, uses native Docker packages and familiar command line functionality to mount volumes to the host rather than the container. This package allows other tools to integrate those mounts into any piece of software, which leads into the next project. Mesos-module-dvdi relies on dvdcli to mount volumes to ANY container engine running inside of Mesos.

mesos-projects

The response from the community was immediate – within days of initial release there were signs of usage around the world. In March, Marathon, a popular container orchestration framework for Mesos, added built in support for stateful applications in the 1.0 release. And now 10 months after the initial release, both of these {code} projects are a part of Apache Mesos 1.0 Experimental Storage.  Here is an excerpt from the official announcement:

Storage

Starting from Mesos 1.0, we added experimental support for external storage to Mesos. Before this feature, while users could use persistent volumes for running stateful services, there were some limitations. First, the users were not able to easily use non-local storage volumes. Second, data migrations for local persistent volumes had to be manually handled by operators. The newly added docker/volume isolator addresses these limitations. Currently, the isolator interacts with the Docker volume plugins (e.g., REX-Ray, Flocker, Convoy) using a tool called dvdcli. By speaking the Docker volume plugin API, Mesos containers can connect with external volumes from numerous storage providers (e.g., Amazon EBS, Ceph, EMC ScaleIO).

{code} introduced mesos-module-dvdi as of Apache Mesos 0.23 which interacted with dvdcli. Now with mesos-module-dvdi being baked directly into Apache Mesos 1.0, users can natively interact with dvdcli. We are working together with the core Mesos contributors to bring external storage to a stable state and will continue to update this feature based on dvdcli.

The {code} team has laid out a roadmap to contribute more code, which will alleviate the requirement of dvdcli and REX-Ray to be installed on each host. libStorage is the next step in this journey for us to further move storage functionality into a common package that can be used by every storage vendor and container runtime. Of course, our commitment wouldn’t be complete unless we didn’t already have plans for phase two with mesos-module-libstorage.