The evolution of software portability converges naturally with the proliferation of easily scalable infrastructure made available by cloud computing providers. The clearest example is the variety of managed Kubernetes services, which often share a footprint with clusters on infrastructure as a service (IaaS) virtual machines or even on-premises hardware in large organizations. Most architectural roadmaps call for some form of cloud-native greenfield development, along with the cloud enablement of legacy software, as a digital migration strategy.
Playing Catch Up
Virtually all businesses that have existing investments in custom software wind up in some form of perpetual catch-up game with the state of the art. It’s the nature of the IT business, and it is more important to close that gap effectively than quickly. After all, we should expect to reap benefits from this continual technological advancement. In the absence of tangible rewards and improved delivery of specified outcomes, chasing the vanguard has the tendency to lead us in arbitrary directions.
One hiccup many organizations have encountered in deploying software to container clusters orchestrated by Kubernetes is unexpected increases in cost, especially cloud costs. In many circumstances, it was anticipated that such a migration might increase costs and complexity in the near term, but it was considered part of a beneficial strategic trade off, and/or it was expected that these things could otherwise be brought quickly under control.
Put a pin on the architectural roadmap to mark this spot, halfway down a long desert highway and almost out of gas. After six months of work, you’ve migrated an important API to a bank of microservices on a managed Kubernetes service. There are no new features, it costs more to run, but it is sailing way up there in the cloud. Who gets to tell the CIO?
Quick Fixes and Long-Term Solutions are Here
If you find yourself in this situation, you’re not alone and there is good news. There are likely many opportunities to pare down costs without impacting performance. They range from low hanging fruits that in many cases can bring costs back to ground level within weeks to new opportunities for performance and availability increases made possible through deep insight into usage patterns.
There are a variety of great Kubernetes resource management solutions on the market that provide a turnkey solution. They can be used both as an immediate remedy if the problem is acute and as an engine for continuous improvement.
The low hanging fruit is typically a matter of fine-tuning the way workloads are configured and provisioned. In the extreme (but still prevalent) example, developers put off this “tuning” as a second phase. Resource configuration may have been an afterthought and neglected entirely, but in most cases, it really is prudent to “implement first, optimize second.”
A common response to these unexpected cost increases in the cloud has been for organizations to enact policies or bureaucratic measures to revisit how these resources have been provisioned and get a handle on the situation. While such policies may be a valuable addition to the continuous delivery process, they will not take you very far toward solving the problem. The ideal balance for meeting performance objectives without over-provisioning resources is not obvious and frequently changes.
Automation Supercharges the Utility of Identified Trends and Patterns in Data
Everyone is learning as they go and beyond high level prescriptions, it is difficult and impractical to achieve a reliable fine tune without automation. Kubernetes resource management solutions offer automatic analysis and management of resources from the starting gate and exceed the capabilities of the underlying platforms in fundamental ways.
One example is through the application of AI/ML. While the capabilities of AI/ML methodologies are burgeoning by the day, for two decades they have been a reliable way of analyzing big sets of data and spotting patterns or trends that would be difficult to intuit or identify through alternative methods. By analyzing the usage patterns, resource consumption, important metrics like CPU, memory, and even custom application events, they automatically balance Kubernetes resources in a tight loop. These tools ensure that you are paying only for what you need.
Running Smarter and More Efficiently
Paying only for what you need is a key advantage of cloud computing. While it may have been possible 20 years ago to manage resources in a tight loop of analysis, there would have been little benefit because capacity was necessarily provisioned to the highest anticipated need. With cloud computing, you can use as little or as much as you need when you need it. However, with some types of cloud-native development, you still need to know how much you need, and as it turns out, that’s not a readily available factor in the equation.
Realtime insight into runtime resource requirements will, over time, shift left into the development process and architectural considerations. Architecturally, it is clear why breaking down monolithic designs into portable, ephemeral, and autonomous services permits certain advantages. But it is not always clear how that is best achieved or what unknown overhead tradeoffs lurk in the darkness. Just as a debugger provides inside details to inform a running process and APM tools provide a wealth of visibility into intra operating systems, Kubernetes resource management solutions provide intimate insight into how these systems scale under real world usage. Over time, such knowledge will make its way back into the initial design of the software and help to unlock the inherent benefits of cloud computing.
Next Steps
To learn more, take a look at GigaOm’s Kubernetes resource management Key Criteria and Radar reports. These reports provide a comprehensive view of the market, outline the criteria you’ll want to consider in a purchase decision, and evaluate how a number of vendors perform against those decision criteria.
- Gigaom Key Criteria for Evaluating Kubernetes Resource Management Solutions
- GigaOm Radar for Kubernetes Resource Management
If you’re not yet a GigaOm subscriber, you can access the research using a free trial.