Next Generation of Cost Reallocation: Leveraging APIs to Programmatically Manage Cloud Spend

October 18, 2023 Hagar Sudha

A couple of weeks ago, I wrote about The Art of True Chargebacks and how VMware Tanzu CloudHealth makes simple work of the cost reallocation of cloud expenses. In addition to being a refresher on cost reallocation with Tanzu CloudHealth, it was also shared as a kickoff of our newly released cutting-edge Cost Reallocation API. This officially available API revolutionizes the seamless automation of chargeback reallocation across diverse geographies, brands, business units (BUs), and product lines. This powerful API empowers users to effortlessly tailor and modify reallocation strategies as needed.

Before jumping into an example of leveraging our new Cost Reallocation API, let’s revisit CloudHealth Perspectives and the granularity and control they provide. 

Perspectives are lenses by which you can view your cloud infrastructure. These lenses are user-defined groups built on a customer’s public cloud tags, metadata, other cloud characteristics, or even some Tanzu CloudHealth generated tags. The created groups allow customers to tie costs back to business units, teams, applications, or projects.

A diagram of a funnel

Description automatically generatedA graphic explanation of Tanzu CloudHealth Perspectives

For a tangible example, let's delve into a Cost Reallocation API schema that exemplifies how a telecom customer can efficiently redistribute consumption costs among key departments: research and development, production, human resources and administration, logistics, finance, and project monitoring. This redistribution is based on the percentage usage attributed to each respective BU.  

  • Research and development – Telecom companies heavily invest in research and development for technological advancements. The API can attribute a specific percentage of the overall consumption costs to the R&D department, reflecting the resources utilized for innovation and development.  
  • Production – Production involves the operational aspect of providing telecom services. The API intelligently allocates costs to production based on the consumption of resources needed to deliver these services, ensuring a fair distribution of expenses. 
  • Human resources and administration – HR and administrative functions are essential for any organization. The API considers the usage of resources related to HR operations and general administration and allocates costs accordingly, aiding in budget management for these critical support functions.  
  • Logistics – Telecom companies require effective logistics and supply chain management. The API factors in the logistics operations' resource usage, determining the associated costs, and redistributing them accurately based on usage percentages.  
  • Finance – The finance department handles financial transactions and management. The API attributes a proportionate share of consumption costs to finance, reflecting the resources utilized for financial operations and fiscal planning.   
  • Project Monitoring – Telecom projects require monitoring and oversight. The API calculates costs linked to project monitoring activities, distributing them based on the percentage of usage by the project monitoring department.  

Use case scenario

Let’s look at a customer in the telecom industry’s cost reallocation scenario. This example is across BUs with a sample Cost Reallocation API schema leveraging a Perspective built with the above business groups.

mutation {  
    createCostReallocationRule(     

input: {   
       name: "Brand-A Reallocation-Rule"  
        description: "Rule to re-allocate amonsgt business groups"  
        isEnabled: true,  
            reallocationAcrossAccounts: false  

              # Re-allocation Source: Perspective Group.  
        reallocationSource: PERSPECTIVE_GROUP,  

              # Source Brand: Telecom Boston  
            sourcePerspectiveGroup: "crn:[xxxx]:perspective-group/5772436087510:5772436056799:893353197671"  

              # Destination Sub Rules to reallocate.  
        subRules: [  
            {  
                includeCredits: false,    

                    # Destination type: Reallocate to Specific Groups to Specific Perspectives.  
                reallocationDestination: SPECIFIC_GROUPS_SPECIFIC_PERSPECTIVES  

                      # Destination Perspective: Departments  
                    destinationPerspectives: [  

"crn:[xxxx]:perspective/577243607198:893353197682"  
                    ]    

                    destinationPerspectiveGroups: [  
                        {  
                            # Destination Group: R&D  
                            id: "crn:[xxxx]:perspective-group/5772436646679:5772436071989:893353197682"    

                            # Percentage to reallocate to Perspective Group R&D: 20%  
                            percentage: "20"  
                        },    

                        {  
                            # Destination Group: Production  
                            id: "crn:[xxxx]:perspective-group/5772436646680:5772436071989:893353197682"  
             
               # Percentage to reallocate to Perspective Group Production: 30%  
                            percentage: "30"  
                        },  

                        {  
                            # Destination Group: HR & Admin  
                            id: "crn:[xxxx]:perspective-group/5772436646681:5772436071989:893353197682"  
                            # Percentage to reallocate to Perspective Group HR & Admin: 10%  
                            percentage: "5"  
                        },  

                        {  
                            # Destination Group: Logistics  
                            id: "crn:[xxxx]:perspective-group/5772436646682:5772436071989:893353197682"  

                            # Percentage to reallocate to Perspective Group Logistics: 20%  
                            percentage: "25"  
                        },  

                        {  
                            # Destination Group: Finance  
                            id: "crn:[xxxx]:perspective-group/5772436646683:5772436071989:893353197682"  

                            # Percentage to reallocate to Perspective Group Finance: 10%  
                            percentage: "10"  
                        },  

                        {  
                            # Destination Group: Project Monitoring  
                            id: "crn:[xxxx]:perspective-group/5772436646684:5772436071989:893353197682"  

                            # Percentage to reallocate to Perspective Group Project Monitoring: 10%  
                            percentage: "10"  
                        }  
                    ]  
                }  
        ]  

}  
    ) {  
        __typename  
    id  
        name  
        isActive  
        isEnabled  
        cloud  
        description  
        reallocationAccountScope  
        reallocationSource  
        sourceIndirectCosts  
        sourcePerspectiveGroup  
        createdAt  
        updatedAt  
        subRules {  
            totalCount  
            edges {  
                node {  
                    id, 
                    includeCredits,  
                    includeAssetsNotAllocated,  
                    reallocationDestination,  
                    proportionBy,  
                    destinationPerspectives  
                    destinationPerspectiveGroups {  
                        id  
                        percentage  
                    },  
                    createdAt  
                    updatedAt  
                }  
            }  
        }  
    }  
}  

Please note: In the above schema, [xxxx] would be replaced by your customer ID.

Our customers enjoy the freedom to tailor the API to reallocate costs based on specific direct expenditures, such as Amazon Elastic Compute Cloud (Amazon EC2) services consumption distributed across various BUs, especially if the service significantly contributes to cloud spend. This level of customization offers a granular approach, serving as the foundational principle for dynamically proportioning cloud-related costs. This reduces manual intervention and streamlines the entire reallocation process, enhancing efficiency for our valued customers. 

By leveraging this cost reallocation system, as seen in the example, telecom customers gain detailed insights into resource consumption within each department. This deeper understanding facilitates meticulous financial planning, efficient resource management, and well-informed decision-making, ultimately driving cost-effectiveness and optimizing overall organizational performance. 

The Cost Reallocation API stands as a testament to its capabilities, providing our customers with a priceless tool for effective resource allocation and optimization within their organizations. The potential applications and advantages of this cost reallocation feature are extensive, offering customers unprecedented control and efficiency through seamless integration into their existing systems and workflows.

Next steps  

To learn more about the Power of Perspectives, cost reallocation, and how to take control of your cloud spend, visit VMware Tanzu CloudHealth and sign up for a free trial of Tanzu CloudHealth to get started on your cost reallocation journey today.

About the Author

Hagar Sudha

Hagar is a senior product manager at VMware, specializing in Cloud Financial Management. Her passion lies in exploring AI/ML applications within the cloud space. In her free time, she enjoys writing blogs where she can share insights and experiences related to her field. She is also an avid reader and loves staying updated with the latest trends and advancements in technology. Additionally, Hagar has a deep appreciation for sports and enjoys watching various sporting events.

More Content by Hagar Sudha
Previous
Elevate Your Skills with New VMware Tanzu Hands-On Labs
Elevate Your Skills with New VMware Tanzu Hands-On Labs

Our Hands-On Labs offer you practical, real-world experience with VMware Tanzu products, Kubernetes, and mo...

Next
VMware Extends Support for Spring Boot 2 Projects with VMware Spring Runtime
VMware Extends Support for Spring Boot 2 Projects with VMware Spring Runtime

Open source support for Spring Boot 2 projects ends November 24, 2023, but you can gain more time to upgrad...