Kubernetes Explained for Business Leaders
As companies increasingly rely on emerging technologies — not to mention spend more — it’s more important than ever for business leaders to have a deeper-than-basic understanding of those technologies to power their organizations. Yet when technology discussions turn to concepts like “containerization” and “orchestration,” the honest truth is, many line-of-business leaders can find themselves lost in the terminology without sufficiently understanding a technology’s implications. As someone who’s spent much of the past two decades breaking down tech for lay audiences, I can empathize. That’s why, as part of my work as the new Chief Marketing Officer at Rackspace, I’m going to continue explaining tech — in this case, some the most game-changing products and services we offer, on our blog and through videos. Kubernetes falls within this domain. A container orchestration tool, it can save your company manpower and dollars while increasing efficiency. How? Let’s dive in.
What is Kubernetes?
The super short version: Kubernetes is a system for deploying applications that can save money because it takes less IT manpower to manage and helps more efficiently utilize the infrastructure that powers your apps. It also makes your apps a lot more portable, so you can move them more easily between different clouds and internal environments. Makes it simpler to manage your IT. Saves you money. Pretty straightforward. Kubernetes is to your IT infrastructure as picking robots are to physical warehouses. Kubernetes is all about automating the management of containers. If you want to wrap your head around how it works, you’ll first need to understand a little bit about virtualization and containerization. Traditional virtualization lets you split your physical servers into multiple VMs (virtual machines) so that the hardware can be shared and used more efficiently. This is what continues to power most corporate data centers. (Learn more about virtualization here.) Container technology provides an even more efficient way of virtualizing physical hardware than traditional VMs. Containers allow pieces of code to be put into smaller, easily transportable pieces. The problem is, larger apps typically have to live across a bundle of several containers — for instance, by running your database in one container, the web front end on another and a caching server on yet another. This approach can quickly spiral out of control if you’re at an enterprise company with a large portfolio of apps. You wind up with way more containers than a human team can feasibly monitor and manage. Imagine an enormous warehouse. All your goods are packed up neatly in boxes and isolated from one another. But when you’re operating at a large scale, it’s virtually impossible for a small number of employees to efficiently track down the right packages and manually get them where they need to go at the right time. So, if you want to use a container tool like Docker at scale, practically speaking, you need an orchestration solution to automatically track, schedule and orchestrate all those containers. And Kubernetes does just that. It does for containerized IT environments what autonomous mobile robots do for modern factories. There are a lot of ins an outs to how it actually works. But the main thing you need to takeaway is that Kubernetes reduces the nitpicky details of managing containers. It doesn’t replace the lower-tier mechanisms used by containers, like Docker itself. It simply provides additional layers of abstraction — for instance, by organizing multiple containers into units called “pods” — which helps you more efficiently scale containerized apps in an automated way, ramping resources up and down to suit demand. To sum up: containers make your apps more portable and cost-efficient, and Kubernetes makes it much more feasible and less-resource intensive to manage a whole lot of these containers at scale.
How can Kubernetes help me and my customers?
Multi-cloud flexibility One of the biggest benefits of Kubernetes and containers is that it helps you realize the promise of hybrid and multi-cloud. Enterprises today are already running multi-cloud environments and will continue to do so in the future. Kubernetes makes it much easier is to run any app on any public cloud service, or any combination of public and private clouds. This allows you to put the right workloads on the right cloud and to help you avoid vendor lock-in. And getting the best fit, using the right features and having the leverage to migrate when it makes sense all help you realize more ROI (short and longer term) from your IT investments. Lower costs Kubernetes can help your business cut infrastructure costs — sometimes drastically, if you’re operating at massive scale. It makes a container-based architecture feasible across a portfolio of large, enterprise apps, which means you can pack together apps using minimal resources to get the most out of your cloud and hardware investments. Meanwhile, apps that need to expand can be placed across pods where they have room to grow. Improved IT and development team efficiency Kubernetes allows your IT teams to more efficiently manage large applications across many containers by handling many of the nitty-gritty details of maintaining container-based apps. For example, through its API, Kubernetes handles service discovery, helps containers talk to each other and arranges access to storage from various providers, such as AWS and Microsoft Azure. Also, Kubernetes provides many abstractions and APIs that facilitate a “microservices” approach to building apps and organizing development teams. This allows you to keep teams smaller, more agile and more highly specialized because each team can focus on a single, smaller microservice. APIs between these microservices minimize the amount of cross-team communication required to build and deploy. So ultimately you can scale multiple small teams of specialized experts that each help support a fleet of thousands of machines.
Getting started with Kubernetes
Kubernetes makes managing containers simpler. And that means it can help you reduce costs and provide more value to your customers. But managing Kubernetes itself comes with its own challenges. As an open-source technology, there’s not a formalized support structure around it. You need both internal staff and partners who understand how the layers of abstraction function and who can keep up with the actively evolving ecosystem of Kubernetes tools. To return to the warehouse analogy: having an army of warehouse robots is all well and good. But then it’s all the more important to have the right experts on hand to program and maintain them. So if you’re considering options to reduce complexity and cost related to managing your infrastructure, Kubernetes is worth a serious look. And if you need an agile and flexible way to structure your investment, you may want to consider a Kubernetes-as-a-Service options as well. At Rackspace, our experts deliver ongoing operations management and support for the entire technology stack — from the hardware and Infrastructure-as-a-Service to Kubernetes itself. Plus, we manage and support the containers and cluster application services such as monitoring, logging, analytics and more. We’d be delighted to help you.