With almost every industry on planet Earth thrilling to implement Kubernetes into their technical departments, a huge question for a lot of us still remains: what is all this thrill really about? In this post, I try to explain the fundamentals of Kubernetes and its benefits to various industries, alongside with a few insights on how you may get started with building a cluster for your business.
What does it mean to “modernize” software applications?
Traditionally, like sometime B.C., monolithic applications were the only way to go. Then someone clever enough thought to break things down a bit, separating the development of multiple functionalities (services) from a single application. This allows minimized fast and independent builds for each service as a standalone project, hence the term “microservices.” Read my previous post on how services are deployed. Although monolithic dinosaurs still exist in many enterprises, most of us young developers may prefer working under the microservice philosophy, and the best way to ship microservices, in more and more cases, would be delivering them as Containers.
【Figure 1】Monolithic Application/Virtual Machines/Containers
One “big thing” about Containers is that they are extremely small, taking microservices to the next literal level, which actually may bring us a ton of potential benefits. Here’s a list of a few practices that may never be able to reach its current state without Containers:
[*] Though some may argue that CD stands for Continuous Deployment, I think that Continuous Deployment is NOT NECESSARILY A MUST for most industries nowadays. Instead, Continuous Delivery IS.
Docker – the world’s leading container platform – uses the term “modernization” to describe containerizing traditional applications (which is true, in my opinion). But where do we go beyond modernized apps? Compared to traditional infrastructures, we might have several-hundred-more app instances running, constantly updating with relatively short lifespans. As powerful as it sounds, one can easily imagine how much more difficult it is to orchestrate and maintain such environment. This is where Kubernetes comes in handy.
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. With a variety of powerful tools and utilities, Kubernetes has become the top trending container orchestration solution, which we will dive deeper on the details later in Part 2.