Disclaimer: I am the vice president of Apache Aurora and have been the technical manager of the Aurora team on Twitter for ~ 5 years. My likely biased opinions are my own and do not necessarily represent the interests of Twitter or ASF.
Do these frameworks do everything that works on Linux? For the marathon, they declare that it can run everything that is “executed in the shell”, but this is kind of vague :)
Essentially, yes. Ultimately, these systems are a complex technique for running shell code somewhere in a cluster :-)
What are their differences? I struggled to find good explanations for their key differences
Aurora and Marathon do offer similar feature sets that are classified as “service planners.” In other words, you give us instructions on how to start application servers, and we do our best to support them.
I suggest some differences in wide strokes. When it comes to the flaws mentioned in each, I think it is safe to say that the communities know and intend to fix them.
Ease of use
Aurora is not easy to install. It will probably be like you coming up with it. It provides an attractive API, which means that you need a thrifty client to interact with it programmatically (there is a REST-like API, but at the moment it is a steam device) or use our command line client. Aurora has a DSL for configuration , which can be complicated, but makes it easy to share patterns and common patterns as you use the system more.
A marathon, on the other hand, will help you run Hello World as quickly as possible. It has great docs to do this in many environments and a bit of overhead to go. It has a REST API, which makes it easy to adapt to custom tools. It uses JSON for configuration , which is easy to start with, but more prone to handling cargo.
Target Use Cases
Aurora has always been designed to work with a large engineering organization. Clusters on Twitter have tens of thousands of machines and hundreds of engineers using them. For business, Twitter is important. As a result, we take our demands for scale, stability and security very seriously. We make sure that we only approve features that we believe are trustworthy on a production scale (for example, we have Docker support, designated as beta, due to known issues with Docker itself and Mesos-Docker integration ) We also have features such as prevention, which makes our clusters suitable for mixing mission-critical business services with prototypes and experiments.
I cannot claim to be scalable or against Marathon. At the front of functions, Marathon is rapidly developing functions, but in practice this may be felt for a short time (Docker support is a good example). This is not always due to the marathon itself, but also to layers down the stack. A marathon does not provide prevention.
of property
Owning and managing a project is important for some. He believes that in practice he does not determine the openness of the project, but for some people / companies, legal small print can be a deal.
- The marathon belongs to the company (Mesosphere)
This is useful for some, but not for others. This means that you can pay for support and features. It also means that there is something that can be sold, and the direction of the project is ultimately determined by the interests of the Mesosphere.
- Aurora is owned by the Apache Software Foundation
This means that it follows a community-driven ASF management model. Aurora has no paid customers, and there is currently no software store that you can pay for development.
tl; dr If you just get your feet wet on running services on Mesos, I would suggest Marathon as your first port of call. It will be easier for you to run and delve around the ecosystem. If you are creating a “private cloud strategy” for a company, I suggest seriously considering Aurora, as it is proven and specifically designed for this.