This powerful tool is right for many applications and wrong for others. Hereโs how to tell when a square Kubernetes peg wonโt fit into a round application hole.
Kubernetes is just the latest example of a powerful technology that can provide a solid solution in many instances. Although it may seem like all the cool kids are choosing Kubernetes-related technology, itโs not right for every application. When a technology has such a huge following that its use becomes a forgone conclusion, thatโs when mistakes are made and projects get derailed.ย
Most enterprises that are moving to cloud-based platforms will consider using containers and Kubernetes. Many enterprises using cloud already are also using Kubernetes. Kubernetes does provide many resources that make it easier to manage and scale distributed systems, including microservices. Itโs also an orchestration system, meaning we can bind together processes and services to form larger, more holistic solutions.
As presented on theย official Kubernetes documentation website, โKubernetes provides you with a framework to run resilient distributed systems. It takes care of scaling and failover for your application, provides deployment patterns, and more.โ
Automation and orchestration are frequent reasons to leverage Kubernetes. Keep in mind that automation and orchestration often get confused, and for good reason. Automation can help make a business process more efficient by reducing or removing human involvement with software or hardware that performs specific tasks. For example, automation can launch a process to reorder raw materials automatically when other processes notice that supplies are below a specific level. In short, a single task is automated.
Orchestration, in contrast, allows you to automate a workflow. Orchestration can keep track of sequence and activities, and can even invoke many single-task automations that are part of the workflow. Orchestration is a powerful Kubernetes tool that also allows you to invoke services such as database access across disparate systems.
Whatโs happening now is that many developers and architects choose Kubernetes to automate processes using the orchestration engine. Thatโs like hitting a thumbtack with a sledgehammer. Youโll end up spending way too many dollars on development and cloud resources to solve a simple, specific problem.
Another fact that often gets overlooked is that Kubernetes is a complex system itself; it requires special expertise and at times can increase risk. Youโll have to understand containers, networks, security, resiliency, portability, and a ton more to be successful with this platform.ย
Keep in mind that Kubernetes is not a traditional virtualized environment. Many who donโt have these skill sets will struggle to build, deploy, and operate Kubernetes-based systems, and the project often fails. Postmortems show that the chosen platform and tools were way too complex. The applications could have been better built with fewer and less expensive tools that existing staff already understood.
Finally, thereโs cost. Iโve stated many times here that Kubernetes will always be an expensive way to build, deploy, and operate applications. Lately, many others have agreed with me, including Gartner.ย
Put the cost of complexity aside for now. One popular reason to build applications in Kubernetes is for portability. Itโs a pretty basic idea. Portability is nice to have but costs more, and most of the time it is never needed. As Gartner states: โKubernetes or not, application portability always comes at a price that you must be willing to payโthe โportability tax.โย
Those of you who think this is a shot across the bow of Kubernetes, think again. This is actually an attempt to encourage you to leverage Kubernetes for the right reasons while understanding its limitations. In turn, your knowledge will assure the long-term success of Kubernetes.


