Kubernetes is a seachange technology - IT leaders should be at the helm
Kubernetes is now the de facto standard for deploying cloud applications
Sometimes technologies just seem to blow in on the prevailing wind. Arriving at just the right time to solving the problems of the day, they may bring with them a whole new way of doing things, or at least make existing processes significantly faster, cheaper and easier than before.
Examples of such seachange technologies include Windows on the desktop, Linux's displacement of UNIX and Windows on the server, Apache Web Server which just a year after its release had captured more than half of the market, and more recently, perhaps, the Hadoop ecosystem which ushered in a new way of storing and analysing disparate data sources at scale and Spark which did the same for streaming analytics. These technologies changed the way that things are done.
Early signs are that Kubernetes is another one. Despite being barely four years old, adoption of the open source container orchestration platform is happening at a rapid rate of knots. Most importantly, vendors including Amazon, Oracle and Microsoft have rushed to support it and already there is a thriving ecosystem of suppliers offering security and management add-ons - including erstwhile rivals such as Docker Swarm.
It's the Linux of the cloud, or perhaps the Hadoop of infrastructure software - Dan Kohn
"It's the Linux of the cloud, or perhaps the Hadoop of infrastructure software," said Dan Kohn, head of the Cloud Native Computing Federation (CNCF).
"Obviously more people use Linux but it's like Hadoop in that there's this massive ecosystem of projects building up around it. There are 55 different distributions to date and the beauty is they are all compatible so an application will run the same way on all of them."
Containers are a key architectural choice for deploying enterprise applications in the cloud, and Kubernetes is becoming the de facto way of orchestrating and managing the containerised apps. It may be early days but for this reason, if no other, IT leaders would be well advised to keep a weather eye on Kubernetes.
Few suits were in evidence at KubeCon Europe, but watch this space
Geek's paradise
The vast majority of the 4,300 delegates attending KubeCon & Cloud Native Computing Foundation Con Europe 2018 in May were clad in hoodies and T-shirts; there was nary a suit in sight. Kubernetes is still a developers plaything but its rising market share (some figures suggest it has 60 per cent of the container orchestration market) and the fact that it is by some measures the top project on GitHub with over 1,600 regular contributors (surpassing Spark's 1,300) suggests that it is about to "cross the chasm", to quote Geoffrey Moore's famous theory of technology adoption. The suits are surely on their way.
Computing asked analysts, architects, end users and vendors attending KubeCon for their explanations for Kubernetes rapid rise. For no reason other than that the Kubernetes logo is a seven-spoked ship's wheel we report on the seven top factors mentioned.
Kubernetes seems poised to cross the chasm
But first what is Kubernetes?
Kubernetes is an orchestration platform which automates many of the trickier aspects of deploying and managing applications in containers. It was originally developed by Google and later open sourced. Google has been managing its resources as distributed containerised microservices for some time now, which is one reason why when Kubernetes arrived on GitHub it was already almost fully grown.
Rather than existing as monoliths, modern cloud-capable applications are often split into their individual services with those services deployed to individual containers, such as Docker. Those containers are spread over multiple physical or virtual machines - or nodes - and those nodes may be grouped into clusters. In many ways, it's an updated version of SOA for the cloud age, the services loosely coupled rather than completely interdependent.
One of the main advantages of a microservices architecture is that individual services may be upgraded without taking down the whole application. This is an important consideration for continuous integration and continuous deployment, the bedrocks of DevOps. Another advantage is in the management of large development teams as tasks and responsibility for the code can be logically divided up across sub-teams.
On the other hand, when applications exist as multiple services running in multiple containers spread across multiple machines it can become a real chore to keep track of all the moving parts and dependencies let alone to optimise how they are deployed. This is where Kubernetes steps in. It automatically optimises the infrastructure to suit the application.
So the application becomes infrastructure-agnostic. Complex decisions around load balancing, scaling, storage, OSs and routing are magicked away. The IT team simply sets the required state in the yaml configuration file and Kubernetes does the rest.
So that's the background, now onto the reasons why Kubernetes is apparently moving ahead full sail. Nautical metaphors ahoy.
1. Time and tide
Kubernetes arrived just as the concept of DevOps was taking off. Containers and microservices were finding a place in the Agile architect's box of tricks. This was also when the term "digital transformation" became ubiquitous with its message that IT leadership was now at the helm when it came to business strategy.
Also, from a broader technical perspective, you had processing moving out from the centre to edge devices such as IoT sensors where data is generated. Another factor is the rising popularity of a best-of-breed or multi-cloud approach to vendors, with enterprises wary of getting stuck with one provider.
"Kubernetes can run everywhere, so you eliminate lock-in," said Ramon Guiu, director, product management at New Relic. "You can run it in the cloud and on-prem, so that helps you tremendously in terms of business value."
And of course, we've seen the arrival of regulations such as GDPR with stipulations around privacy, access rights and geolocation and which require tight control of what data goes where.
All of these trends are favourable to Kubernetes.
2. A thousand ships
As well as having more active contributors than any other open source project, Kubernetes has amassed an impressive armada of support from companies large and small.
"There are multiple big vendors that are really getting behind Kubernetes, Google and Red Hat are the obvious ones but there are others now," said Databricks CEO Ali Ghodsi. "Microsoft hired one of the co-founders of Kubernetes in Brendan Burns and joined the CNCF. Amazon is another, after launching EKS as a managed service for deploying Kubernetes on AWS."
It's quickly becoming the only game in town, explained New Relic's Guiu.
"Everybody's backing it," he said. "All those companies are putting resources into evolving it and improving it. You have a lot of tooling around it now to help build it as a platform as a service."
Companies might try to do things cheaper by going elsewhere or creating their own container orchestration system, but a tipping point has now been reached and it would likely cost them in the long run, said Ed Warnicke, distinguished consulting engineer at Cisco and FD.io.
80 per cent of the value of any software you use is the ecosystem it plugs into - Ed Warnicke, Cisco and FD.io
"At least 80 per cent of the value of any software you use is the ecosystem it plugs into," Warnicke observed. "So even if what you have built homegrown is twice as good as, you are delivering less than 50 per cent of the value of Kubernetes, and this is true with almost anything that becomes dominant in open source."
3. Happy crew, happy ship
Too much deck swabbing and net mending an unhappy crew makes, and unhappy crews can sometimes turn mutinous. Refactoring large applications and manually managing microservices in containers and on VMs is no fun and the cause of much grumbling, particularly when things go wrong.
Sarah Wells, technical director for operations and reliability at the FT oversaw a "painful" migration first to Docker containers and microservices on an in-house built stack and later to a simpler system based on Kubernetes.
"A very good metric for developer satisfaction is how many sarcastic comments they're making on Slack," she said.
Sarah Wells of the FT
"It can be a huge job for developers to adapt applications for microservices," said systems engineer Edgaras Apšega who works at digital media advertising platform Adform. But developers like Kubernetes as it enables them to work faster and removes a lot of the complexity of container deployment. Apšega certainly noticed the difference.
"You should see their faces now. Even the security guys are happy - and they are never happy. But now they can inspect the containers and make sure that Security is in control of the services. They're really happy about that."
Both development time and time to market can be reduced, said CNCF's Kohn.
"It enables developer velocity. How quickly can they make improvements and then get them rolled out? I think that would be my number one reason [for its popularity]".
And at the FT the new system seems to have steadied the ship. "I haven't seen any complaining in Slack, which I think is a major achievement," Wells said.
4. Stability in rough seas
Kubernetes has routines that constantly check that things are shipshape. If the yaml file says there should be five instances of a service running and it notices there are only four it will spark up a replacement automatically. If it spots an instance running on an underperforming pod (a group of one or more containers), it might kill the pod and move the instance elsewhere.
Containers are treated as immutable files. If one goes down another one is created and deployed automatically where it makes the most sense.
"Kubernetes is declarative and self-healing," said Amit Sharma, global product marketing lead at Cisco AppDynamics. "You give a declarative configuration to Kubernetes: ' I want three replicas of this application to run', and it will make sure three are always running. This makes for more reliable applications."
Adform's Apšega said this can lead to support staff getting a full night's sleep more often.
"The DevOps guys would have to get up in the night when the application crashed and remove the servers but now with containers [Kubernetes] just automatically restarts them. That's a huge advantage."
4,300 people attended KubeCon Europe
5. Running a tight ship
Organisations that have tried containerising applications have frequently found that they are less efficient and harder to manage because the infrastructure is not optimised. Kubernetes automatically distributes containers in the most efficient way.
"In most data centres very few of the machines are fully loaded, it's 3 per cent load or 5 per cent load on the machine," said Kohn. "If instead you can characterise each of your workloads and say I want this much CPU, this much network this much RAM, then the Kubernetes controller is constantly looking for new ways of arranging things to maximise the ‘bin packing'."
Through its ecosystem, Kubernetes optimises other services too, said Ghodsi of Databricks.
"Kubernetes is the only framework that really solves many of the problems related to managing containers. For example, it supports networking really well through Flannel, it handles storage through etcd, and it can support blue/green updates through Deployments. These are three of the biggest problems for managing containers at scale."
6. Treasure island
While there will be initial setup costs and migrating to a new system will never be free, savings should be possible, depending on where a firm starts.
"It delivers on the promise of doing more with less" added Sharma of AppDynamics. You can ship better software faster so it makes developers more productive, and as you increase your capacity utilisation your costs can go down."
It delivers on the promise of doing more with less - Amit Sharma, AppDynamics
"Hosting and support costs are now cheaper and we'll break even in three years," added the FT's Wells.
7. APIs, APIs everywhere
Because Kubernetes is application- rather than infrastructure-centric containerised applications can run anywhere, public cloud, private cloud, hybrid cloud, and bare-metal on-premise. In addition it is compatible with a number of other cloud platforms and services.
Kubernetes supports the Open Service Broker API. OSBAPI is an open source project with contributors from Fujitsu, Google, IBM, Pivotal, Red Hat and SAP and it is widely used in large corporations. Essentially it opens up the cloud by allowing developers and service providers access to applications running within cloud-native platforms such as Kubernetes but also OpenStack, VMware, Microsoft, Google, AWS, Pivotal and Red Hat OpenShift. While not strictly a feature of Kubernetes (OSBAPI is a Cloud Foundry project) it means that containerised applications can run across different cloud platforms, reducing the risk of lock-in.
"There's also the de facto standardisation allowed by the Kubernetes Cluster API," said Henning Jacobs, head of developer productivity at Zalando. "That's a major selling point for Kubernetes that makes it different to Mesos or other container orchestration platforms. The API is extensible for GDPR or compliance or Postgres or whatever you want. This is the differentiator."
Building on this theme Ghodsi said it can make the multi-cloud real.
"Nothing really comes close to Kubernetes. If Google, AWS and Microsoft really standardise on Kubernetes, it can become the de facto API for all these clouds. That is exciting."
Author spotlight
John Leonard
More from John Leonard
Ofcom fines TikTok £1.9m for failure to provide child safety information