The wait is over: Apache Mesos 1.0 — a bag full of surprises
Brown packaging paper image via Shutterstock
Mesos 1.0 is out! According to the official announcement, the new HTTP APIs make it easy to write a new framework or develop a new tool with off-the-shelf HTTP libraries written in the language chosen by users. This release also includes unified containerizer support, Container Networking Interface support, GPU support, improvements in authentication and authorization and more.
Vinod Kone, engineer at Mesosphere, wrote in a blog post announcing the release of Mesos 1.0 that this milestone could have been reached “a long time ago,” but they chose to wait and develop new HTTP APIs to make the lives of both framework developers and cluster operators easier. Before the release of Mesos 1.0, there was “the driver-based Framework API used by schedulers and executors and the REST-based HTTP API used by operators and tools.” The problem was that just a few languages had bindings for the driver, which limited the languages that frameworks could be written in. Plus, both the client and the server had to open connections to one another in order to communicate, which meant that it wasn’t the easiest job for clients to run inside containers or behind firewalls.
These problems were solved once an RPC-based HTTP API was provided for both frameworks and operators. Now that the API client libraries can be written in any language that speaks HTTP, the sky is the limit when it comes to writing frameworks in new languages. Plus, you don’t need servers to open a connection back to the client to communicate with it. One of the most exciting parts about the HTTP API is experimental support for event streams, Kone claims. “Instead of continuously polling the heavy weight /state endpoint, clients (e.g, service discovery systems) can now get events streamed to them directly by the master.”
Mesos 1.0 in a nutshell
Mesos 1.0 offers unified containerizer support, which allows you to use just one container runtime engine, the
MesosContainerizer to run containers off the most popular image formats (Docker, Appc, and soon OCI) without dependency on any external daemons. There is also the Container Networking Interface (CNI) support; each container now receives its own network namespace, which provides network isolation and allows users to work with containers as if they were running on bare metal or VM.
This release contains experimental support for external storage to Mesos, thus getting rid of the limitations that existed before, such as the fact that the users could not easily use non-local storage volumes. Another problem was that operators had to manually handle data migrations for local persistent volumes. These problems have been solved thanks to the
Mesos 1.0 also comes with significant improvements in authentication and authorization, experimental support for running Mesos Agent on Windows and a custom GPU isolator which takes care of the details of allocating GPUs to your application and ensuring that they are isolated from other jobs running on the system.