In Greek, the word "kubernetes" means "helmsman." In tech, it's a system created by Google that uses containers to help software work more efficiently with the server space it has. Just as someone helms a container ship, Kubernetes makes sure everything gets where it's supposed to be.
Containers are systems that have everything needed to run a piece of software: the code, the dependencies, and on and on. Companies build their products using containers so they’re standardized, whether it runs in the cloud or in a physical data center. Kubernetes manages the workloads and services associated with containers, so software efficiently uses server space. Kubernetes, which Google donated to the Cloud Native Computing Foundation, is now one of the most active open-source projects ever. Google remains the top contributor for the project, including leadership and committee positions.
Aug. 26 marks the five-year anniversary of Google Kubernetes Engine (GKE), our managed version of open-source Kubernetes, becoming available to everyone. GKE engineers contribute beyond Google Cloud to the Kubernetes community at large. Here, three of those engineers—Michelle Au, Janet Kuo and Purvi Desai—explain why Kubernetes is so important, and how it’s used in the real world. Google Kubernetes Engine turns five this year. How would you explain Kubernetes to a five-year-old?
Michelle Au:Kubernetes is a tool that helps many of your favorite games and websites run without problems, even when all your friends want to play at the same time. It makes sure that there are enough computers running to support everyone using them, they are restarted if they crash and that they update without problems.
Janet Kuo:Think of containers as plants. To grow a plant, you need to first find some pots, and then fill the pots with seeds and compost. Let’s say you have all the plants in one pot and there’s not enough compost in that pot. Then you need to move them to other pots. Kubernetes is like a gardener that helps you take care of your plants, check the compost levels of each pot, check the health of your plants, remove dead plants or transplant them when needed. Kubernetes can also grow more or less of certain kinds of plants (“I want at least two roses and at most 10 roses at all times”) based on your preferences.
Purvi Desai:Imagine a child wants to build a huge city out of Legos. Deciding which Lego blocks needed would take significant time and hard work. Now imagine instead, the child vaguely describes the idea of the city, along with shapes and colors, to their mom. Mom buys Lego kits and builds them for the child. She also works with them every day to add more buildings, so the child can spend more time playing rather than working. Think of Kuberentes as the mom, applications that you use on your computer or tablet as the Legos and the child as the application developer.And how would you describe your role in GKE to a five-year-old?
Michelle:As a software engineer on the storage team, I write computer programs that make sure your important information is safely stored in Kubernetes.
Janet:I’m the Kubernetes project maintainer. I review code, fix bugs and implement new features. I also build products and tools on top of Kubernetes. You can think of those products as equipment Kubernetes uses to do fancier work.
Purvi: I’m a senior manager in GKE and Kubernetes development team. My teams build the plumbing or roadways, aka the networking, for Kubernetes. We do the heavy lifting for our customers. Why is Kubernetes so important?
Janet:In a world where customers need access to software—regardless of their location—Kubernetes allows applications to run at global scale. Another benefit of Kubernetes is that it runs anywhere, so you can move your applications around. Kubernetes also allows you to customize and manage any resources you want, even the ones that live outside of Kubernetes, using the Kubernetes APIs.
Michelle:Kubernetes makes it easier for users to adopt good practices for running applications. It provides basic building blocks for scaling workloads, monitoring their health and updating them. This enables teams to develop, roll out and test their applications faster—making those applications more reliable and dynamically scalable. Kubernetes took off because it’s portable across any infrastructure provider and flexible to extend it with custom APIs.
Purvi: Kubenetes enables you to run cloud native applications anywhere consistently on various platforms. It’s become massively popular not only with developers of modern cloud native microservices applications but also with developers looking to move their traditional applications to a platform that isn’t dependent on the underlying infrastructure. It’s enabled developers and operators alike to run their test and production workloads in environments of their choice without needing to rewire the application. This will continue as more businesses become digital. What are some real-life applications of GKE? Tell us a story of a favorite customer use case.
Janet:One of my favorite customer use cases is Shopify. Shopify runs entirely on GKE. They chose GKE and Kubernetes because it allows Shopify to cope with huge spikes in traffic, such as Cyber Monday, Black Friday shopping events or when a celebrity shares a new product on their Shopify store.
Michelle: I love hearing how GKE enables customers to push the limits of computing. My favorite customer story is this Kubecon keynote by CERN that included a live demo on GKE processing 70TB of data in five minutes to rediscover the Higgs boson. This was impressive not only because of the scientific achievement and processing power demonstrated, but also because they highlighted the portability of Kubernetes and the reproducible environment of containers.
Purvi: My favorite use cases are when customers have successful massive-hyper growth in a matter of minutes and GKE helps them scale to those demands. We see amazing graphs during launch of new online games, Black Fridays, flash sales, during live events like the Super Bowl, when customers migrate traffic and during customers’ new product launches. It’s so satisfying to see our customers’ business growth and our platform’s role in seamlessly enabling it.What has your experience been like as a woman in software development? What do you think the future will be like for women in the field?
Janet:A few years ago, I went to a developer meetup with a woman friend of mine who had never been to one before. She was surprised that we were the only two women there, but I didn’t even notice because I was so used to being outnumbered. Luckily, our industry is becoming increasingly diverse over time.
Michelle: In college, I was part of a women’s engineering community where I established many long-lasting friendships. On the GKE team, I’ve been able to work with many great women leaders, and the leadership in general has been very supportive and accommodating to make sure everyone feels safe and comfortable on the team. I know that my experience is unfortunately not the norm for a lot of women in the field. I hope that with more women role models and leaders, we can help build inclusive communities and encourage more women to take up a career in software.
Purvi: When I joined a startup straight out of college, I was the only woman in the engineering and product group. But thanks to my upbringing and deep focus on my work, I never felt out of place in the field. I did, however, feel the pinch later at a different startup job when I had my kid and I was the first mother on the team. The company didn’t have support systems like paid leave or a mother’s room. Overall, things are getting better with more women in the field. I think the future for women in software development is bright. What’s your advice for aspiring developers who want to get started?
Michelle:It’s important to spend time learning about computer science concepts rather than deep-diving into specific technologies. The latest frameworks and programming languages will come and go, so it will be easier to adapt and learn if you have a good conceptual background.
Janet: Be hands on. Build something from what you’ve learned, and don’t worry if it’s “good enough.” Write articles about what you’re building or learning. This helps you grow and deepens your understanding of a new technology.
Purvi: Find your passion or interest and explore how computer science can help you realize it. You have to lay the groundwork by learning programming languages, algorithms, data structures and such. This might get boring and tough, but these are fundamental skills just like reading or math. Once the groundwork is laid, the ability to turn your passion into reality will be exhilarating.
Learn more about how to develop using Kubernetes.