Kubernetes: Case Study

Prithviraj Singh
8 min readDec 26, 2020
Kubernetes Logo

A StackRox study indicate an extensive adoption of Kubernetes of over 90%, especially in production environments of around 75%.

Pie-chart representation

In a bi-annual CNCF(Cloud Native Computing Foundation) survey done in 2018, they marked that “40% of respondents from enterprise companies (5000+) are running Kubernetes in production” as a key-takeaway; CNFC is a Linux Foundation project that was founded in 2015 to help advance container technology and align the tech industry around its evolution.

Also in Alexa Top 100 Kubernetes can be seen to hold 13.14% of market share.

So… what is Kubernetes? And what’s all the fuss about?

Let’s start by learning what Kubernetes actually is and what are is its use-cases… Kubernetes (also know as K8) is an open-source system which can help it’s users by simplifying container application with automating computer-application deployment, containerized-scaling and container-management across a cluster of hosts. A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another.

Kubernetes was founded by Joe Beda, Brendan Burns, and Craig McLuckie, who were quickly joined by other Google engineers including Brian Grant and Tim Hockin, and was first announced by Google in mid-2014. Kubernetes defines a set of building blocks (“primitives”), which collectively provide mechanisms that deploy, maintain, and scale applications based on CPU, memory or custom metrics. t was originally designed by Google and is now maintained by the Cloud Native Computing Foundation.

Kubernetes is agile, consistent, application-centric, cloud and OS distribution portable, highly efficient and dense. It also provides reliable and frequent container image build and deployment, create application container images at build/release time rather than deployment time, application health and other signals, predictable application performance and so on…

Containers are a good way to bundle and run your applications. In a production environment, you need to manage the containers that run the applications and ensure that there is no downtime. For example, if a container goes down, another container needs to start. Here is where Kubernetes comes into the play, Kubernetes provides you with a framework to run distributed systems resiliently. It takes care of scaling and failover for your application, provides deployment patterns, and more. Kubernetes provides the building blocks for building developer platforms, but preserves user choice and flexibility where it is important. However it’s not a monolithic stack running on one big single-purpose machine.

As a result…

CNCF Survey graph comparing different container management tools/platforms/frameworks

Kubernetes comes out at the top of its competitors by a humungous margin. Which suggests Kubernetes is not the only option for container orchestration, but it has clearly become the go-to choice: more than three in four firms (78%) included in the CNCF report(2019) said they were using Kubernetes in some form.

Now, let’s see what are the use some of the use cases of Kubernetes…

Containers have provided us with dramatically more flexibility for running cloud-native applications on physical and virtual infrastructure. Containers package up the services comprising an application and make them portable across different compute environments, for both dev/test and production use. They are much lighter weight than virtual machines. This means containers make highly efficient use of the underlying server infrastructure. Though the container runtime APIs are well suited to managing individual containers, they’re woefully inadequate when it comes to managing applications which requires hundreds upon thousands of containers that too across multiple hosts. And usually this is where a container orchestration tool like Kubernetes are used.

Hence where-ever and whenever there is a requirement to use containers, there and then Kubernetes can be used to help us out, which means Kubernetes just like container technology has a wide array of use-cases

CNCF survey’s bar-graph representing container use in respondent companies

So now let’s look at some individual case studies and see what can be learnt about Kubernetes from them…

IBM

IBM Logo

International Business Machines Corporation (IBM) The company that built Deep Blue is an American multinational technology and consulting company headquartered in Armonk, New York, with more than 350,000 employees serving clients in 170 countries. IBM produced and sold computer hardware, middleware and software, and provided hosting and consulting services in areas ranging from mainframe computers to nanotechnology. It is also a major research organization, as of 2020 holding the record for most U.S. patents generated by a business for 27 consecutive years.

Challenge: IBM Cloud offers the most open and secure public cloud for business, a next-generation hybrid multi-cloud platform, advanced data and AI capabilities, and deep enterprise expertise across 20 industries. Users of IBM Cloud can exploit capabilities from more than 170 different cloud native services in its catalog, including capabilities such as IBM’s Weather Company API and data services. In the later part of 2017, the IBM Cloud Container Registry team wanted to build out an image trust service.

Solution: Portieris is a Kubernetes admission controller for enforcing content trust. Users can create image security policies for each Kubernetes namespace, or at the cluster level, and enforce different levels of trust for different images -Michael Hough, a software developer with the IBM Cloud Container Registry team.

The image trust service is fully based on the Cloud Native Computing Foundation (CNCF) open source project Notary. This enables users to be able to have their IKS cluster verify that the image they’re loading containers from contains exactly what they expect it to, and Portieris is what allows an IKS cluster to apply that verification.

Result: “We had a multi-tenant Docker Registry with private image hosting. The Docker Registry uses hashes to ensure that image content is correct, and data is encrypted both in flight and at rest. But it does not provide any guarantees of who pushed an image. We used Notary to enable users to sign images in their private registry namespaces if they so choose.”-Michael Hough.

Spotify

Spotify Logo

Spotify is a Swedish audio streaming and media services provider, launched in October 2008. The platform is owned by Spotify AB, a publicly traded company on the New York Stock Exchange since 2018 through its holding company Spotify Technology S.A. based in Luxembourg. Spotify offers digital copyright restricted recorded music and podcasts, including more than 60 million songs, from record labels and media companies.

“Our goal is to empower creators and enable a really immersive listening experience for all of the consumers that we have today — and hopefully the consumers we’ll have in the future,” says Jai Chakrabarti, Director of Engineering, Infrastructure and Operations.

Spotify has been an early adopter of microservices and Docker, i.e. it has microservices running on containers over a fleet of VMs with a homegrown container orchestration system called Helios.

Challenge: However in year 2017 “Having a small team working on the features was just not as efficient as adopting something that was supported by a much bigger community,” adds Jai Chakrabarti.

Solution: “We saw the amazing community that had grown up around Kubernetes, and we wanted to be part of that, we wanted to benefit from added velocity and reduced cost, and also align with the rest of the industry on best practices and tools.” — Jai Chakrabarti. Kubernetes had a edge over Helios as being more feature-rich. The migration, which would happen in parallel with Helios running, could go smoothly because “Kubernetes fit very nicely as a complement and now as a replacement to Helios,” says Chakrabarti.

Result: The biggest service currently running on Kubernetes takes about 10 million requests per second as an aggregate service and benefits greatly from auto-scaling . “Before, teams would have to wait for an hour to create a new service and get an operational host to run it in production, but with Kubernetes, they can do that on the order of seconds and minutes.” — Site Reliability Engineer James Wen

Adidas

Adidas Logo

Adidas AG is a German multinational corporation, founded and headquartered in Herzogenaurach, Germany, that designs and manufactures shoes, clothing and accessories. It is the largest sportswear manufacturer in Europe, and the second largest in the world, after Nike.

Challenge: As a technological perspective Adidas has been happy with its software choices in the recent years but getting an access to all the tools was a big problem. , “just to get a developer VM, you had to send a request form, give the purpose, give the title of the project, who’s responsible, give the internal cost center a call so that they can do recharges. The best case is you got your machine in half an hour. Worst case is half a week or sometimes even a week.” — Daniel Eichten, Senior Director of Platform Engineering.

Solution: To over come this “we started from the developer point of view,” and started to look for ways to shorten the time it took to get a project up and running, says Senior Director of Platform Engineering Fernando Cornago. They found the solution with containerization, agile development, continuous delivery, and a cloud native platform that includes Kubernetes and Prometheus.

Result: In 6 months 100 percent of the Adidas E-commerce site was running on Kubernetes. Load time was halved. Releases went from every 4–6 weeks to 3–4 times a day. With 4,000 pods, 200 nodes, and 80,000 builds per month, Adidas is now running 40% of its most critical, impactful systems on its cloud native platform.

For engineers at adidas, says Daniel Eichten, Senior Director of Platform Engineering, “it felt like being an artist with your hands tied behind your back, and you’re supposed to paint something.”

More case studies can be found here…

Hence to summarize, Kubernetes is an open source container orchestration platform which has gotten a huge traction in recent years and has been growing ever since. It can be used where-ever there is a need for containers for example testing, production, development, etc. It has helped companies like IBM, Spotify, Adidas and many more by solving their challenges with different use-cases and hence has made big impacts through it. Hence Kubernetes is a good platform and seeing the statistics is a must learn for today’s technological world…

That’s it kind readers Thankyou for reading. See you later!!! 😊👋

--

--