In the previous post, we defined the “Cost Drivers” to calculate the “Expenses” for Private Cloud (vSphere). But you may still be wondering how vRealize Business eventually calculate & show the unit cost of a virtual machine based on the 8 “Cost Drivers” we have already defined for our clusters.
You may also ask if it will be a “Fixed Price” cost based on the hardware configuration/allocation of a virtual machine or a usage based cost.
So, let’s understand it further in this part of the series.
Virtual Machine Cost
“vRealize Business calculate the utilization or consumption based cost for each virtual machine based on CPU & Memory utilization and other fixed cost on daily basis and then add these costs to prepare a total monthly cost for the VM”
But please note this cost may be different from the “Showback” statement or the “Daily Price Report” you see in vRealize Business, which is based on the pricing policies. It is essentially the “Price” of a virtual machine or a service for showback purpose which you may wish to provide to your internal customer.
Virtual Machine Price
“vRealize Business Showback statement or price/charge reports are based on either virtual machine resource allocation or utilization while using the pricing policies.”
From vRBC 7.3.1, Virtual machines price calculations can be done either based on their utilisation or fixed hardware allocation. By default it based on Allocation. Also the initial price is based on the running cost of a VM but can be changed based on the custom pricing policies. I have done a detailed post on Virtual Machine Price Calculation & Pricing Policies.
Now coming back to our original quest of calculating the “Unit Cost of VM”, it primarily progress through following 4 key steps.
- Overall Cloud Expense Calculation
- Cluster Base Rate Calculation
- CPU & RAM Base Rate Calculation
- VM Unit Cost Calculation
So, the short answer is that vRealize Business first calculate the CPU and RAM base rates for each of your clusters and then calculated the daily cost of each virtual machine based on its utilisation & if I wish to depict this logic on high level it will look like this.
Let’s go through the details of “VM Cost” calculation steps in a private cloud.
We have already seen this in Cloud Expense Calculation post of this series, once you have finished assigning the actual cost applicable to your environment for all the 8 “Cost Drivers”, vRealize Business calculates the overall “Cloud Expense” for your vSphere based private.
Cluster Base Rate
It also calculates the individual cost for each of your clusters based on their hardware configuration and other associates cost drivers, to calculate the “Cluster Base Rate”.
“Fully Loaded Cluster Cost” = Monthly Server Hardware Cost + Monthly Maintenance Cost + Monthly Network Cost + Monthly Facilities Cost + Monthly VMware & Server OS Licences Cost + Monthly Labor Cost for Server Hardware Only+ Monthly Additional Costs
The Cluster Utilisation can be set to default “System Defined” value which is based on 3 months historical utilisation or can be changed to desired fixed percentage utilisation for CPU & Memory globally for all clusters or individually at each cluster level.
Base CPU & Memory Rate
The next step is to calculate the “Base CPU Rate” and “Base Memory Rate” for each individual cluster from their “Fully Loaded Cluster Cost”, which is later split into CPU and memory costs based on the industry standard cost ratios for the different models of the servers.
CPU & Memory base rates are then prorated by dividing by the expected utilisation percentage to arrive at true base rate for charging the virtual machines.
In case the actual system defined utilization of the cluster is less than the custom defined fixed percentage then the CPU and Memory base rate will reduce.
For instance, in this case the 40 % utilization percentage is more than the actual current utilization, hence the Base CPU & Memory rates have reduced because as a cloud service provider we are expecting or targeting to better utilize our hardware resources and hence lower cost but at the same time you will notice that the “Unallocated Cost” is increased as the cluster currently does not have enough workload and still has not reached the expected utilization level and therefore there is an unallocated cost.
Finally, these CPU (per GHz) and Memory (per GB) base rate multiples are used to calculate the utilization based “Unit Cost of Virtual Machine” in your private cloud.
You can see these cost under Private Cloud-> VM Costs, categorized according to the server generation that the virtual machine belongs to.
Let’s finally verify this “Unit VM Cost calculation” with an example, in vRealize Business. Go to Private Cloud-> VM Costs and expand virtual machine.
You can notice that “Total Cost” of the VM is calculated as follows.
Unit VM Cost = $1 +$6 +$11 +$4=$22
Also you can verify how the corresponding CPU and RAM costs are calculated based on their base rate and VM usage, like in the above example the VM belongs to a Cluster which has following base rates.
CPU Base Rate =11
Memory Base rate=4
CPU Cost = CPU Base Rate X Usage (GHz)
11 X 0.05 = 0.55 round off CPU cost $ 1
Memory Cost = Memory Base Rate X Usage(GB)
4 X 1.48 = 5.92 round off Memory Cost $ 6
Which matches exactly with the example above.
Therefore, using vRealize Business IT can precisely calculate the “Unit Cost of VM” covering all the aspects datacenter cost involved in running a private cloud. The ability to compare service costs based on the delivery model allows IT to become a service broker for the business. IT can be in a strong position to compare the cost of services between multiple datacenter’s or even public cloud providers and can justify if services should run in-house and for cases where services can run cheaper in the public cloud. Hence an informed decision making in workload provisioning process can now easily identify those cost – saving opportunities.
Next, I will cover how you can also define your “Business Units” and “Pricing Policies” to “Showback” to your customers the cost of services they are consuming.
vRealize Business for Cloud 7.3.1