The rise of open-source orchestration system, Kubernetes, has been driven by two historically important enablers: cloud technologies and containers.
Kubernetes is probably one of the hottest technologies around this year and it is very likely to become even more important in the upcoming months. It has already become a standard for container orchestration and its adoption is growing fast.
In order to understand what makes it so important, we need to go back historically and understand better two important enablers that have been key to the rise of Kubernetes: cloud technologies and containers.
See the gathering clouds
Even if the cloud as we know it today started almost 15 years ago, it is still growing at an incredible pace. In fact, according to a survey of industry influencers conducted by Logic Monitor: by 2020 more than 80% of the workloads will run in the cloud, and that number could increase to 95% in five years.
When trying to understand what has made the cloud a must-adopt technology for nearly every company, we have to understand the innovation it has unlocked in the last few years: we have to focus on the paradigm shift it introduced.
From enabling the allocation of huge resources on-demand to the ability to write infrastructure-as-code, the cloud as revolutionised the way companies do software. Organisations can now create, deploy, test and destroy a hundred times faster than before; developers can benefit from a large catalogue of self-service resources to help them develop faster without relying on infrastructure teams, and system administrators can rely on virtually-unlimited resources to create highly available systems.
But moving to the cloud is far from easy for many companies, in particular for big enterprises. There are indeed many factors making the transition to the cloud complicated, especially for hyper-regulated environments, such as financial institutions.
Above everything, security and compliance play a very big role in slowing down cloud adoption, together with the complexity of transitioning mission-critical, and often legacy, workloads without downtime.
Another factor that often gets in the way of adopting cloud technologies is trust: selecting the right cloud provider is often seen as a critical choice, as it generally leads to strong vendor lock-in.
We’ll see how Kubernetes could play a big role in cloud-adoption, but before we do, we have to understand a bit more about containers.
The development of containers
The idea behind containers and process isolation has been around since 1970 and has been used by Google for more than a decade, but it is just in the last five years that they have gained so much popularity, thanks to Docker and container management tools. Containers have solved many problems related to dependencies, environment configuration, portability and deployment, removing many of the pains of moving software from development into production, and they have also driven the adoption of modern architectural patterns, such as microservices.
Furthermore, containers are playing an important part in DevOps adoption by simplifying continuous integration, continuous delivery and continuous deployment.
The combination of the speed brought by containers and the flexibility offered by the cloud made software development change significantly over the last few years.
As for the cloud, container adoption is far from being ubiquitous, but is growing very fast. A recent survey conducted by Red Hat says that 57% of organisations are employing containers today and 75% expect to adopt them within two years. These numbers are probably higher if we keep in consideration all cloud-native companies, which are not Red Hat customers.
Still, a whole new set of challenges arises when it comes to intruding containers. The biggest ones are perhaps governance, observability and security. Here’s where Kubernetes, once again, plays a crucial role.
Now that we have all the context to explain where Kubernetes fits, we can go on and dig deeper into how it solves many of the challenges in the current cloud/containers-adoption landscape.
Not just another container management system
Kubernetes takes container management to a different level. It doesn’t just schedule containers for you, it offers abstractions for many of the common concepts required to operate software at scale. Networking, load balancing, deployment strategy, roll-back, these are just some of the things you can control in Kubernetes. It also comes ready for high availability and scalability, making it particularly suitable for production environments.
In the latest releases, the community has also significantly improved security, making it a mature product even for more strictly regulated environments. It is no surprise it has become the de-facto standard for container orchestration. Kubernetes is also the only container management system to be offered as a service by all major cloud vendors.
A platform you can trust
One of the reasons why Kubernetes has been gaining popularity so fast is the number of companies already trusting it and backing up the OpenSource project behind it. Originally started by Google, who for many years before Kubernetes had been operating containers at scale, it is now supported by a huge community and many big tech companies, such as Microsoft, RedHat, IBM and more.
We know from experience that trust is a key element when it comes to driving adoption. Another crucial factor when choosing a platform is the level of support available on the market. Even here Kubernetes shines, with many vendors offering options with enterprise support.
A community driven platform
Among the huge advantages that Kubernetes gets from being OpenSource and community-driven, the most important are probably the frequency of fixes and updates and the extensibility to fit a variety of use cases. As some experts defined it, Kubernetes is a ‘platform for building platforms’, which means it is much more than just a container management system.
The community has taken care of providing a continuously growing set of tools to configure, manage, monitor and operate Kubernetes as well as several services using Kubernetes as the underlying platform. We could say that Kubernetes is competing with many services that today are being offered by cloud providers, but with one big advantage: it is vendor agnostic.
Adopt the cloud gradually
As we mentioned earlier, many companies are still in the process of moving to the cloud, and some of them at the very early stages. Choosing a cloud vendor isn’t the easiest task at all, and often security and compliance get in the way of moving sensitive data to the cloud. In this scenario, Kubernetes plays an even more important role, allowing companies to gradually move to the cloud, in fact, in hybrid scenarios adopting it ensures consistency between on-prem resources and the ones allocated on the cloud. With it, the idea of moving from one cloud provider to another or having a multi-cloud solution doesn’t seem as difficult as before.
Times are finally mature for Kubernetes, whether in the cloud or on-prem. Thanks to its extensibility, the support of the community, the ecosystem of plugins and services that leverage it as a platform, Kubernetes is strong in all those areas you would look for when choosing a production-ready product, from network security to observability, to authorisation and access control.
Moreover, Kubernetes is playing a key role in the adoption of containers and it is already helping companies that struggle with their migration to the cloud. It is without any doubt the technology we’ll be talking about for the next couple of years.
Senior vice president