With the onset of digital transformation and a rush to the cloud, it has become a known fact that one of the biggest challenges enterprises are experiencing today is in managing their huge cloud bills. Different cloud providers have come up with various cost model offerings that provide great discounts. One such offering is the resource-based Committed Use Discounts (CUDs) by Google Cloud Platform. In this article, we will explore how you can manage the workloads to draw the most discounts from your CUDs purchase.
What is a resource-based Committed Use Discount? Compute engine resources such as vCPUs, memory can be bought at a discounted price in exchange for a commitment to paying for those resources for a 1-year or 3-year period. You can expect a discount as high as 57% and in some cases even up to 70%. This sounds lucrative, right?
CUDs provide great discounts only if utilized properly. Workloads are dynamic, the usage changes, and they need to resize due to performance, cost, or compliance. The workloads that led to buying the CUDs can very well change over the commitment period. What if the workloads change leaving the CUDs unused? You got yourself in a situation where you are paying not only for the workloads but also for the unused commitments. You expected that CUDs would lower your cloud cost, but you just ended up paying more. I keep hearing that use CUDs for stable workloads. Can you really ensure the workloads that prompted you to buy the CUDs will never change throughout the 1-year or 3-year commitment period? How can you ensure that these CUDs are getting fully utilized today, tomorrow, next month, and until the entire commitment period?
Optimization is hard.
Managing workloads to realize maximum savings from CUDs is incredibly hard when done manually. Consider asking yourself these what-if scenarios:
- What if the VM is underutilized and can be resized to a lower machine type.
- What if the VM can be scaled up to a different commitment type to match the available CUD.
Each of these scenarios presents an opportunity to increase the CUD utilization and/or CUD coverage, making a direct impact on the savings. This also brings across a point that CUD inventory needs to be factored in while making scaling decisions on workloads. Having to consider these scenarios and more for every VM in the given scope continuously in real-time is not sustainable when done manually. We need a continuous understanding of the usage over a given period (let's say at least 7 days). We need to consider the matrix of metrics - vCPUs, memory, network and storage IOPS, throughput, and more across compute, storage, and network for every workload. This is simply beyond the human scale and depicts the need for automation.
More to the problem, handling all the CUDs across the environment is not easy. There are too many commitment types, managing different periods, taking care of different scopes (account/region, etc.), and all this while keeping in mind some of the restrictions that come directly from the cloud provider in using the CUDS.
Lastly, if you are leveraging multi-cloud, then each cloud provider comes with its own cost offerings. Having to manage not just the CUDs, but also the RIs and Savings Plans etc., is difficult. We need software to take care of this.
How Turbonomic helps solve these problems...
By providing an automated scaling decision platform that continuously assures application performance and eliminates overspend while maximizing the CUD usage. This would ensure that the CUDs are not left underutilized even when the demand/workload changes.
8.5.4 onwards, Turbonomic has extended its capabilities to include resource-based CUD-aware compute scaling decisions. The Turbonomic analytics engine analyzes all the workload usage continuously in real-time and keeping performance first approach, recommends and takes scaling actions such that it aims to achieve maximum CUD utilization and coverage for that region or billing account. Let’s elaborate more on this by considering the following two scenarios and how Turbonomic approaches them.
Scenario 1: A VM using a CUD needs more resources to assure performance.
Turbonomic’s approach: Turbonomic will scale up that VM to give the resources it needs. Once the CUD is available Turbonomic will analyze all other VMs in the environment and it will scale another applicable VM to utilize the CUD, thus increasing the discount usage.
Scenario 2: A VM is underutilized and scaling down would leave the CUD unused.
Turbonomic’s approach: If there are any other VMs close in size Turbonomic would scale down the underutilized VM and scale the other VM into the CUD. If there are no other VMs close in size Turbonomic would be smart enough to not scale down the VM. If it’s cheaper to leave the VM underutilized on a CUD the system will do that to make sure you never spend more than you need to.
Turbonomic also focuses on providing strong visibility into your cloud environment. The idea is to provide as much transparency as possible to help you gain insights and build trust in our scaling actions. Once you gain the trust and enable automation, you can achieve continuous optimization of your cloud environment.
Attached is a screenshot that shows a scaling action on a VM and the impact it would make on the CUD coverage and savings.
Below is the discount coverage and utilization views for europe-west6 region. It shows the current utilization and coverage as well as the projected values that you can achieve by accepting the recommended scaling actions.
You can also view the commitments purchased across different projects/Billing Accounts/Regions in a single pane. The same inventory widget also provides information about the other cost model offerings like Savings Plans and Reserved Instances by AWS and Azure.
Together, this is some powerful information that will help you decide where to deploy your next workloads.
Check out Try Turbonomic
where you can gain access to a live sandbox environment and learn more about the benefits of our platform’s continuous optimization capabilities.