The Container Orchestration race continues to heat up. Kubernetes and Docker Swarms are great, but there is a way to extend their functionalities. Let's take a look.
Companies like Europe's larges Railway Company the Deutsche Bahn, creating and managing their Kubernetes Clusters with Rancher. America's #1 Live TV Streaming Service, Sling TV, Selects Rancher for Applications Required to Run ~ 50K Transactions per Second. Over 2 million containers are managed with Rancher and developers love it. It's easy to use, Open source and totally free.
What is Rancher?
Rancher is an open source container management platform that includes full distributions of Kubernetes, Apache Mesos and Docker Swarm, and makes it simple to operate container clusters on any cloud or infrastructure platform.
The Rancher-Labs team has a successful track record in the Cloud. Rancher was started by the same team that developed Cloud.com, maker of the Apache CloudStack software, which was acquired by Citrix in 2011. Rancher has developed 2 separate products Rancher which is the platform and interface for deploying and running containers and RancherOS is a 20MB Linux Operating System optimized for running Docker containers. Rancher is built on the top of containers:
- A web UI
- An API
- A server that manage Rancher Agents
- A database
- A machine microservice
- The docker-machine binary
Essentially, Rancher provides an easy way to manage your container orchestrators (such as Kubernetes, or Docker Swarm) via a web interface. It's an orchestrator for your orchestrator. I know the mention of a GUI will make a lot of die-hard console fans baulk in disgust, but sometimes it's just nice to have a friendly UI.
With cloud providers increasingly offering Kubernetes clusters as a service, users no longer need to create their own clusters. Rancher 2.0 enables users to manage existing Kubernetes clusters from cloud service providers like Google Container Engine (GKE), as well as clusters running on-premises. Next to the centralized management of user authentication, monitoring and health checks to give IT administrators increased visibility and control, rancher brings the Docker command line and the elegance of Docker Compose to Kubernetes. Users can now have the same experience they love on their laptop on production Kubernetes clusters.
With all those great features you're not longer bound to a specific cloud service provider. You can easily split your container landscape to run on multiple providers and even better: select in which datacenters the containers should run.
Are there any other great features?
While immutable containers are far superior to maintaining stateful servers, they do have a few drawbacks – the biggest one being deployment speed: It’s slower to build and deploy a container image than to simply push code to an existing server. Here are all the places that a Docker deployment pipeline can spend time:
With Rancher, the setup, integration and automation of fast CI/CD pipelines, is as far away as a click. Drone CI runs on your Rancher infrastructure much like a tool like Jenkins would, but, unlike Jenkins, Drone is Docker-native - every part of your build process is a container. Running on your infrastructure speeds up the build process, since base images can be shared across builds or even projects. You can also avoid a LOT of latency if you push to a Docker registry that is on your own infrastructure such as ECR for AWS. Drone being Docker-native removes a lot of configuration friction as well. A standard Drone deployment does something like this:
- Run a container to notify Slack that a build has started
- Configure any base image for your “test” container, code gets injected and tests run in the container
- Run a container that builds and pushes your production image (to Docker Hub, AWS ECR, etc)
- Run a container that tells Rancher to upgrade a service
- Run a container to notify Slack that a build has completed/failed
Rancher is a great tool to further minimize downtime and thus guarantee high availability of all containers. In addition to the price advantages of provider independence, Rancher makes it easy to implement region-based application rollouts. Rancher combines all the features of great software like Kubernetes and Docker and even adds more. Definitely a great tool!