Why FP Complete chose Kubernetes for Container Orchestration in Kube360

While it is a small competition field, alternatives to Kubernetes for container orchestration exist and have their own merits and drawbacks. Today, we'll cover the major players and explain why FP Complete ultimately decided to base Kube360 on its namesake, Kubernetes.

When companies and organizations move towards containerized workflows for their software and applications, various options exist to handle these containers' deployments and day-to-day management. Which option a company decides to use has an enormous impact on its long-run success. The container orchestration tools currently available take their different approaches to how developers can deploy new placements, monitor existing apps, and handle and debug failures.

Kubernetes and its advantages

Kubernetes is an open-source container orchestration system initially designed by Google and now maintained by the Cloud Native Computing Foundation. Google, Red Hat, and many other major tech companies currently develop Kubernetes, along with a large community of open-source contributors.

Kubernetes provides container scheduling, cluster management, logging and monitoring, service discovery, secrets management, and other services that Docker-based containerized applications require. Kubernetes' container orchestration functionality is comprised of a collection of interoperating services. These services provide a layer of abstraction over the underlying servers, storage, and other cloud infrastructure components that the containerized applications need to operate. To do this, Kubernetes defines a set of primitives, known as Objects, that can be used to manage the underlying resources at a high level. This action provides a cloud provider with an agnostic layer where each container workflow's setup and deployment (and the services they require) are defined in terms of these Kubernetes Objects.

A significant advantage Kubernetes has over its cloud orchestration competitors is the ecosystem of specialized services, tools, and other DevOps applications explicitly written with Kubernetes in mind. Because Kubernetes has become the de-facto standard for container orchestration, there is a wide variety of options to choose from for various parts of a typical DevOps deployment.

Competitors to Kubernetes

Nomad

Nomad is currently the most robust alternative to Kubernetes but significantly lacks in terms of adoption and support. Nomad is an open-source container orchestration system developed by HashiCorp and mainly targets the same use cases as Kubernetes. Besides adoption, where Kubernetes and Nomad primarily differ is in their implementation. Whereas Kubernetes is a collection of interoperating pieces, Nomad is a single monolithic binary. In Kubernetes, the service that handles coordination and storage is separate from the API controllers that take care of the state. With Nomad, the resource manager, and scheduler and wrapped into a single system. Nomad's design focuses on being more of a pure scheduler. As a result, it leaves out the complexity that can come with the Kubernetes networking model.

Given Nomad's less widespread adoption and a smaller community, the existential risk with Nomad is that HashiCorp could go under and leave Nomad unsupported. With Kubernetes, this risk is minimal since many major companies have committed to supporting Kubernetes' development and adoption. Nomad lacks development support and features behind it, which hinders the adoption of the overall product.

Docker Compose and Docker Swarm

Docker Compose may seem like an odd choice to include on this list. However, it targets a similar use case as Kubernetes in a far more limited way. Docker Compose is a tool that allows multi-container deployments to be defined in a single file. Docker Compose can then be used to create and start all the services described in this file.

Docker Compose is typically used for limited development, prototyping, and testing use cases but combines with Docker Swarm for larger deployments. Docker Swarm is another container orchestration tool comprised of a Swarm manager and individual container nodes. Docker Swarm development has recently slowed, and the project and its platform will likely cease to be supported soon.

Apache Mesos with Marathon

Apache Mesos is a resource manager typically used in tandem with a Marathon framework, which provides a container orchestration platform. In this setup, Marathon depends on Mesos to provide resource management. Mesos with Marathon faces similar issues to Nomad regarding the community support and development energy behind it. Additionally, users may also find that significant and sometimes simple features they need are locked away in Marathon's enterprise version.

The risk of locked features or functionality into the proprietary enterprise version of Kubernetes does not exist. Once a user has adopted Kubernetes and defined their containerized applications in Kubernetes Objects, they are free to switch between different Kubernetes deployment services.

Why Kubernetes is the best choice for Kube360

FP Complete chose Kubernetes because it was the best container orchestration system to build Kube360. Kubernetes provided FP Complete the right material and ingredients to create a competitive product. Kubernetes stood out as #1 due to its dual requirements of being well adopted and supported by the DevOps community and, at the same time, not beholden to one company and its financial interests. To learn more about Kube360, visit our overview article or get your free demo today.

See what Kube360 can do for you

Do you like this blog post and need help with DevOps, Rust or functional programming? Contact us.