If you're a parent, you might be familiar with the adage, "Little kids, little problems; big kids, big problems." The idea is that as your children grow, the challenges you have to navigate expand in both scope and complexity.
You could say something similar about cloud computing and cost management. When your cloud architectures, workloads, and spending patterns are basic, optimizing costs is pretty simple. But as you evolve into more complicated cloud strategies — as businesses often do in order to gain more value from the cloud — managing cloud spending tends to become exponentially more challenging.
I like to refer to this phenomenon as the cloud spending maturity curve. The more mature your cloud strategy becomes, the more complex cloud cost management grows.
Conquering this maturity curve requires having a plan in place to evolve your cost management strategy as you evolve your cloud. Here's how to tackle that challenge and ensure that your business can double- (or triple-, or quadruple-) down on the value of the cloud without wasting money.
The typical business's journey in the cloud goes something like this:
First, the company lifts-and-shifts on-prem workloads into basic cloud IaaS services. It migrates on-prem servers to cloud-based VMs and uses services like AWS EBS and S3 to store data, for example. This is what you might call the first stage in the cloud journey.
Then, the business begins launching new types of workloads, or refactoring old ones, in ways that allow it to take advantage of more complex types of cloud services. It might migrate some apps to serverless functions, for example, or begin deploying microservices-based apps using cloud-based container services (like AWS EKS or Azure AKS) rather than relying on VM-based monoliths. Measures like these represent the second stage of the cloud journey.
From there, the business finds ways to take advantage of even more complex cloud services. It might begin using multiple clouds, or leverage SaaS-based solutions (like Snowflake) to complement workloads it runs on major public cloud services (like AWS Aurora). At this point, the company has a very mature — but also very complex — cloud architecture.
There's nothing wrong with increasing the complexity of cloud strategies in this way. On the contrary, leveraging additional types of cloud services and architectures is key to getting more value from the cloud. If you settle for basic IaaS services, you're probably not using cloud platforms as effectively as you would if you also take advantage of more complex types of cloud strategies, like cloud-native services and multi-cloud architectures.
Complexity: The Cost for Getting More from the Cloud
But the increasing complexity of cloud strategies does present one key challenge: The more complicated your cloud architectures and environments are, the harder it is to ensure that you're getting the most bang for your buck when it comes to cloud spending.
Part of the reason is that more complex cloud strategies require deeper expertise to identify the most cost-effective service types and configurations. If you're running all of your apps on VMs, for instance, cost-optimizing your workloads boils down to choosing the right type of instance and making sure you take advantage of discounted VM pricing where feasible.
But if you're running apps on a managed Kubernetes service, you face a much wider array of options when it comes to hosting models (for example, should you use Fargate mode or EC2 if you run workloads on EKS?), networking configurations, deployment patterns, and so on. Making the best decisions hinges on having both deep technical expertise and a deep understanding of business requirements.
At the same time, more complex clouds create more complex sets of data for cost management teams to sort through. Identifying cloud spending mistakes is relatively easy if the only cost metrics you have to deal with are the total uptime of a VM and the network egress it uses. But with a more complex set of cloud technologies, you have more metrics to track. For example, if you deploy workloads using serverless functions, you'll need to examine data like function runtime duration, request rate, ephemeral storage usage, and more to figure out where you might be overspending.
In short, while there are good reasons to adopt more complex cloud technologies, doing so significantly increases the risk that you will end up paying more for cloud services than necessary to achieve your goals.
The Irony of Growing Cloud Costs
There's a certain amount of irony in this fact, because leveraging more advanced cloud technologies should save money. Part of the rationale for, say, migrating a VM-based monolithic app into a microservices-based app hosted using containers and Kubernetes is the microservices app can scale more efficiently, which should result in lower overall costs.
The problem, though, is that you only save money if you configure your workloads in a cost-optimized way. Many teams don't, due to the complexity of identifying and implementing the best configurations.
How to Rein In Spending on Mature Clouds
How do you solve this conundrum and ensure that a more mature cloud strategy translates to a more cost-effective cloud strategy?
One potential answer is to hire engineers who are skilled in both complex cloud technologies and cloud cost optimization. But that process takes time, and it's often difficult to find engineers who are equally adept at managing modern cloud technology and understanding the financial exigencies of an enterprise.
That's why it may make more sense to adopt the alternative approach of working with a third-party cloud cost management vendor. Doing so eliminates the need to build an in-house cloud cost management team, making the path to cost savings faster and simpler.
If you're only using relatively basic cloud services and architectures, you're probably able to stay on top of your cloud spending easily enough. But when you shift to more sophisticated cloud solutions — as you should if you want to derive more value from the cloud — you need deeper expertise to ensure that every dollar you spend in the cloud yields the greatest possible returns. If you don't, you risk ending up with a cloud strategy that is mature from a technological perspective but that shoots your business in the foot from the viewpoint of cost management.
About the author:
Willy Sennott is the EVP of FinOps at Vega Cloud. He has 25+ years' experience in the financial, marketing, and business analytics data, helping clients and companies drive revenue growth, improve cost efficiencies, and effectively allocate capital. At Vega Cloud, Sennott leads the FinOps practice and helps drive overall company strategy and product roadmap.