Benefit is claimed under 35 U.S.C. 119(a)-(d) to Foreign Application Serial No. 202241002717 filed in India entitled “DISCOUNT PREDICTIONS FOR CLOUD SERVICES”, on Jan. 17, 2022, by VMware, Inc., which is herein incorporated in its entirety by reference for all purposes.
The present disclosure relates to computing environments, and more particularly to methods, techniques, and systems for predicting a discount for consumption of a cloud service in a cloud computing environment.
Cloud service providers such as Amazon Web Services® (AWS), Microsoft Azure®, Google Cloud Platform™, Oracle Cloud™ Infrastructure, VMware Cloud™ on AWS, and the like provide enterprise customers with multiple ways to consume cloud services based on enterprise operation needs. Further, the price for such cloud services may depend on various parameters such as a region, an operating system, an instance family, a tenancy, an off-peak use, whether an enterprise has committed to a reserved level of utilization, and the like. Furthermore, the cloud service providers may provide the enterprise customers with discounted pricing for the cloud services based on a volume (i.e., consumption) commitment, for instance. The discounts (also referred to as enterprise discounts) may be specific to each enterprise and may be based on factors such as a customer size, potential spends, and the like.
The drawings described herein are for illustration purposes and are not intended to limit the scope of the present subject matter in any way.
The paragraphs [0011] to [0018] describe about an overview of cloud services provided by cloud service providers in a cloud computing environment, existing cloud bill processing systems to get information about cloud infrastructure and billed costs associated with the cloud services, and drawbacks associated with the existing cloud bill processing systems. The cloud computing environment may be a pool or collection of cloud infrastructure resources designed for enterprise needs. The resources may be a processor (e.g., central processing unit (CPU)), memory (e.g., random-access memory (RAM)), storage (e.g., disk space), and networking (e.g., bandwidth). The cloud computing environment may be a virtual representation of the physical data center, complete with servers, storage clusters, and networking components, all of which may reside in a virtual space being hosted by one or more physical data centers. Further, the cloud services may be infrastructure, platforms, or software that are hosted by the cloud service providers (e.g., Amazon Web Services (AWS), Microsoft Azure, and the like) in the cloud computing environment and made available to customers through the Internet.
In such cloud computing environments, the cloud service providers may offer different pricing for different customers (e.g., enterprises). The cloud service providers may provide discount pricing for the customers based on factors such as customer size, potential spends, and the like. In some examples, the discounts may be specific to each customer. Such discounts may be communicated to the customers upfront, which act like a contract between the cloud service providers and the customers.
In some examples, the discounts may make actual pricing significantly lower than publicly available rates. Customers utilizing cloud service management platforms, such as CloudHealth by VMware, have to be provided with the discounts to be able to get an accurate analysis of the cloud infrastructure. Otherwise, multiple features such as rightsizing, budgeting, and the like may project incorrect values.
The cloud service management platform may refer to a platform that enables customers to visualize, optimize, and govern associated cloud computing environments. The cloud service management platform may collect and consolidate a customer's cloud computing environment data in a single platform to enable the customer to efficiently optimize and govern the cloud computing environment. The cloud service management platform may provide the customer with analysis, recommendations, and trended reporting on cost, usage, performance, and security based on analysis of data related to the customer's cloud-based services use.
Further, the cloud service management platform may include a bill processing system that processes a customer's daily/monthly bills to get information about the cloud infrastructure and billed costs (e.g., cost and usage report (CUR) for AWS) associated with the cloud service. However, the bills may provide usage with the public rates and costs, rather than the discounted rates provided to the customer. To get the discounts, the cloud service management platform may provide an option to the customers to get the enterprise discounts in the bill processing platform manually via a series of customer-engineer interviews to capture configurations (e.g., billing rules). Further, the platform's code base may have to be modified manually to apply the billing rules/configurations, so that the personalized rates are fetched for every calculation within the cloud service management platform for the customer.
Further, the discounts can be of different forms such as a flat percentage discount, discounts tiered into various levels based on usage as well as conditions like geographical region-specific discounts, and the like. Further, different combinations of these forms may also be valid, which can form significantly complex discount rules. In some cases, multiple discount rules can be applicable, in which a cloud service provider specified resolution strategy has to be applied. Accounting such rules in an automated bill processing system may be a significantly complex task as each such rule has to be applied considering usage and other details, along with resolution strategies. Therefore,
In other examples, the customers may choose to have the cloud service providers directly reflect the personalized rates in the cost and usage reports. In this example, customer specific rates get automatically picked up by the bill processing systems. However, features such as right sizing, what-if analysis, and the like require rates for exhaustive options (such as possible instance tiers and the like) which may not be available in the usage reports. Such features may still have to rely on the public rate cards in the absence of personalized rates for the customer, which may yield to incorrect results. Therefore, even though the bills include the discounts, the bills may still be required to go over the above-mentioned approach to get the discounts in the bill processing system.
Examples described herein may provide a cloud service management node including a knowledge base having a plurality of billing rules for a cloud computing environment. Further, the cloud service management node may include a discount predictor module. During operation, the discount predictor module may receive an actual bill related to consumption of a cloud service in the cloud computing environment provided by a cloud service provider. Further, the discount predictor module may determine a variation between the actual bill and an expected cost from a public rate card by comparing the actual bill with the expected cost. Furthermore, the discount predictor module may evaluate the plurality of billing rules in the knowledge base to predict a discount type (e.g., flat discount or tiered discount) and a discount (e.g., a discount value) associated with the discount type that matches the variation between the actual bill and the expected cost from the public rate card. Further, the discount predictor module may output the discount type and a discount on an interactive user interface.
Examples described herein provide a self-learning method that discovers enterprise discounts given to a customer by comparing the actual bills against the public rate cards, using the set of billing rules in the cloud service management platform as a knowledge base. Thus, examples described herein provide an automated approach to predict the discounts and hence manual steps such as customer interviews to obtain the discounts can be avoided.
In the following description, for purposes of explanation, numerous specific details are set forth to provide a thorough understanding of the present techniques. It will be apparent, however, to one skilled in the art that the present apparatus, devices, and systems may be practiced without these specific details. Reference in the specification to “an example” or similar language means that a particular feature, structure, or characteristic described is included in at least that one example, but not necessarily in other examples.
System Overview and Examples of Operation
Cloud service management node 102 may connect to cloud computing platforms 104A-104N either directly or over a network (e.g., over a local-area network, wide-area network, wireless network, or the like). As shown in
Each of the cloud computing platforms 104A-104N may be operated by a cloud computing service provider and exposed as a service available to tenants (e.g., account holders), such as enterprises. In some examples, cloud computing platforms 104A-104N may be configured to dynamically provide enterprises or users with one or more virtual data centers in which a user may provision VMs, containers, deploy multi-tier applications on VMs and/or containers, and/or execute workloads. Cloud computing platforms 104A-104N may include an infrastructure platform upon which a cloud computing environment may be executed.
As shown in
As shown in
Further, cloud service management node 102 includes a processor 108 and a memory 110 coupled to processor 108. In an example, memory 110 includes discount predictor module 112. The term “processor” may refer to, for example, a central processing unit (CPU), a semiconductor-based microprocessor, a digital signal processor (DSP) such as a digital image processing unit, or other hardware devices or processing elements suitable to retrieve and execute instructions stored in a storage medium, or suitable combinations thereof. Processor 108 may, for example, include single or multiple cores on a chip, multiple cores across multiple chips, multiple cores across multiple devices, or suitable combinations thereof. Processor 108 may be functional to fetch, decode, and execute instructions as described herein.
During operation, discount predictor module 112 may receive an actual bill related to consumption of the cloud service in the cloud computing environment provided by the cloud service provider. Further, discount predictor module 112 may determine a variation between the actual bill and an expected cost from a public rate card by comparing the actual bill with the expected cost. Furthermore, discount predictor module 112 may evaluate the plurality of billing rules in knowledge base 106 to predict a discount type and a discount associated with the discount type that matches the variation between the actual bill and the expected cost from the public rate card.
Further, discount predictor module 112 may output the discount type and the discount on an interactive user interface. In an example, discount predictor module 112 outputs the discount type including a probable discount or multiple probable discounts on the interactive user interface. Furthermore, discount predictor module 112 may receive a user input related to the discount type and/or the discount associated with the discount type via the interactive user interface. The user input may verify or modify the discount type, a value of the discount, or both. Furthermore, discount predictor module 112 may store the modified discount type, the modified discount associated with the discount type, or both as a new billing rule in knowledge base 106. Thus, examples described herein may provide a reactive approach, where the customers/tenants are provided with the interactive user interface to display the probable enterprise discounts. Further, the customers can modify the presented discounts and the modifications may be further used to enhance future discount predictions.
During operation, line-item comparator 154 may perform a line-by-line comparison between the actual bill having discounted line items and the expected cost such that the variation between the actual bill and the expected cost is determined for each of the discounted line items. For example, each of the discounted line items is a row in the actual bill including cost of consumption of an infrastructure object in the cloud service at a granular level. Further, discount mapper 156 may map the variation between the actual bill and the expected cost to a billing rule or a set of the plurality of the billing rules based on the consumption of the cloud service. Furthermore, discount mapper 156 may predict the discount type and the discount associated with the discount type that matches the variation between the actual bill and the expected cost based on the mapping.
In an example, discount mapper 156 evaluates the plurality of billing rules in knowledge base 106 to predict candidate billing rules and associated discount values that match the variations in each of the discounted line items. Further, discount mapper 156 may:
Further, self-learning module 152 may receive a user input to modify the discount type, a value of the discount, or both via the interactive user interface. Further, self-learning module 152 may acquire knowledge from the modified discount type, the modified discount associated with the discount type, or both. Furthermore, self-learning module 152 may utilize the acquired knowledge to predict a future discount type and/or the discount.
In other examples, memory 110 may include a rule extractor 158. During operation, rule extractor 158 may extract historical billing rules defined in a cloud management platform of the cloud computing environment. Further, rule extractor 158 may obtain a parameter that determines a condition for the discount. In an example, the parameter that determines the condition for the discount includes, but not limited to, a number of users having a particular discount, a discount model, and resource selection criteria (e.g., a type of cloud service, a billable category, a region, and the like). The discount model may refer to a flat discount or a tiered discount.
Furthermore, rule extractor 158 may categorize the historical billing rules along with an associated parameter into a set of groups. In an example, each group includes at least one historical billing rule related to a billable category. The billable category may indicate a type of an infrastructure object to be consumed in the cloud service. For example, license keys that cloud service providers deploy may have different billing characteristics. In this example, the license keys can be indicated as billable by defining the billable category such as compute charges, storage charges, data transfer charges, application programming interfaces (API) request, and the like. Further, rule extractor 158 may assign a unique identifier and a handler to each of the set of groups. The handler associated with a group may be a program or a mathematical logic to apply the historical billing rules in the group. Further in operation, discount predictor module 112 may evaluate the set of groups using an associated handler to determine the discount type and the discount associated with the discount type that matches the variation between the actual bill and the expected cost.
In some examples, the functionalities described in
Examples described herein may be implemented in a cloud service management platform such as CloudHealth, vRealize Operations and vRealize Business. With the examples described herein, the cloud cost reporting on such products can be automated with enterprise discounts plugged in, while requiring minimal inputs from the user. Thus, examples described herein significantly reduce the tenant onboarding friction points such as time to onboard a tenant, increased set of features (e.g., rightsizing) that could be supported with no effort, and the like.
Further, line-item comparator 154 may compare line-item prices with public rates 208 and billed line-items 210 to determine modified line items 214 (i.e., variations in the line-items). Furthermore, rule extractor 158 may generate a discount catalogue 216 based on inferred discounts 212. In an example, rule extractor 158 may extract historical billing rules 206 defined in the cloud computing environment and generate discount catalogue 216 including distinct types of the historical billing rules defined by different customers for the cloud computing environment. Each type of historical billing rule corresponds to a type of discount offered by the cloud service provider.
Furthermore, discount mapper 156 communicatively connected to line-item comparator 154 and rule extractor 158. During operation, discount mapper 156 may predict a discount associated with consumption of a cloud service based on modified line-items 214 and discount catalogue 216 as described below.
In an example, line-item comparator 154 uses a data processing system (e.g., a spark-based processing system) to evaluate cost and usage data of the customers. A dataset (e.g., line-item prices with public rates 208 and billed line-items 210 referred to as a billing dataset) includes cost values inclusive of enterprise discounts applied by the cloud service provider. The usage and consumption values may be available for each billable category. Thus, the dataset may provide expected and actual variations at a granular level. For example, consider an original dataset as shown in equation (1), where m represents a measure column (e.g., a billed cost column) and d represents a dimension line item.
LineItemId,m1,m2,billedcost . . . mn,d1,d2,d3, . . . dn (1)
For querying billed line-items 210 (e.g., rows) in the dataset to identify usage values and invoking calculation of undiscounted prices using the public rate cards, a pricing service with relevant parameters based on a type of service and billable category may be invoked. Further, the pricing service may provide the undiscounted values that would have been billed for a given usage amount, for that line item in absence of enterprise discounts as shown in equation (2). These values may be then appended as an extra column named like “undiscounted_costs” to be used later for any kind of ad-hoc queries involving aggregation or roll-ups (e.g., like getting the undiscounted costs by a given cloud service across all billable categories) as required by a discount mapper 156. As shown in equation (2), billedcost represents original cost column and billedcost represents undiscounted cost column for the cost measure m in a new bill.
LineItemId,m1,m2,billedcost . . . mn,billedcost,d1,d2,d3, . . . dn (2)
Further, for each line-item, a new column containing the difference between the expected bill and the actual bill may be added, which may determine the total cost value of the discount provided for that line-item as shown in below equation (3).
LineItemId,m1,m2,billedcost . . . mn,undiscounted_cost,d1,d2,d3, . . . dn,discount value (3)
Furthermore, irrelevant line-items such as line-items involving negative values like explicit credits, carry-over-month discount, and the like may be discarded as they are not considered to evaluate the discounts.
In an example, rule extractor 158 processes billing rules (e.g., which may be created historically over a period of time) set in the could computing environment. Further, rule extractor 158 may generate discount catalogue 216 including different types of billing rules set by different customers for the cloud service. Discount catalogue 216 may correspond to the different kinds of discounts given by the cloud provider to different customers (e.g., irrespective of the discount value) and therefore discount catalogue 216 may act as a reference data for discount predictor module 112 to predict the discounts. As the number of customers increases, the dataset may become exhaustive, which enhances an accuracy of the discount prediction. An example discount catalogue 216 may include information such as a number of customers having the discounts, a type of the discount (e.g., a flat or tiered), criteria for the discounts (e.g., an instance type, a region, and the like), and the like which may be considered while predicting the discount (e.g., by discount predictor module 112).
Rule extractor 158 may collect the distinct types of discounts offered by the cloud service provider to the customers. Since majority of the discounts may be similar in type to what the cloud service provider is providing to their customers, though the amount can vary, the billing rules may be categorised into two distinct types as described below.
Further, rule extractor 158 may collect relevant parameters that determine the conditions for the discount such as a region, billable categories, cloud service corresponding to the discount, and the like. Further, billing rules applicable to a billable category may be grouped together with filters, and hence a single discount identifier (ID) may exist for each unique combination of usage category and other filters. Thus, the billing rules may be used to verify the presence of any billing rule that could have been applied to arrive at the predicted discount values. For example, below table 1 shows a section of the sample billing rules extracted from the existing billing rules.
As shown in table 1, the discounts may have specific discount handlers, which may be a piece of code or mathematical logic that determines how the discount is to be applied corresponding to given actual values of the discounts. Further, the handlers may be same for a given billable category and discount type (since logic for calculation is same), and therefore a significantly limited number of handlers may be required. For example, in case of the fixed discount on a cloud service (i.e., Amazon Simple Storage Service (AWS S3)), if x denotes the fixed discount, and undiscounted cost denotes the AWS S3 costs for storage billable category, then the discounted cost is computed as shown in equation (4).
Further, in case of tiered discounts, the discounted costs can be calculated for each tier using the above equation (4) and then the discounted costs of the tiers may be summed up to get a total discounted cost as shown in equations (5) and (6).
Furthermore, the discount handlers with the above discount cost calculation may be saved to a persistent storage such as a database and kept updated from time to time based on new rules being configured by the customers either directly or via the discounts predicted by discount predictor module 112.
In an example, the calculation of undiscounted costs is a cloud and service dependent logic and is available in the cloud service management platform via associated pricing service. In this scenario, some services can be trivial as depicted in below equation (7).
undiscounted cost=usage count*public rates (7)
However, in case of other cloud services such as AWS Elastic Computing(EC2), determining the discounts can include a significantly complex algorithm, which requires an aggregation of multiple billable categories, tiered calculation based on usage, applying reservation and other benefits, and the like. This is also used in line-item comparator 154 to calculate the actual bills.
Further, line-item comparator 154 may compare the actual bills of the customers against the expected costs from public rate cards to figure out the different variations in the costs. For example, the comparison of the actual bills may be performed by line-item comparator 154 which may use a spark-based processing to process the actual bills at a very detailed line-item level so that the variations may be captured not just at a service level, but at granular billable categories (e.g., data transfer costs, API requests, and the like). Further, discount mapper 156 (e.g., an attribution logic) may map the variations to one or more discount types.
In an example, discount mapper 156 evaluates various billing rules 206 in knowledge base 106 to determine suitable billing rules and associated discount values that could explain the variations in the line-items determined by line-item comparator 154. In an example:
Further, two different methods depending on the discount model may be considered as described below. In a fixed discount method, the line-items with the billable category may be filtered using the processed billing dataset (e.g., processed bills 204). Further, the value of discrepancy with respect to the value in undiscounted cost column may be determined as shown in below equation (8). Further, invalid line-items with more than 100% variation may be discarded as such a discount cannot given by the cloud service provider unless such discount is a credit which is explicitly excluded.
Further, an average of the above obtained percentage discrepancy across the line-items for the billable category may be calculated to determine the fixed discount as shown in below equation (9). The average may represent the average discount value when the fixed discount is provided.
Fixed Discounts,c=avg(Discrepency Ratiol=s,c) (9)
In some examples, the percentage discount is same for each line-item since the billable category within all filter criteria (e.g., like region) are applied, which may be the lowest granularity of a discount possible. Therefore, a relative standard deviation (RSD) of the percent variation values may be calculated and the discount may be discarded if the RSD increases beyond a certain value which can be predetermined as shown in equation (10).
In a tiered discount method, the tiered discounts are calculated similarly as described above with respect to the flat discount method, however the rate of discounts may change over time based on the usage. For instance, when a cumulative consumption of the cloud infrastructure crosses a certain pre-defined tier, then the rate values can be changed. In order to figure out the tiers, historical consumption values of the given billable category across hours/days or even months may be considered. In an example, the hourly rate for the consumption amount may be calculated for each observation data-point (e.g., hour, day, or the like) using the same undiscounted cost calculation formula (e.g., equation 5) used to obtain cost values of the undiscounted cost. Further, the usage point at which there is a sudden change in the billed rate values may be identified. The usage point may signify the usage tier has been reached and a different category of discount has to be applied now.
Thus, the tiers of each line-item are recorded and the discounts are calculated for each individual tier by using a fixed discount method as explained above. Note that unlike fixed discounts, discovery of tiered discounts is a continuous process as more tiers can be discovered with extended period of usage, and therefore better results can be provided depending on the amount of available historical data and evaluation time.
Referring back to
In case of tiered discounts, same calculation may be used to obtain the tiered values for each tier and then average of the MAD of all the tiers is considered as depicted in below equation (12).
Mean Absolute Deviation=avg(Mean Absolute Deviationi) (12)
In some examples where the MAD is significantly close for at least 2 discounts, then both the discounts may be presented to the customer to allow the customer to select one of the 2 discounts. For example, being close can be defined in terms of a pre-defined percentage value (e.g., less than 5%) difference between the MAD values of the two discounts.
Thus, when there are multiple possible discounts that could be applicable, the same may be presented to the customers in the form of an interactive user interface (e.g., as shown in below table 2), where the customer can view the possible discounts (e.g., which are inferred based on the bills) and verify or modify the values for the discounts or change the discounts completely. Once verified/modified by the customer, the discounts may be persisted back as billing rules 206 in knowledge base 106.
Thus, discount predictor module 112 may predict the discounts given to the customer by:
At 402, an actual bill related to consumption of infrastructure objects in a cloud computing environment provided by a cloud service provider may be received. At 404, a line-by-line comparison may be performed between the actual bill having discounted line items and an expected cost from a public rate card.
At 406, a variation between the actual bill and the expected cost for each of the discounted line items may be determined based on the comparison. At 408, the plurality of billing rules in a knowledge base may be evaluated to predict candidate billing rules and associated discount values that match the variation in each of the discounted line items.
At 410, a discount type and a discount associated with the discount type that matches the variation between the actual bill and the expected cost may be predicted based on the candidate billing rules and the associated discount values. In an example, predicting the discount type and the discount that matches the variation between the actual bill and the expected cost may include:
In an example, predicting the discount type and the discount associated with the discount type that matches the variation between the actual bill and the expected cost may include mapping the variation in each of the discounted line items to a candidate billing rule or a set of candidate billing rules based on the consumption of the infrastructure objects. Further, the discount type and the discount associated with the discount type that matches the variation between the actual bill and the expected cost may be predicted based on the mapping of the variations to the candidate billing rule or the set of candidate billing rules.
At 412, the discount type and the discount may be outputted on an interactive user interface. Further, a user input related to at least one of the discount type and the discount associated with the discount type may be received via the interactive user interface. In an example, the user input may verify or modify the discount type, a value of the predicted discount, or both. Further, the modified discount type, the modified discount, or both may be stored as a new billing rule in the knowledge base. Furthermore, a self-learning module may be trained to acquire knowledge from the modified discount type, the modified discount, or both and utilize the acquired knowledge for a future discount type prediction.
Finally, when the above-mentioned details are selected, then a discount type (e.g., fixed or tiered) may be provided as shown in
Computer-readable storage medium 604 may store instructions 606, 608, 610, 612, and 614. Instructions 606 may be executed by processor 602 to receive an actual bill related to consumption of a cloud service in a cloud computing environment provided by a cloud service provider.
Instructions 608 may be executed by processor 602 to determine a variation between the actual bill and an expected cost from a public rate card by comparing the actual bill with the expected cost. In an example, instructions 608 to determine the variation between the actual bill and the expected cost includes instructions to:
Instructions 610 may be executed by processor 602 to retrieve a plurality of billing rules from a knowledge base. Instructions 612 may be executed by processor 602 to evaluate the plurality of billing rules to predict at least one candidate billing rule and an associated discount value that matches the variation between the actual bill and the expected cost.
Instructions 614 may be executed by processor 602 to output the at least one candidate billing rule and the associated discount value on an interactive user interface. Computer-readable storage medium 604 may further store instructions to be executed by processor 602 to:
Further, computer-readable storage medium 604 may store instructions to be executed by processor 602 to:
Some or all of the system components and/or data structures may also be stored as contents (e.g., as executable or other machine-readable software instructions or structured data) on a non-transitory computer-readable medium (e.g., as a hard disk; a computer memory; a computer network or cellular wireless network or other data transmission medium; or a portable media article to be read by an appropriate drive or via an appropriate connection, such as a DVD or flash memory device) so as to enable or configure the computer-readable medium and/or one or more host computing systems or devices to execute or otherwise use or provide the contents to perform at least some of the described techniques.
It may be noted that the above-described examples of the present solution are for the purpose of illustration only. Although the solution has been described in conjunction with a specific embodiment thereof, numerous modifications may be possible without materially departing from the teachings and advantages of the subject matter described herein. Other substitutions, modifications and changes may be made without departing from the spirit of the present solution. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive.
The terms “include,” “have,” and variations thereof, as used herein, have the same meaning as the term “comprise” or appropriate variation thereof. Furthermore, the term “based on”, as used herein, means “based at least in part on.” Thus, a feature that is described as based on some stimulus can be based on the stimulus or a combination of stimuli including the stimulus.
The present description has been shown and described with reference to the foregoing examples. It is understood, however, that other forms, details, and examples can be made without departing from the spirit and scope of the present subject matter that is defined in the following claims.
Number | Date | Country | Kind |
---|---|---|---|
202241002717 | Jan 2022 | IN | national |