How Kubernetes Is Shaping the World
This article explains how Kubernetes is shaping the software development and delivery process across industries by observing companies who have successfully implemented it, the problem they encountered, and how Kubernetes was the solution.
Before the recent gang jump on the cloud, IT departments in companies relied on on-premise servers, computing, and storage capacities to build and serve their business solutions to their customers—which worked well for them. Their user bases at this time are relatively small because advanced tech gadgets and smartphones are just beginning to find their way to the market. Also, to manage costs and maximize the capacity of their on-premise IT resources, companies adopted virtualization through virtual machines, which enabled them to share the resource of single hardware between multiple operating systems simultaneously.
Fast forward to a few years later, this is not the case anymore. Smartphones, tablets, and other sophisticated gadgets are everywhere. For companies providing software solutions, both enterprise and commercial, this means a need to serve a more extensive user base efficiently. Development IT companies find it hard to keep up with using on-premise data centers— which may also require a change in software architecture depending on the type of application.
After many resorted to the cloud or hybrid infrastructure to access the flexibility needed to serve an ever-growing user base, companies adopted containers to address the need for a change in software architecture and at the same time combat some poor portability, inefficient resources usage, and other flaws of virtual machines.
A container is a mini virtual machine that is void of a stand-alone OS, driver, and other components of a regular virtual machine. Instead, container packages all required dependencies to distribute and run the same code on different computing environments while sharing the same OS with other containers on the same hardware.
For context, cloud computing has been around as far back as the 1960s. However, it only became a thing when organizations began to realize its potential in recent years.
However, inherited from virtual machines is a problem with the ability to monitor and track the usage of multiple containers. Especially with the mass adoption of public cloud infrastructure and a distributed software system that runs containers in their hundreds, it is important to keep track of all containers in your application. You need to check whether or not all containers are in use and shut down the idle ones to avoid a shocking bill from your cloud provider. This is where an orchestration platform, Kubernetes, comes in.
When it was open sourced in 2014, Google revealed that Kubernetes is the backbone of its ability to manage billions of containers and has been in use within the company for over ten years—a prime selling point for the technology.
"Kubernetes (sometimes shortened to K8s with the 8 standing for the number of letters between the "K" and the "s") is an open source system to deploy, scale, and manage containerized applications anywhere" as defined by Google.
Kubernetes enables you to group your containerized applications into logical units, track them and scale them automatically. That is, it automatically shuts down containers when they are not in use and spins up new containers when the application needs them to accommodate on-demand requirements.
Kubernetes allows you to orchestrate containers both in the testing and production environment and gives you the flexibility to use the software on-premises, hybrid, or cloud infrastructure.
Exceeding what is highlighted in theory, Kubernetes substantiates that it is capable of being more beneficial in practice.
An example is its adoption in the car industry...
Over the years, the automotive industry is rapidly transitioning from hardware-driven to software-driven. Even though the industry exhibits general conservation of practice regarding technology, the software has found its feet in the industry. It is driving innovations with a piece of code in every modern vehicle.
Software is making the new trend towards autonomous and connected vehicles possible with advanced driver assistance systems (ADAS), including navigation systems, in-vehicle entertainment, and infotainment.
However, a lot of strenuous lifting is going on in the background to tackle rising challenges and deliver vehicle software to users in the best, sleekest, and most secure way possible.
DENSO Corporation, one of the biggest global automotive equipment manufacturers, expanded into software to keep up with the industry trends, following the company’s vision and move towards building connected cars. The company embraced cloud infrastructure and leverages edge computing to reduce data transfers between vehicles and the cloud, increasing efficiency and lowering costs.
We are developing a vehicle edge/cloud-integrated platform based on a microservice and service mesh architecture. We extend [the] cloud into multiple vehicle edges and manage it as a unified platform,
the digital innovations product manager at DENSO, Seiichi Koizumi, says.
When discussing the challenges faced in creating an integrated vehicle cloud platform, Koizumi says problems they face include;
the number of computing resources, the occasional lack of mobile signal, and an enormous number of distributed vehicles.
A basal challenge modern vehicle equipment manufacturers face is the insufficiency of computing resources to run software in vehicles ECUs. DENSO addressed this by producing large ECUs with enough computing resources to run software effectively. Electronic control units (ECU) are components of a car that acts as a sensor that collects data from different parts of a vehicle for diagnosis and as the platform where software and all the edge computing are executed.
Considering that the company manages many distributed vehicles, the digital innovations team at DENSO found it difficult to manage their production containers.
Because of the difficulty of managing such a vast fleet of vehicle containers, edges, and the rapid evolution of mobility services, the team realized that they needed a cloud native solution—a solution that is built with the cloud in mind. After considering other technologies and orchestration platforms, DENSO resorted to Kubernetes because it fits their multi-cloud and cloud-agnostic requirements.
The team combined managed Kubernetes services from Google Cloud, AWS, and Microsoft Azure to simplify their maintenance operations further.
By utilizing Kubernetes managed services, such as GKE/EKS/AKS, we can unify the environment and simplify our maintenance operation,
In addition to helping them manage their broad environment from a unified and automated platform, Kubernetes helps DENSO reduce their development timeline, allowing them to deliver vehicle edge software within a short period.
We got Kubernetes experts involved on our team, and it dramatically accelerated development speed,
BlaBlaCar, a ridesharing company, also shifted to private cloud and adopted containerization to maintain continuity on their privately owned bare metal infrastructure and keep up with its 40 million user base.
Before using containers, it would sometimes take a day, sometimes two, just to create a new service,
says Simon Lallemand, infrastructure manager at BlaBlacar.
As an early adopter of containers, the IT team at BlaBlaCar employed CoreOS Container Linux to manage and cluster container deployment. Using this solution, the team had to build custom tools to make their infrastructure fleet more manageable for their system engineers.
Even though their tools were satisfying their orchestration needs at the time, it wasn't inclusive for their developers.
We also realized that we don't want to be the single point of contact for developers when they want to launch new services,
After consulting with experts at CoreOS and Google, the IT team was convinced that Kubernetes was the solution to their challenges.
The team then made a switch to Kubernetes and used Prometheus as the monitoring tool.
Talking about the impact of Kubernetes on their infrastructure and development environment, Lallemand says,
If we lose a server because there's a hardware problem on it, we move the containers onto another server. It's much more efficient. We do that by just changing a line in the configuration file. With Kubernetes, it should be automatic, so we would have nothing to do.
Prowise also demonstrates the implementation of Kubernetes in the Edtech industry...
Prowise is a Netherlands-based company that produces globally used educational devices and software—with infrastructure in multiple availability zones. Prowise has different development teams dispersed across various zones, with each team developing and deploying their independent solutions on the Prowise infrastructure network.
We've grown a lot in the past couple of years, and we started to encounter problems with versioning and flexible scaling,
Senior DevOps Engineer at Prowise, Victor Van Den Bosch, says.
With their increasing user base, the teams encountered problems with scaling on-demand and deploying multiple products with different versions, dependencies, and development teams.
We want to focus on our core products, and that's the software that runs on it and not necessarily the infrastructure itself,
To address these problems, the team first experimented by deploying part of their infrastructure on Kubernetes. Microsoft Azure's managed Kubernetes service, AKS, was their chosen option.
Running its web-based applications on Kubernetes, the team experienced a dramatic decrease in deployment time.
The old way of deploying took half an hour of preparations and half an hour deploying it. With Kubernetes, it's a couple of seconds,
says Senior Developer, Bart Haalstra.
Kubernetes has helped the company scale and manage its infrastructure, allowing each development team to release educational applications more frequently without attracting downtimes and scalability issues.
Spotify, Adidas, Booking.com, Huawei, and other industry leaders
The popular audio streaming platform, Spotify, has grossed over 200 million active users, recently dropped its homegrown orchestration platform, and adopted Kubernetes to help scale its infrastructure to accommodate its growing user base and give power to creators using the platform.
In the telecommunication industry, Huawei leverages Kubernetes to harness the power and scale of the cloud and, at the same time, demonstrate the usefulness of the technology to its customers.
Kubernetes has also proved its usefulness in the financial, hospitality, and clothing industry, with NAIC, booking.com, and Adidas leveraging the platform to deliver world-class services in their respective industry.
Kubernetes has revolutionized the software development field by providing an easy, flexible, automated, and scalable container orchestration platform to deliver customized solutions for each company.
But security is a fly in the ointment...
As much as Kubernetes is handy and gradually becoming a default technology in modern-day infrastructure environments, it has a worrying snag.
Aside from the basic IAM policy, Kubernetes does not offer any advanced security measures for containers in your Kubernetes cluster. This is a big problem that has led to the compromisation of Tesla's Kubernetes cluster for cryptojacking activities and tons of other Kubernetes breaches resulting from Kubernetes' relatively weak security concerns.
However, to be fair with Kubernetes, this is in no way slowing down the technology adoption. It is opening up chances for developers to build excellent tools and integrations on top of Kubernetes.
IT teams in various organizations are counting on paid, open source, or custom-built tools to strengthen the security of their Kubernetes clusters not to miss the flexibility offered by the technology.
Gradually, Kubernetes is shaping the traditional deployment and management of containers by introducing automation and scalability. With the ability to build custom solutions on top of it and the big community around the technology, Kubernetes is gaining mass adoption across industries—helping companies deliver software solutions with less focus on infrastructure.