Many analytics projects pass a pilot test with flying colors but fail to earn wide adoption. Here are five common culprits that doom projects – and advice for tackling them.
How to explain Kubernetes in plain English
How do you explain Kubernetes and orchestration to non-technical people? Listen to the experts
Talk containers with an IT pro for more than a minute and the conversation will inevitably turn to container management and orchestration.
It might be easy to deploy a container, but operationalizing containers at scale — especially in concert with microservices — is not for weekend enthusiasts. It requires planning, and most experts say an orchestration tool is a must.
[ Kubernetes terminology, demystified: Get our Kubernetes glossary cheat sheet for IT and business leaders. ]
That’s the point at which the conversation will likely turn to Kubernetes. The platform was first developed by a team at Google, and later donated to the Cloud Native Computing Foundation (CNCF). It’s not the only option for container management, but it has rapidly become one of the most popular. As Opensource.com notes, "Today, Kubernetes is a true open source community, with engineers works from Google, Red Hat, and many other companies actively contributing to the project."
In fact, it’s commonly cited as one of the highest-velocity projects in open source history. Consider Github as a barometer of Kubernetes’ traction in the software community: Kubernetes was the most discussed repository on the site over the past year, and the project with the second-most reviews.
That means you’ll be having even more conversations about Kubernetes going forward, with not only IT pros, but also non-technical folks with a stake in the company’s software. Which in 2017 is to say: Pretty much everyone.
[ Want a more agile culture? Get the digital transformation eBook: Teaching an elephant to dance. ]
Kuber-what? What does Kubernetes mean?
How do you explain Kubernetes and orchestration in plain terms that people can at least begin to understand? Heck, how do you even say Kubernetes? (Pronunciations may vary a bit, but the agreed-upon origin is from the Greek, meaning “helmsman” or “sailing master.”)
Here’s how Red Hat technology evangelist Gordon Haff explains Kubernetes in his book, “From Software and Vats to Programs and Apps,” co-authored with Red Hat cloud strategist William Henry:
“Kubernetes, or k8s (k, 8 characters, s... get it?), or ‘kube’ if you’re into brevity, is an open source platform that automates Linux container operations. It eliminates many of the manual processes involved in deploying and scaling containerized applications,” Haff and Henry write. “In other words, you can cluster together groups of hosts running Linux containers, and Kubernetes helps you easily and efficiently manage those clusters.”
What does Kubernetes do?
We put a variety of other experts, including one of Kubernetes’ original developers, to a similar task: Explain Kubernetes in plain terms that a wide audience can grasp in at least a basic sense. Here’s what they had to say. (One of them even used a lunchbox analogy: Well done.)
Joe Beda, CTO at Heptio (and one of Kubernetes’ original developers, along with Craig McLuckie and Brendan Burns, at Google): “Kubernetes is an open source project that enables software teams of all sizes, from a small startup to a Fortune 100 company, to automate deploying, scaling, and managing applications on a group or cluster of server machines. These applications can include everything from internal-facing web applications like a content management system to marquee web properties like Gmail to big data processing.”
Mike Kail, CTO and cofounder at CYBRIC: “Let’s say an application environment is your old-school lunchbox. The contents of the lunchbox were all assembled well before putting them into the lunchbox [but] there was no isolation between any of those contents. The Kubernetes system provides a lunchbox that allows for just-in-time expansion of the contents (scaling) and full isolation between every unique item in the lunchbox and the ability to remove any item without affecting any of the other contents (immutability).”
Nick Young, principal engineer at Atlassian: “Kubernetes is an orchestration layer that allows users to more effectively run workloads using containers — from keeping long-running services ‘always on’ to more efficiently managing intensive shorter-term tasks like builds.”
Kimoon Kim, senior architect at Pepperdata: “Kubernetes is software that manages many server computers and runs a large number of programs across those computers. On Kubernetes, all programs run in containers so that they can be isolated from each other, and be easy to develop and deploy.”
Dan Kohn, executive director of the CNCF, in a podcast with Gordon Haff: “Containerization is this trend that’s taking over the world to allow people to run all kinds of different applications in a variety of different environments. When they do that, they need an orchestration solution in order to keep track of all of those containers and schedule them and orchestrate them. Kubernetes is an increasingly popular way to do that.”
Nic Grange, CTO at Retriever Communications: “Kubernetes is the new operating system for the cloud. It helps you run software in a modern cloud environment by leveraging Google’s extensive experience of running software at scale.” The decision to give Kubernetes to CNCF “has allowed it to be widely adopted by many companies. As a result, it has grown to become a powerful and flexible tool that can be run on a variety of cloud platforms and on-premises,” he says.
How Kubernetes taps the potential of containers
As Haff and Henry note in their book, Kubernetes clusters “can span hosts across public, private, or hybrid clouds.” (They also note that “for performance and other reasons, it’s often recommended that individual clusters should be limited to a single physical location.”)
A few pages later in their book, we get another great definition of what, exactly, Kubernetes does — and its considerable allure for companies trying to figure out how to properly manage containers at scale.
“Kubernetes provides a platform to schedule and run containers on clusters of physical or virtual machines,” Haff and Henry write. “More broadly, it helps you fully implement and rely on a container-based infrastructure in production environments. And to do so in a way that automates many operational tasks.”
In other words: Kubernetes is a tool that helps IT make the potential of containers an operational reality.
[ For expert advice on how to prepare for microservices, see our related article, Microservices and containers: 5 things to know at start time. ]