Unfortunately, Mesosphere is no longer focusing on Marathon as an Apache Mesos framework and is instead integrating it into DC/OS, their commercial offering. Open-source Mesos+Marathon no longer appears to be an option.
So DC/OS is a "one solution for all the things" offering, like K8s. It's "magical" and "monolithic": if it happens to do what you want, out of the box, then you're in luck. If it doesn't, or more likely, if you can't figure out how to make it do what it says it does, then there is a small community that can help you. And that's if you use the "magical" installer. I wouldn't even consider building the i-dont-know-how-many-but-more-than-ten (its 30) different "open-source" packages that make up DC/OS myself, let alone deploy them.
If you are searching for a product in this space, then K8s is the way to go. It has a huge community.
If, on the other hand, you are looking for a small, non-monolithic, resource scheduler + some basic frameworks (i.e. Apache Mesos + Marathon) then DC/OS is not that.
But since Mesosphere are no longer supporting working on Marathon outside of DC/OS, or indeed any framework outside of DC/OS, the Mesos/Marathon is effectively dead, since, while Mesos is open source, the only major supporter of frameworks for it is Mesosphere, and you wont get them unless you use DC/OS.
For some relatively small projects, k8s is sufficient. But pretty quickly you end up needing more and more functionality and you end up in a larger stack like OpenShift.
That's the place that Mesos and DC/OS (IMHO) shine: when you're working with large clusters (1000+) running very different workloads. Because in that scenario, k8s is still pretty immature and you're going to inevitably need to solve all the other problems that OpenShift, DC/OS, Rancher or other stacks solve. Just like Linux distros, in theory, anyone can do it. In practice, it's a pain and you want to pick up a standard distro. That's what these stacks provide: a pre-configured suite of open source tools that get you way more than k8s or Mesos or Marathon on their own provide.
Sure, but DC/OS has yet to demonstrate that it can do any of that. Mesos has demonstrated that it can handle clusters at scale, but I don't know of anyone running the full smorgasbord of all 30 services on a cluster that big, and its the other 29 things that's going to fail at scale.
And again, if you are going to be running DC/OS at that scale, then you are going to be running the enterprise version, because you aren't going to be running that much magical shit on million dollar hardware without someone being paid to troubleshoot.
That might be me in a few years, except that Mesosphere seems to be attempting to kill me in the short term by killing non-DC/OS mesos/marathon while crippling non-enterprise DC/OS. So looks like we'll be migrating to K8s and hoping that in a few years K8s scales. The "K8s doesn't scale" argument is losing ground with every new release btw.
> but DC/OS has yet to demonstrate that it can do any of that [...] its the other 29 things that's going to fail at scale.
Of course you are right that in DC/OS there is a lot more besides Mesos that could fail at scale. That is why we are carefully scale-testing DC/OS in its entirety -- under lab conditions (internally) as well as under real-world conditions (large production environments). We will be more transparent about this in the future, but one example I can give is that we regularly run DC/OS on 10^3 nodes for testing purposes.
> if you are going to be running DC/OS at that scale, then you are going to be running the enterprise version
I am not convinced by that argument. Still, just to clarify, Mesosphere Enterprise DC/OS does not have better scaling characteristics than (open) DC/OS. We are trying to land all corresponding goodness in DC/OS.
> killing non-DC/OS mesos/marathon
I understand that brutal decisions have been made. But if you look at Mesos and Marathon as of today (btw., there is no such thing as "non-DC/OS mesos/marathon"), progress is being made at an impressive rate. I observe more "animating" than "killing".
> while crippling non-enterprise DC/OS
I only see additions, no removals. Also, if you were looking at the core technology stack, the delta between Enterprise DC/OS and DC/OS will probably appear to be surprisingly small to you.
> The "K8s doesn't scale" argument is losing ground with every new release btw.
I agree.
The "scale argument" is insignificant compared to other aspects in most of the cases anyway. As we all know :-).
Siri doesn't run on DC/OS. They use mesos (ie. the open source apache foundation project that marathon and later DC/OS are built on top of), but write their own framework(s) that run on top of it.
Source: I worked on the team, although we had talked about this at mesoscon in the past.
>But since Mesosphere are no longer supporting working on Marathon outside of DC/OS, or indeed any framework outside of DC/OS, the Mesos/Marathon is effectively dead, since, while Mesos is open source, the only major supporter of frameworks for it is Mesosphere, and you wont get them unless you use DC/OS.
Marathon isn't the only scheduler - Twitter (and some others) have been using Aurora (http://aurora.apache.org/). Currently we are deployed on Mesos/Marathon, and originally I thought Aurora may become more popular because it was Apache "blessed".
Will any of the commercial only stuff (like the distributed firewall or ldap authentication / authorization bits) ever be open sourced, or will DC/OS forever be open core crippleware?
That's a little harsh. I don't think the intention is to be open core crippleware - there are certainly a good number of users using (open) DC/OS in production without the enterprise features that you mention. I can't speak to the specific roadmap since I am uninformed but generally I believe the trend is for most enterprise features to trickle down into open over time.
We're very much committed to the Marathon open source community and keeping them happy.
I'm afraid I don't know what the plans are for the project (not working on Marathon myself) but being the most popular open source project run and maintained by Mesosphere, I have no doubt that we will continue adding new features and functionality.
DC/OS has a unique packaging mechanism, and cannot be found as a traditional Linux package. (Personally, I'd love to see that happen at some point but for simplicity's sake, it's distributed as a single binary - this allows us to upgrade the bits on nodes near atomically).
There are three ways to install it:
1) Cloud provider specific templates (e.g. CloudFormation / Azure Resource Manager. GCP support is on the backlog)
2) The ssh installer (this has a UI and a CLI). I believe this doesn't work well for larger installations because of the one to many issue.
3) The advanced install method. This generates a binary that is copied to each node. You can integrate this with Puppet, Chef, Ansible and so on.
Marathon is still being developed as an open source Mesos framework. The _UI_ is going to stall out a bit, but it's just the UI.
Chronos is still being developed, but Mesosphere is taking Metronome and folding it into Marathon, making it more like Aurora. Moreover there's Singularity, PaaSTA, and a whole lot more:
Yes, DC/OS is intended to be a (mostly) full stack, but even then, it's still just Mesos under the hood and you can run any Mesos framework on it. The open source edition of DC/OS is fairly full featured, while the enterprise version gives you better account security, networking and integrated secrets (vault) support.
Mesosphere official github repo: "we aren’t planning on updating the old UI further"
Jaaron: "The _UI_ is going to stall out a bit, but its just the UI."
My options are:
a) running latest marathon backend without the user interface
b) running latest marathon backend and clone/maintain the user interface
c) migrate the whole thing to enterprise DC/OS (since I need authentication)
d) migrate to K8s
I view the lack of option "(e) keep using marathon-the-product as it is now", as a breach of trust, so (c) is off the table (whereas, before, it was my expected endpoint). YMMV.
We have to support the company first which has a more integrated solution that actually has to make money at the end of the day. We are also a pretty damn small team with a huge backlog to deliver, so it sucks that we had to abandon the UI outside of DCOS. We hope that the components of the DCOS UI for marathon can become the native UI for marathon, but again, it's a balance of priorities.
Marathon by itself has a lot more coming in the future, some will be restricted to DCOS, but not everything, it's a balancing act. Given our history of changing course publicaly (I wasn't involved in these decisions), I'm waiting to share our plans for 1.5 until I'm confident we're committing to them.
I think that's even more scary. You're confirming that you've halted development on the Marathon-UI-for-Mesos because you are resource constrained. I've got a working Mesos+Marathon cluster. The marathon part is now a dead-end, but more importantly, I now know that dead-ending a user is an option for Mesosphere: and its either because Mesosphere doesn't care, or because it does care, but is so resource constrained that it has no choice. Either option is a huge red-flag.
I wish you had forked it. If you're resource constrained and need to meet goals for LargeCorp, then fork the entire front-end/back-end. The approach of just ditching the UI half of the app while you iterate the same backend but with the DC/OS UI is really what's causing the grief here.