What are benefits or downsides in using Swarm / Kubernetes / Mesos / Cattle

Is there any benefit in NOT using Cattle as the environment and use other available orchestration mechanisms - or do they exist for support only and not as a fully functional replacement for Cattel and Cattle should be used acorss the board?

I just tried to setup a swarm cluster in Rancher and ran into an issue where I couldn’t SCALE any services via Rancher’s UI and had no ability to install any Load Balancer Service that would normally be available under “STACKS” items.

Can someone describe limitations of these different orchestration methods within rancher, or am i just missing these functionalities and Scaling, Load Balancing and other neat things are available across all 4 aproaches?

Most basic example of what I’m trying to achieve:

  • setup load balanced frontend website (ie: wordpress); or,
  • setup mariadb galera where each node is a primary server and have one LB access point

i have an infinite pool of examples, but i think it kinda sort of explains what I was missing in the swarm setup.

9 Likes

Hi Virtuman,

We’re building support for the different schedulers into Rancher because we see the realm of scheduling growing more complicated in the future, and we want Rancher to be able to support each of these platforms over time as they develop, and possibly others as they emerge.

Many large Rancher users are already running more than one scheduler in the same organization, with some teams prefering Kuberentes, and others preferring Cattle. As i write this, Cattle is definitely the most well polished scheduler within Rancher. It has been in use by our customers for months, and has grown very popular with users. Based on annecdotal discussions with users, I’d guess about 70 percent of users are leveraging Cattle at the moment. However, just a few months ago that would have been 100%, so you can see that users are already trying other platforms.

The next most popular scheduler among our users seems to be Kuberenetes at the moment. We’re working with a number of very large Kubernetes deployments, and they have been providing significant feedback on enhancements that we can make to operate Kubernetes better, much of which was released this week in the Rancher release 1.1.0-dev2. Users like Kubernetes because of the many advanced features around running workloads reliably, and the strong community.

Docker Swarm and Mesos are both really brand new to Rancher, so there is still lots of work to integrate them more fully. We’ve got a long list of fixes that are needed to make our implementation of Swarm as mature as Cattle and Kubernetes. As more teams use Swarm and request/submit features I’m sure both will gain popularity over time. Docker is doing a lot of work on Swarm right now, and it is getting more feature rich with each release, and should make major strides in the next few months.

Mesos is already very stable and scales well, and as we implement it fully within Rancher, i"m sure it will be popular for users who want to run big data workloads, chronos jobs and more. That said, it is brand new, and I’m sure will require a few months to stabilize within Rancher deployments.

I hope this helps. We’re very committed to supporting all of these communities, and expect that Rancher will make it easy for users to try different platforms.

1 Like

Hi guys, I know this is a difficult request but maybe there could be a section in the docs (unless I totally missed it?) about different orchestration engines and how to choose?

Maybe a sort of comparison matrix where we can see both rancher specific and orechestrator specific characteristics and make a decision based on that… Nothing too complex, but something to guide ppl that may be in doubt about what best fits their use case…

I find that rancher makes the whole container ecosystem very much more approachable than any other tool, so this would be something in line with that…

There is a lot of material (a google search for “mesos swarm kubernetes” shows a ton of stuff including a pretty complete oreilly report https://www.oreilly.com/ideas/swarm-v-fleet-v-kubernetes-v-mesos )… But I’m unsure what benefits, tradeoffs exist when we add rancher to the mix…

I’m currently going to focus on cattle since it has the most features, but I’d be interested in understanding if maybe with swarm I’d be immune to certain rancher restrictions? Anyways, its easy to “suggest” but unfortunately I dont know enough to put somethign together… :frowning: I guess a starting point would be “# of hosts” vs scheduler? (I read somewhere where they talked about swarm for sub 50 hosts, and then I cant remember the order but k8 (or mesos) for 50-100 and the other one for larger deployments…i cant remember the numbers correctly but it was like a simple generalization - which has its fallacies - but served in steering you in the right direction…)

Spot on !!! I would love to see something like this.

Meanwhile we also selected to move forward with Cattle, with many hesitations, mostly due to the unknowns about what we are loosing by not using other tools, and also - because there’re some more samples of catalog template that we use as a starting point for writing our own catalog items.

+1

It seems like Swarm will be an integral part of docker-engine, will provide LB, networking, service discovery and rolling updates with no need for extra anything

Take a look at the docs for the next RC as of this moment.

That is pretty impressive, and the advantages of Cattle seem to fade away. Rancher Labs IMO is doing a great move by supporting all of the big players in Orchestration, hopefully we see the next big push in Swarm after K8s. I see a great future for Rancher but they should keep on focusing on its strengths (API, Access Management, GUI & Visualizations, Catalogs).

1 Like

I may be confused about the core concepts of either docker or rancher, but it is my understanding that Docker provides the engine / platform and means for orchestration, but they do not involve themselves in orchestrating things and they don’t necessarily have a built in UI for the engine.

While docker load balances based on the DNS name - it is most certainly not anything even remotely similar to Ranchers haproxy implementation. Of course rancher wouldn’t run without docker, and my understanding is that rancher is something that narrows the gap between the management of your orchestration tool and the actual core of the docker. Rancher makes docker usable without forcing uou to fully understand how to configure each device layer, they just make it easier… Can you setup haproxy on docker yourself? Of course yes! But is it easier with rancher? Heeeeeellll yeah!!!
I really don’t see that docker engine should be able to do things that rancher does (i.e. Intelligent load balancing, auto deploy some containers if some conditions are met for making it easier to use if there was an LB setup, or automate ways for cross-node storage volume management etc. ), docker builds and provides and awesome platform that connects the dots, but rancher makes connecting dots easier. Cant really see that one of the two companies were trying to work towards the same goal. One is a engine, and another one is making it easier to use it and remove the gap between having to know all different orchestration techniques and platforms and making it all unified - create a catalog item and re-use it. Well… Sort of. For some funny reason k8s takes in different catalog format, but swarm and cattle are pretty much one and the same.

Can someone from Rancher tell us if this was a design choice to support k8s format over rancher’s own catalog format for service deployment, or did something go wrong there and having same rancher catalog template for a not very apparent reason now is completely unusable for k8s ? Wouldn’t it make sense to have support of k8s and rancher catalog format for k8s deployments? Same question would probably apply to mesos? Or is some sort of conversion tool planned for some time down the road?

Anyhow, that’s my take on things. And swarm is just one of “plugins” that can be used with rancher, there’re also k8s and mesos that are integrated and saying that swarm with the new release is going to become better than all is probably a bit of a stretch, after all - all 3 of them are trying to solve different problems - and meant for somewhat different things, i.e. Mesos - convert your data center to a global pool of resources, k8s is more of a granular resource management, swarm is just getting into the field but very capable of utilizing all the features of the docker engine itself, and rancher is mostly a layer on top of them all with their own Cattle orchestration, that is just easier for new docker users to understand, but as a benefit - it can give a bit more transparency into things, since everything ends up being in a single place, may be not most reliable on a larger scale, but easier)

After all - it’s very difficult to say that Docker is much better than deploying on bare metal, both mechanisms are trying to solve different issues and offer two ways of going about it, and both ways are great, personally - I’m very hesitant in converting 100% of our infrastructure into docker based environment and we have plenty of services that continue to run on bare metal, mostly due to lack of trust into something that is still very new, but I’m sure that others had already converted 100% and many of them are super happy about it

Thank you

Just found this post, it didn’t clear anything up for me, but i thought i’d add a link to it here since it is relevant:
http://rancher.com/cattle-swarm-kubernetes-side-side/#more-3919

I think you’re absolutely right that we need more information about these different orchestration tools. There are lots of posts out there, but most are pretty biased one direction or another. We’ll work on something to try and answer these questions for you. Swarm definitely gets a big upgrade with the work in 1.12, and we’ll definitely be supporting that in our swarm environments very soon.

2 Likes

We are also very keen to know what is going to happen now that Docker 1.12 is out and has a lot of built in support for services, mesh networks and more. Some of which are included in rancher - and some which are not.

We are especially interested in the mesh networking and built in load balancing as we start designing a system that will need to scale very extensively and hopefully also very quickly. So we need to decide if we should stick with Cattle and use this in our architecture - or start with Docker swarm from 1.12, and expect Rancher to catch up with support for this so that we end up with all the benefits of Rancher and the latest docker when 1.2 of Rancher is released.

1 Like

Hi Thomas, sorry for the late reply. I think most people are sticking with Cattle at the moment, as Docker Swarm 1.12 has had a few issues that keep it from being an easy switch over. We’re definitely not deprecating Cattle, so you can feel confident to use Cattle, and in the future, it will be easy to move to a Swarm environment if at any point you want to.

Thanks for the update.

We will stick with Cattle for the time being. Our main interest in Docker 1.12 and Swarm is the meshed networking, which would make it easy to dynamically load balance swarms with many hosts, each running different services - often with unique URLs.

I understand that lots of work is being done with load balancing on your side. Is that something there are details available on that we could see? A topic of great interest as we get close to launching a big setup using Rancher on the backend.

1 Like

Hello Shannon,

Just checking. Does that mean you are thinking about discontinuing Cattle in Rancher? Is it still in development?

@skofgar I’m not sure where you got that impression from this thread but Cattle is not going away and is (along with other related repos) the main thing many of our employees work on.

1 Like

Hi @vincent,
Thanks for the reply. Okay that’s good. I just wanted to double-check, since it sounded like people are very interested in swarm and k8s. I personally started to like Cattle.

Cattle remains the most popular orchestrator among our users by far. It definitely isn’t going away. :slight_smile:

3 Likes

Cattle remains the most popular orchestrator among our users by far. It definitely isn’t going away.

@smw355 can you still make the same claim today? I just tried one of the Rancher 2.0 tech previews, and cattle is nowhere to be found - it’s all k8s!

As far as branding is concerned the whole thing is just Rancher now and there’s nothing actually called Cattle. But 2.0 provides the same user experience (UI, CLI, compose files) as Cattle in 1.6 (give or take, plus many improvements). Instead of reinventing the same wheels as a separate orchestration system, it’s just provided on top of Kubernetes now.