Kubernetes — the backbone of the internet

James Barone
b8125-fall2023
Published in
4 min readDec 6, 2023

Kubernetes has rapidly become one of the most popular open-source projects for deploying and managing containerized applications. First developed by Google in 2014, Kubernetes is a portable and extensible container orchestration system that automates tasks like deployment, scaling, and management of containerized applications across clusters of hosts. It was built by Google based on their internal infrastructure and years of experience running workloads in containers. Kubernetes empowers developers to focus on writing application code rather than worrying about infrastructure-level details by handling things like load balancing, rolling updates, and self-healing capabilities automatically behind the scenes. Within a few short years, Kubernetes has been widely adopted across the industry and become many organizations’ default platform for container orchestration.

K8s

Containers?

Containers are a method of packaging up application code along with all its dependencies such as libraries, configurations, and files needed to run it into a single standardized unit. This containerized package runs uniformly and reliably from one environment to another. Containers provide a lightweight and portable alternative to using full virtual machines which require an entire guest operating system. They allow developers to bundle everything needed to execute code into a single container, rather than worrying about compatibility with different platforms. This portability enabled by containers vastly simplifies software development and deployment. While container technology has existed for years, Docker brought it into the mainstream in 2013 by creating a standard container format as well as tools that made the process of containerizing apps accessible for developers. Docker provided simplicity and an ecosystem that drove widespread container adoption across the industry.

Ok…but why do I need Kubernetes?

Docker pioneered simple containerization for developers’ applications, whereas Kubernetes emerged as the leading orchestrator for deploying and managing containers at scale. It handles critical infrastructure tasks like distributing container copies across clusters, scaling up additional ones to meet demand, load balancing between them, doing periodic rolling updates and more.

For example, imagine a developer who created a fantastic containerized microservice that uses Docker and works great on their local machine. Just because a service works locally doesn’t mean it’ll work on a global scale — what happens when it needs to be deployed to production to handle real user traffic and scale up from one container to thousands based on spikes in demand? Setting up and managing clusters of container hosts, making sure traffic gets distributed evenly, doing zero-downtime rolling updates, and auto-scaling without going over budget or crashing everything can be enormously complex.

This is exactly what Kubernetes excels at through its container orchestration abilities. It abstracts away all that infrastructure management, so developers can instead focus on building and improving application code rather than becoming a DevOps expert just to run a reliable production environment. Kubernetes makes deploying and running containerized apps at scale seamless.

Kubernetes, explained

Abstraction, abstraction, abstraction

While open source Kubernetes provides tremendous container orchestration capabilities out of the box, platforms like Red Hat OpenShift have emerged to address additional needs for enterprise software teams. Running business-critical applications in production at scale requires more rigorous security, access controls, monitoring, high availability, and support expectations compared to hobbyist developer projects.

OpenShift and other enterprise Kubernetes offerings build on top of open source Kubernetes with these kinds of enterprise requirements in mind. For example, OpenShift adds advanced security features like role-based access control, integration with LDAP services, and image signing to lock down production infrastructure. It also includes robust monitoring, logging, and alerting capabilities crucial for visibility at scale. OpenShift streamlines high availability, disaster recovery, and backup so developers don’t have to reinvent the wheel. And perhaps most importantly for heavily regulated industries, OpenShift provides commercial 24/7 support and training packages directly from Red Hat rather than relying on public forums and documentation.

The development teams behind OpenShift and similar platforms have decade+ of experience running Kubernetes in production so developers can leverage that expertise rather than learning the hard way. While open source Kubernetes is incredibly capable, every industry has unique compliance, security and support needs that enterprise offerings help address.

Docker -> Kubernetes -> Red Hat Openshift

Conclusion

In just a few years, Kubernetes has fundamentally transformed how organizations develop and deploy containerized applications via its robust orchestration engine. It has enabled developers to focus specifically on the application or service they are building, rather than being bogged down debugging issues with core infrastructure. In fact, entire industries have been birthed to help developers manage these complex tasks. Enterprise-hardened offerings like Red Hat OpenShift that expand upon pure Kubernetes are critical for increased adoption across mission-critical applications. As more companies migrate their offerings to the cloud, the more widespread Kubernetes will become.

--

--