Intro to Kubernetes
As applications increasingly continue to move into the container world, the complexity of many software projects increases. Together, developers (Dev) and operating staff (Ops) need a tool to be able to handle this more complex environment. When this tool is implemented and used correctly, the efficiency of developers increases, while the time and risk associated with putting updates into production decreases. Kubernetes is a tool that makes it easier to handle complex software, and in recent years has become the leading tool for orchestration of containers.
Let's assume that you have decided to modernize your development organization. The goal is for it to be able to handle future workloads, and you want to be able to utilize the benefits of containers in a smooth way. At the same time, your organization requires stability and guarantees that are simply not available when installing the community version of Kubernetes. If so, it is a Kubernetes distribution you are looking for - but what alternatives are there, and how do you choose between them?
If there is a strategic decision to handle development and/or operations in the cloud, it is a factor that reduces the alternatives somewhat, but there are still several alternatives to choose from. Some of the available distributions have stood out from the rest when it comes to usability and functionality. These are the ones we will take a closer look at.
OpenShift can be seen as a development platform that includes a complete package of tools for developing, testing and orchestrating applications with a microservices architecture. At the core of the product, Kubernetes is the engine that handles orchestration, but the packaging also contains the surrounding tools needed for development and delivery of software. Today, this is the closest you can get to a turnkey Kubernetes platform.
Ranches now runs Kubernetes as a base, and is very useful for orchestrating containers in multi-clusters. This means that through the same platform it is possible to deploy containers to an environment that consists of several different infrastructures, for example on-prem and public clouds.
Tanzu is relatively new and provides an advantage aimed at those who already use VMware for virtualization, as the orchestration of containers is integrated within VMware's virtual platform.
From the company behind the Linux distribution Ubuntu, there is a well-supported Kubernetes distribution that can be integrated with most components as long as you install and maintain them yourself. Some of the adjacent products, for example monitoring, log management and load balancing can be installed directly via the distribution.
Google offers a simple and flexible distribution, which is ready to use if you are already developing and managing your resources in GCP. Google has backed the Kubernetes project since the beginning and has adapted the solution well to its cloud. It is also possible to run GKE on-prem, with the help of Anthos.
Azure's investment in container orchestration has previously been aimed at Docker Swarm, but since Kubernetes took the lead role as an orchestration tool, AKS has become the main tool for orchestration in Azure. The platform is managed by Microsoft and also includes tools for building the CI/CD pipeline.
Amazon's built-in distribution delivers Kubernetes as a cloud service, and therefore requires no installation. The platform is maintained by AWS and can therefore be a flexible way to get started quickly. To get, for example, monitoring, monitoring and log management, you need to connect a number of additional services. There is also the alternative of running Red Hat OpenShift in AWS (ROSA), to utilize the full ecosystem of surrounding products.