From the get-go, the cloud promised to help companies scale up their architectures in seconds, run their applications faster, never turn away a transaction, and save money through economies of scale. How could any CIO or application manager resist the call to the cloud when companies started sharing the huge successes they were having with their migrations and overall digital transformations?
Now, more than a decade later, business leaders recognize the advantages the cloud offers but are struggling with bloated cloud costs. Andreesen Horowitz coined the phrase the Cloud Paradox in a 2021 article, which posits that the pressure the cloud puts on company margins can start to outweigh the benefits over time. Companies have taken notice, and they are focusing on cloud cost optimization.
Companies are addressing cloud cost optimization
The Azul State of Java Survey and Report 2023, an independently run study of more than 2,000 Java users, found that 90% of companies with applications built in Java, the most prominent programming language used to build enterprise applications, are deploying in a public, private, or hybrid cloud environment. Almost all of these organizations (95%) took steps to reduce cloud costs in the prior year (2022-2023).
While spending on data centers has remained flat, cloud spending has soared since 2015. Revenue growth is equally startling, as Gartner has projected cloud revenues to outpace traditional revenue growth by more than $100 billion.
Naturally, organizations want to provide a seamless experience to every customer, because in the end customer satisfaction dictates the state of operational success. But achieving this pursuit often causes over-provisioning of cloud instances and paying for compute instances they rarely use.
“Organizations with little or no cloud cost optimization plans rush into cloud technology investments,” according to Gartner. “They end up overspending on cloud services by up to 70 percent without deriving the expected value from it.” (Realize Cost Savings After Migrating to the Cloud, Gartner Finance Research Team, April 28, 2021)
Resolving this dilemma is challenging. Every company is different based on its industry, its available resources, and its needs. The State of Java Survey and Report revealed that organizations are already employing a number of tactics to address skyrocketing computing costs in the cloud, including right-sizing resources (48%), using a High-Performance Java Platform that uses cloud resources more efficiently (46%), and re-architecting applications (41%).
Here are four steps to getting the most out of cloud computing resources in an economical manner.
1. Assess Your Needs
In our State of Java Survey and Report, the primary reasons participants selected to run their applications in the cloud include:
- Scalability (52%)
- Flexibility (48%)
- Productivity (47%)
- Agility (46%)
- Elasticity (40%)
- Reliability (29%)
For less business-critical applications, where scalability, flexibility, and elasticity may not be as essential to business success, application owners could potentially run some of their systems on-premises where they can more easily manage costs. Which resources should move to the cloud requires business and IT leaders to understand how they are spending their money and what they’re getting in return on a fully-loaded basis.
2. Explore Established Methods for Cost Savings First
For many years organizations have attempted to reduce their cloud bills without changing their applications or infrastructure. Before refactoring applications or re-architecting them to be cloud-native, organizations should first pursue some more basic avenues.
When asked in the State of Java Survey which actions they have taken to reduce public cloud costs in the last year, respondents answered:
- Right-size resources (48%)
- Use a Java platform that uses cloud resources more efficiently (46%)
- Re-architect code and services (41%)
- Repatriate workloads from the public cloud to on-premises environments (33%)
- Negotiate lower prices with cloud service providers (32%)
- Migrate to less expensive public clouds (30%)
Other steps often considered and/or implemented include optimizing spot and reserved compute instances and storage types. By and large, these steps have not been enough for many organizations, leading cloud stakeholders to pursue additional avenues.
3. Limit Overprovisioning of Cloud Compute Resources
Overprovisioning of cloud compute resources because of business requirements is almost universal as organizations need to meet SLAs and assure customer satisfaction. However, business leaders must ask themselves whether meeting these requirements is being done in a cost-efficient manner. Overprovisioning because of unpredictable workloads represents the biggest potential for savings. In order to rein in overprovisioning of cloud compute resources, CPU utilization levels for each compute instance need to be driven higher but in a manner that is predictable and doesn’t sacrifice SLAs.
Companies should start by fully understanding compute utilization levels for existing workloads. What they often find is that utilization levels are significantly lower than expected. With this understanding, they can set utilization thresholds higher to do more with the same compute capacity, or alternatively handle the same workload with less compute instances needed. Some overprovisioning is expected, but more than 40% of participants in the State of Java survey reported using less than 60% of cloud resources they are paying for. That’s a lot of wasted spend!
4. “Do More with Less” — Use Fewer Cloud Compute Resources
Companies are always looking at various ways of improving application performance, and often times do so by using faster, more efficient CPUs for their cloud compute instances to not only improve application performance but also reduce the amount of computing resources needed to run a given workload.
The math is simple: Fewer cloud computing resources = lower cloud costs.
For example, Arm platforms, like the Graviton3 offered on AWS, are growing in popularity because they are priced attractively, are energy-efficient, and have the flexibility to perform well in the cloud. According to Gartner®, “by 2025, Arm-based server shipments will account for around 20% of worldwide (except China) infrastructure as a service (IaaS) capabilities and 55% of platform as a service (PaaS) capabilities from hyperscale service providers.” (Gartner, Forecast Analysis: Arm-Based Servers, Worldwide, Kiyomi Yamada, Adrian O’Connell, Alan Priestly and Uko Tian, November 2021)
As the preponderance of enterprise applications deployed in the cloud are based on Java, using a more performant Java runtime can also improve application performance and reduce compute instances required.
The math again is simple: Faser Java = fewer cloud computing resources = lower cloud costs.
A more performant Java runtime can improve carrying capacity at higher utilization levels without sacrificing SLAs. This is accomplished by lowering the burden on an application’s underlying operating system and hardware to increase utilization of that hardware to do more work with the same resources or shut down/use fewer instances. In the latter case your cloud bill can see immediate savings. A more performant Java runtime also brings additional benefits including eliminating latency outliers, improving application warmup times, and avoiding ongoing tuning efforts.
Conclusion
Reducing cloud waste and optimizing cloud costs are critical to gaining competitive advantage in the cloud. It’s a complex challenge, and smart business leaders leave no opportunity unexplored. Depending on circumstances and needs, there are many options. For companies that use Java, a higher-performance runtime can use cloud resources more efficiently, improving application performance and cutting costs.
Read our recent blog which benchmarks Azul Zing Builds of OpenJDK, a High-Performance Java Platform, against vanilla OpenJDK 8, 11, 17 and 21. How does your code compare?
A JVM that runs faster code uses fewer cloud resources so you can better leverage committed, discounted cloud spend – and lower your cloud bill.
Cloud Cost Optimization
Fast Java = lower cloud costs
This article originally ran on cio.com.