Hang around Twitter long enough and you'll need a double helping of antidepressants to cope with the obvious truth that you are WAY BEHIND ON THE CONTAINER REVOLUTION. Microservices? Everyone else is doing them. Kubernetes? Most CTOs are naming their kids after the popular project. And you? Well, you're still fiddling with VMs, green screens, and mainframes.
In other words, you're normal.
As much as the press gets hyped up for containers, the reality of enterprise adoption is profoundly different. Yes, containers are becoming critical to new application development but, no, they aren’t about to dominate enterprise infrastructure any time soon.
Still worried? Try listening to Red Hat CEO Jim Whitehurst, who has everything to gain from container consumption yet acknowledges (log-in needed) only “a very small percentage of enterprise workloads today” involve containers.
'Everybody's doing it'
It’s easy to get lost in survey data and come to the wrong conclusions. For example, one can look at CNCF’s survey (Note: The Kubernetes project is managed by CNCF) and come away with the belief that 77 per cent of enterprises are using Kubernetes, up from the 48 per cent measured by Google (Kubernetes' creator) in March 2016.
However, both surveys were basically polling container converts, and thus don't represent the true industry adoption more accurately reflected in 451 Research's survey data that pegs adoption at 27 per cent. Of those 27 per cent of enterprises that have container religion, just 52 per cent are running containers in production, according to the same survey. In other words, a mere 13.5 per cent (or so) of enterprises are running containers in production.
As such, while it's accurate to say that Kubernetes dominates container orchestration, it is equally accurate to suggest that this doesn't (yet) mean very much.
Old enterprise dogs, new container tricks
When asked what percentage of Red Hat customers have containerized their applications, Whitehurst was clear: not very many. That's not to say the open source CEO doesn't see a big future for containers – he does – but the hype of containers (and Kubernetes) will take time to meet reality.
How much did you say?
While Whitehurst stressed that "virtually every major company that we are working with is building a strategy around containers" with the intention to run "the majority of their new App Dev...on containers," most of their current applications were written over a year ago and aren’t containerized.
Let's do that math again: "90 per cent of our enterprise customers are... starting to deploy containers, but it is a very small percentage of their workloads today [that are containerized] because new applications are still a small percentage [of their total portfolio]."
Whitehurst goes on to underline the operational and development benefits inherent in containerized applications managed by Kubernetes (in Red Hat’s world, by Kubernetes-based OpenShift), and therefore points to a long-term containerized future. And yet, he points out, “even some of our most advanced OpenShift customers…[have] 10 per cent or less of their total application portfolio” containerized or planning to be containerized in the near term. We are, in short “very early days” for Kubernetes and the container revolution. Making the cool stuff boring
There is a variety of reasons for Kubernetes and containers taking their time to hit the mainstream. While it’s absolutely true that enterprises are containerizing old applications, the vast majority of container uptake is for new application development. So the biggest impediment to worldwide domination by containers is...the former worldwide domination by virtualization, mainframes, and [name your favorite application infrastructure trend of yesteryear]. The future takes time.
That said, there are other things holding back containers.
Take, for example, a fractured community. Apache Mesos was early to the game, then Docker Swarm, then Kubernetes. One of the best things to happen to containers has been the industry’s rally-around-the-flag approach to Kubernetes, with erstwhile rivals Docker and Mesosphere (along with Pivotal, Microsoft, and basically everyone else) jumping on board.
In an interview, Red Hat general manager Ashesh Badani highlighted how Kubernetes helped to foster this community: “Other container orchestrators had ways to integrate storage and networking, but only Kubernetes created standards (e.g. CNI, CSI) that have gained mainstream adoption to create dozens of vendors/cloud options.”
Indeed, one of the best things about the Kubernetes ecosystem is not that it nailed all its flaws from the start, but rather that, like Linux, the community has been quick to identify and fill in the gaps. Speaking specifically about Kubernetes' security failings, Badani said: "A year ago, there were concerns about Kubernetes security. Since then, the community has responded with better encryption and management of secrets, and improved Kubernetes-specific container capabilities like CRI-O and OCI standardization."
Perhaps most importantly for the success of Kubernetes, and the general uplift for containers as a result, the Kubernetes community hasn’t been exclusive. One of the best examples of this, as Badani stressed to me, involved the Open Service Broker API:
As customers asked for ways to be able to integrate public cloud services with corporate applications, the Kubernetes community decided not to reinvent the wheel, instead working with the Cloud Foundry Foundation to create the Open Service Broker API.
Within a year, we're now seeing implementations that have not only ported all the functionality to Kubernetes, but have extended it beyond Cloud Foundry’s previous capabilities to include support for external clouds (e.g. AWS, Azure, GCP), as well as additional services such as Ansible playbooks and other third-party capabilities.
Each time Kubernetes has been called out for its shortcomings, the community has responded by improving that particular area. Hard to set up and get started? The community responded with tools like Minikube and Minishift to run locally on the laptop, automation playbooks, and services like Katacoda to make it simple to have online tutorials to learn. Weak performance? There's now a Performance special interest group (SIG) to promote high-performance applications (in Oil and Gas and other markets), showcasing how to achieve the performance characteristics of these applications in containerized environments. And so on.
With each improvement, containers come closer to taking on more of the enterprise workloads hitherto reserved for virtual machines, while Kubernetes cements its place as the standard for container orchestration at scale. While we're nowhere near containers hitting the mainstream, this work with Kubernetes is fostering enterprise confidence in containers, making containers and Kubernetes the absolute standard for new application development.
In fact, as Gartner's Thomas Bittman once wrote about the accelerating shift from private data centres to public cloud, "new stuff tends to go to the public cloud, while doing old stuff in new ways tends to go to private clouds. And new stuff is simply growing faster". How much faster? For VMs running in the public cloud, that growth was 20X versus private cloud's 3X growth. For containers, we’re seeing the same rate of uptake, which growth rate dwarfs the still slow-and-steady, if massive, adoption of VMs.
So, no, Kubernetes doesn’t yet rule the universe. Arguably, however, it rules the small-but-explosively-growing corner of the galaxy that enterprises care most about: the new applications that will make them competitive going forward. ®
We'll be covering DevOps at our Continuous Lifecycle London 2018 event. Full details right here.