I’ve been writing recently about Apache Mesos and it’s importance as an operating system kernel for the next generation data center. You can read those posts here:
Besides the technology though, I am also excited about the progression of the Mesos project itself. So I want to take a detour from my technology-focused posts to make some general observation about the project. As I said on Twitter previously, I’ve been particularly impressed with three characteristics:
I’ve had the opportunity to speak to a number of people recently about Mesos and found it’s been extremely easy for them to grasp the concept and to understand the value of the technology. This is very important for a project that is growing and looking to expand its reach. Tangible benefits from using a project’s technology is important for generating excitement about it and to drive participation in its community. As outlined in a previous post, I see Mesos delivering clear benefits in terms of data center efficiency, business agility, and scalability. With the growing focus on distributed applications and microservices, more users are looking at technologies that can help manage the complexity of these applications. As a result, you are seeing growing interest in the project and in Mesosphere, the company that building a commercial product based on Mesos.
Another key strength of the project is the limit of its scope. Mesos is designed to be a data center resource manage and has for the most part, avoided the temptation to go beyond that, at least not before it has built a solid base. I believe the Mesos project has accomplished two important things by not straying from its scope too early.
- Built A Solid Foundation – The temptation is always there with a new technology to constantly add new features. This becomes a problem when the drive for new features comes at the expense of code stability, especially if care isn’t taken to ensure adding new modules won’t break other modules. The Mesos project has done a good job of focusing the community on fixing exiting bugs and enhancing existing capabilities instead of having everyone constantly chase the shiny new thing.
- Created a strong ecosystem – By focusing on resource management and scaling of the Mesos architecture, the project has enabled an ecosystem of frameworks that can plug into Mesos. The project, for the most part, has avoided trying to build a scheduler for every application or strictly prescribing an isolation module. This has enabled different communities, such the Hadoop and the Docker communities to write plugins for Mesos. That bodes well for the project since a strong ecosystem is a requisite for success in the software space.
While doing well to cultivate a strong ecosystem, the Mesos project has been able to avoid having too vendors involved too early. Instead there seems to a good mix of end users and vendors working together. This is probably due in large part to the fact that Mesos is a solution to a specific problem and not primarily a hedge against a common enemy such as AWS. Whatever the reason, keeping a large number of vendors away while the project is maturing allows the Mesos community to grow without having to deal with vendor politics, competing interests, or overly commercial aspirations. I am not saying these challenges don’t exist; but by NOT creating an essentially vendor-controlled project, Mesos has a chance to grow and to be adopted at a natural pace. Then like the Linux project, vendor involvement can happen naturally to match customer interest and adoption.
As you can tell, I am hopeful for the future of the project and will be looking forward to seeing it grow as more end-users move into a distributed system world where a data center OS kernel, such as Mesos can play a valuable part. Meanwhile, I encourage folks to learn and to get involved. Some ways to do so are detailed in this interview with David Lester, an engineer and open source advocate at Twitter.
In my next post, I link to some instructions on how to set up your own Mesos cluster and how integrate and to write frameworks for deploying and managing applications. Meanwhile, I encourage readers to provide feedback, especially regarding if I am hitting the mark with these posts and if you see any errors that need to be corrected. I am a learner and do not pretend to know all the answers; so correction and enlightenment is always welcomed. I also respond on twitter at @kenhuiny.