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. Credit: robynmac / Getty Images 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. Related content feature 14 great preprocessors for developers who love to code Sometimes it seems like the rules of programming are designed to make coding a chore. Here are 14 ways preprocessors can help make software development fun again. By Peter Wayner Nov 18, 2024 10 mins Development Tools Software Development feature Designing the APIs that accidentally power businesses Well-designed APIs, even those often-neglected internal APIs, make developers more productive and businesses more agile. By Jean Yang Nov 18, 2024 6 mins APIs Software Development news Spin 3.0 supports polyglot development using Wasm components Fermyon’s open source framework for building server-side WebAssembly apps allows developers to compose apps from components created with different languages. By Paul Krill Nov 18, 2024 2 mins Microservices Serverless Computing Development Libraries and Frameworks news Go language evolving for future hardware, AI workloads The Go team is working to adapt Go to large multicore systems, the latest hardware instructions, and the needs of developers of large-scale AI systems. By Paul Krill Nov 15, 2024 3 mins Google Go Generative AI Programming Languages Resources Videos