Source: A Kubernetes FAQ for the C-suite from Google Cloud
When CEOs and other executives visit us at Google Cloud, they usually ask for briefings on topics like practical applications of machine learning, or how to draw insights from big data. Whether these conversations happen at our Executive Briefing Center in Mountain View, or informal settings like our Partner Summit lounge at Google Cloud Next, they have a common theme: executives want to know what role Google Cloud can play in their business transformation journeys.
Not that long ago, those meetings rarely featured Kubernetes. Today, however, many executives have taken note of its potential to transform the way enterprises build and run applications; it’s no surprise to read that 54% of Fortune 100 companies are using Kubernetes in some form. Nowadays, publications like Forbes, Digital: McKinsey Insights and Boston Consulting Group Technology & Digital eAlert cover Kubernetes on a regular basis.
But where do you start if you’re new to Kubernetes and want to quickly get up to speed without being weighed down by too much jargon or technical detail? During my first four months with Google Cloud I’ve had the privilege to meet more than 40 customers and partners, and have answered these questions many times. Here’s a short-and-to-the-point Kubernetes FAQ to help the non-technical executive get up to speed.
Non-technical answer: Kubernetes is a software layer that sits between your applications and your hardware infrastructure.
Technical answer: Kubernetes is a container manager and orchestrator that abstracts away your underlying infrastructure, making it possible to consistently run and manage applications running in multi-cloud environments.
Another way to think of it is as an operating system. Kubernetes does for your enterprise applications what the operating system in your phone does for your personal apps. It makes sure those apps can be deployed, updated, restarted, configured, deleted, and more. The main difference is the scale at which Kubernetes operates—it manages applications across multiple different clouds and servers. This is why Kubernetes is often called “the operating system for the cloud.”
Kubernetes allows companies to bring to market applications faster by automating deployment (installing software) and simplifying ongoing management (software upgrades, security patches and scaling) to keep applications running smoothly. But what does it really mean? Let me explain using a simple analogy.
Let’s say that you’d like to assemble one of the largest Lego sets ever created—a Town Hall composed of 10224 Lego bricks. Now imagine if you could simply issue an order: “Assemble the Lego Town Hall like you see it pictured on the box!” and magically all the Lego pieces jumped out of the manufacturer’s box and fell just in the right spots to re-create the 3D model from the image:
Kubernetes, thanks to its declarative programming model, does that for any application. You simply tell it your application design and final state, and Kubernetes turns it into a running instance. And it keeps it that way by restarting failing parts of the application or upgrading aging ones. It’s like having a patient parent that constantly fixes the Lego Town Hall day after day as the kids bump into it and knock it over.
Developer perspective: Developers like Kubernetes because it provides the necessary APIs that are needed today to build the next generation of applications, while at the same time supporting the more traditional ones. This lets them focus on the app’s functionality instead of worrying about all the nitty-gritty details of how to manage the application. With Kubernetes, the developer experience is consistent whether they work on their laptops or in production environment. The application will not break when moved from a local machine to production, which saves the headache of debugging it.
IT operations perspective: System administrators like Kubernetes because it automates a lot of the mundane, boring and error-prone operational tasks to keep applications running smoothly at scale. With Kubernetes, a server outage no longer keeps them up at night.
Bring new products to market faster: Kubernetes accelerates software development so developers spend can spend their time writing code instead of configuring infrastructure.
Avoid vendor lock-in:By standardizing your software development on Kubernetes, which is open source and runs in any cloud or data center, it’s easy to manage software running on multiple clouds, and you’re free to move your workloads around to another cloud, or back on-prem.
Enjoy peace of mind that your applications are always on: Kubernetes brings Internet scale to companies of all sizes and industries.
Kubernetes self-heals: if your apps happen to be running in a server that failed (which is very likely to happen when you have lots of servers), Kubernetes notices and moves your application over to another healthy server without any manual intervention.
Kubernetes auto-scales: Your app can handle even gargantuan spikes in user traffic without breaking a sweat. You can easily set policies that control that growth, too (so there aren’t any big surprises when the bill comes).
Kubernetes is a very successful open source project, just like Linux, which brings these key benefits:
It’s the de facto standard for running cloud native applications at scale:tens of thousands of developers all other the world contribute to Kubernetes source code every day. The project is backed by a strong community rather than a single company, and managed by the non-profit Cloud Native Computing Foundation (CNCF). Dan Kohn, the foundation’s executive director, has predicted that eventually, much of the world’s legacy software, worth about $100 trillion in net GDP, will be ported into Kubernetes.
Free community support or paid professional services: just like with Linux, you can master the technology on your own with online support or buy training and support from Google or other companies.
You’re never locked into a single vendor: You can host Kubernetes yourself and develop new features as you like, or let a cloud provider like Google host your Kubernetes cluster for you. If your app is built to run on Kubernetes, it can be easily moved among different clouds.
I hope this short introduction to Kubernetes has helped demystify its key concepts and benefits. At Google, we’ve been using the concepts and design principles of Kubernetes for over a decade to run applications like Gmail and YouTube at a scale required to serve over one billion users. And many other organizations have adopted Kubernetes, from Shopify that scaled their e-commerce platform to support thousands of online stores to ING that wanted to go from idea to production within 48 hours.
If fast application rollouts and scaling them for peak traffic without getting locked into a single vendor are your business priorities, Kubernetes may be the right solution for you. To learn more, visit our site.