2

What is the difference between Apache Mesos and Nomad?

Nomad seems to claim that it can do resource management so I wonder how that is different from Apache Mesos?

Nomad also claims the following on their website

Nomad is architecturally much simpler. Nomad is a single binary, both for clients and servers, and requires no external services for coordination or storage. Nomad combines features of both resource managers and schedulers into a single system. This makes Nomad operationally simpler and enables more sophisticated optimizations.

Well for anyone to bring up a cluster resource management alone is not enough. so for that Nomad obviously recommends to buy into rest of the HashiCorp products so I am not sure how it is architecturally simpler when one have to integrate with pretty much all of their products that are needed for a fully functional cluster?

Mesos does not support federation or multiple failure isolation regions. Nomad supports multi-datacenter and multi-region configurations for failure isolation and scalability.

Not sure if this is still true for Apache Mesos?

janisz
  • 6,292
  • 4
  • 37
  • 70
user1870400
  • 6,028
  • 13
  • 54
  • 115

1 Answers1

4

Nomad is currently advertised as an orchestrator for orchestrators.

Nomad only aims to provide cluster management and scheduling and is designed with the Unix philosophy of having a small scope while composing with tools like Consul for service discovery and Vault for secret management.

On the other hand, Mesos is more a framework for building distributed systems than just the container orchestrator. Of course, you can use it that way but it's only a minority of its features and not take full use of its two-level scheduling design.

Nomad is architecturally much simpler. Nomad is a single binary, both for clients and servers, and requires no external services for coordination or storage. Nomad combines a lightweight resource manager and a sophisticated scheduler into a single system. By default, Nomad is distributed, highly available, and operationally simple.

Mesos architecture is not that simple. It's multiple binaries project. Definietly not easy to set up and run. Multiple moving parts are always more complicated to setup than a monolith but enables customization.

Mesos does not support federation or multiple failure isolation regions. Nomad supports multi-datacenter and multi-region configurations for failure isolation and scalability.

That's true. Ther are some works to bring federations to Mesos but it's not done yet. https://youtu.be/kqyVQzwwD5E

Mesos and Nomad are created for sligthly different purpose. Although both of them are n-th level orchestrator and could be run one on another and probably could deliver similar features. Nomad is designed just to run simple stateless applications while Mesos alow pluging custom schedulers and make fine grained control of what/when/where is deployed.

janisz
  • 6,292
  • 4
  • 37
  • 70
  • If Nomad doesn't allow to plugin custom schedulers what's the point of it being an n-th level orchestrator ? – user1870400 Dec 12 '17 at 18:37
  • "On the other hand, Mesos is more a framework for building distributed systems than just the container orchestrator." so Are you saying that Nomad is just the container Orchestrator? – user1870400 Dec 12 '17 at 19:10
  • Actually Nomad has similar scheduling architecture to Mesos that could be customized [see](https://www.nomadproject.io/docs/internals/scheduling.html). Nomad is more like Mesos + Marathon in one binary while Mesos only provides resources and API to manage them. – janisz Dec 12 '17 at 19:15
  • Sure but instead of Marathon I can plugin any other scheduler using mesos but not for nomad you are saying? – user1870400 Dec 12 '17 at 19:37
  • Exactly with Nomad you are tie to single scheduling algorithm – janisz Dec 12 '17 at 19:39