What is Rancher? Containers in the age of Cattle
If you haven’t been in the container game for a long time, chances are you’ve never heard of Rancher a software platform for your container needs. Back in the early days of container orchestration Rancher got its own fair share of attention, now that Kubernetes won the container war it doesn’t get as much. But what exactly is Rancher, and what can it do for you? As you’ll see in a minute, Rancher isn’t just a scheduler or an orchestration tool, but isn’t a PaaS either so… what is it?
What is Rancher?
Rancher is an open source software platform that enables organizations to run and manage Docker and Kubernetes in production. With Rancher, organizations no longer have to build a container services platform from scratch using a distinct set of open source technologies. Rancher supplies the entire software stack needed to manage containers in production.
Simply put, Rancher is a set of tools or software platform that enables to easily deploy containerized environments. But that would make Rancher just another orchestrator solution, that’s why Rancher operates on a higher level, leveraging other orchestration solutions (more in a while) to provide an unified control plane.
Rancher can be easily installed on any machine capable of running Docker, once installed all the subsequent nodes can be easily provisioned from the web UI and with a few clicks, complex features such as load balancing are available out of the box. The software, however, provides many more features such as:
- Infrastructure management: host nodes can be easily (and quickly) provisioned through the web UI, once they are registered in the system they can be completely controlled by the master node. Important matters such as private networks between hosts and security are taken care of behind the scenes.
- Container scheduling/orchestration: is performed through Cattle, but it is truly executed by another orchestrator such as Kubernetes or Mesos.
- Multiple environments: Rancher can provision and use multiple environments such as cloud and on-prem at the same time. This enables the user to use multiple environments and control them with one unified control plane.
- Monitoring/health-checks/logging: all in one place. Sounds too good to be true? That’s one of the main points about Rancher, give it a try if you can’t believe it.
- Users and credentials: Rancher comes with a powerful RBAC system that allows to fine-tune permissions and integrate with existing systems such as AD or LDAP.
- Runs anywhere Docker runs: Rancher comes in a Docker container hence it can virtually run every machine capable of running Docker, even on a Raspberry PI, although you may want to be careful with architecture-related problems.
- Templates: Rancher has its own rancher-compose format but also supports Docker compose. The two closely resembles one another, with the latter being more widely used and not platform-dependent.
- App catalog: on top of templates, Rancher has an app catalog that enables one-click deployments of many popular software.
Which orchestration? Whatever, it’s just Cattle…
One of the strong points of Rancher is Cattle. A suggestive name for an orchestrator that essential deals with others orchestrators such as Kubernetes, Docker Swarm and Mesos treating them, well, as cattle.
As a matter of fact Cattle can interface with three of the major orchestration solutions for containerized environments and provide the same sets of features, although you may want to be careful with Swarm support since it is still considered experimental.
Rancher and RancherOS
If you’ve heard of the former, you’ve probably heard of a thing called RancherOS. Simply put, RancherOS is a lightweight Linux distribution meant to be used to host a Rancher environment. It is much like CoreOS or Project Atomic from Red Hat.
Differences with Kubernetes
Rancher operates at an higher level and can leverage Kubernetes as an orchestrator. Simply put, Rancher can manage Kubernetes and provide more functions while leveraging the ones provided by Kubernetes itself.
Differences with OpenShift
OpenShift is a PaaS solution whereas Rancher is a set of tools. Some of the capabilities, such as host provisioning, are common among the two. Other capabilities such as OpenShift’s unique S2I are not available to Rancher.
Overall they both excel in different fields, Rancher is more lightweight while OpenShift is more enterprise-oriented with heavy machine requirements and ironclad security first. Rancher on the other hand has a great and lightweight interface that can manage multiple environments providing a consistent set of features.
In the future: Rancher 2.0 and Kubernetes
The Rancher container management platform has become an increasingly popular way to manage containers—it’s being used to run tens of thousands of clusters. With Kubernetes becoming the fastest developing technology in the container ecosystem, we saw an opportunity. And rebuilt Rancher on Kubernetes.
Rancher 2.0 is the future version of Rancher, currently in beta stage. The decision to go all-in on Kubernetes was a difficult one according to RancherLabs developers, but a right one. Kubernetes has won the container war and it is now even bundled with Docker itself, that alone is more enough to justify the choice. Although Rancher will lose the capability to run on Swarm or Mesos, Rancher 1.6 will continue to be supported until 2019, enabling organizations relying on such environments to plan without anxiety.
Rancher 2.0 is almost a complete rewrite, but it packs all the good features its precedent version had. As you can see from the video, most of the interface has been redesigned but the salient features are still there. The most prominent change is the Kubernetes-centric approach visible everywhere starting from the early stages of environment deployment.