Challenge Accepted: Applying Pay-as-You-Go in Private Datacenters

Typically, for on-premises infrastructures, the enterprises use capacity quotas to regulate the amount of resources each team can use (in CPUs, Memory GBs, storage GBs, etc.). This approach is effective and convenient when all your resources are exclusively in your own data centers. However, the things get more complicated when a public cloud is added.

In such case, using both the resource-based approach in your private DC, and public clouds’ pay-as-you-go, you need to make an extra effort to properly arrange your financial procedures and planning, as, in fact, you need to deal with two completely different calculation approaches.

A pay-as-you-go approach for private data centers is a right decision if you aim to unify and simplify financial governance, planning, resource allocation and utilization accountability.

An effective, powerful, and flexible billing engine is a keystone for such solution. Maestro has one, and further in this post, we will uncover the approaches it uses, and the possibilities it provides.

Core Concept

Briefly, the main goal of a billing engine is to get information about about resource consumption and process it to transform this data into consumed resources cost. 

Resource consumption evaluation starts from collecting various types of metrics and events from the system, which will become the source of data for the billing engine.  

The events can be like instance start or stop, instance termination, new disc creation, etc. Instance CPU and memory count, storage volumes, and other similar parameters can be the metrics.

One of the key points here is to detect exact time of the event, which resulted into a state change (e.g., new instance creation results into instance running state and disk active state; instance stop results into instance stop state, and disk stop state).

As a result, we have a timeline for each resource, with the markings of states and states changes, and build pricing for each section of this timeline. 

The prices are calculated based on the policies – which are, in fact, sets of rules for applying costs for resources, based on specific parameters and resource states.



The way the Billing Engine generates the costs for an object, depends on the type of infrastructure. 

Virtual Resources Pricing

As was mentioned above, implementing billing for private data centers is an important step to build make your cloud financially effective, transparent, and efficient. It allows you to:

  • Implement cost allocation: transforming bare resource utilization into costs allows assigning the costs directly to departments, teams, or projects. They can be charged based on resource actual usage, which brings transparency and accountability, discouraging wasteful use of resources.
  • Arrange better financial management: With a defined billing policy, it becomes easier for organizations to plan budgets and forecast future expenses. It also helps to predict the financial impact of scaling operations or the addition of new services, enabling better financial management.
  • Encourage resource optimization: A billing system inherently promotes the efficient use of resources. Users become more aware of the costs associated with their consumption and are more likely to optimize their usage to control expenses, leading to overall better resource utilization and cost savings.

When creating a pricing policy for a private datacenter, you typically take into account the price of underlying infrastructure, electricity, datacenter operation and maintenance costs,  resource amortization, etc.

You may also want not only to compensate for the datacenter usage but get extra benefit from providing virtual resources to your teams and customers.

Maestro billing engine allows to track the main states and changes in the provisioned resources, based on various parameters, such as (but not limited to) those on the picture below:


The main idea here is that any information about resource configuration or state that can be retrieved from the platform, can be included in the billing process, allowing you to meet various business cases.

Selecting billing period allows to adjust the mechanism to the infrastructure lifestyle with per-second approach applicable for quickly changing dynamic infrastructures, and monthly – more convenient for predictable stable loads.

Configuration multipliers allow to adjust the price to the specific of your data center ownership price in specific locations.  Resource type-related cost modifiers will also allow to distribute the demand for specific types of resources, for example, if you have limited high performance and SSD capacities and want them to be used when they are really necessary, you can put higher prices for them than for standard and SSDs.

For complex cases and large loads, you can create pricing policies that will depend on the amount of used resources – in various bundles (e.g., different per-GB prices for 1-99GB, 100-199GB, and 200-500GB volumes), or using a threshold approach (e.g., in a 200GB volume, the first 50GB are billed by one price, and everything over that – by another)

Once the policy is ready, it is used by Maestro Billing Engine together with the timelines for each object, to calculate the resulting prices.

Hardware Resources Pricing

Hardware resources billing is necessary when an enterprise has hardware resources that are given for rent.

Although providing hardware resources is not exactly what is expected within a cloud service, having all infrastructure-related expenses under unified approach, and covered with the unified rules, significantly simplifies financial and operational processes and allows building centralized resource utilization strategies.

For hardware billing, Maestro uses a specific type of policy, which provides prices per item (based on your estimations), where you can also identify different prices for different items.  

If you have your hardware resources stored and used in different locations, you may result in having different cost of ownership for similar resources due to the differences in electricity, rent, and other local factors. You can take it into account when creating a policy by adding a location multiplier to the policy.


To Sum Up

Building and managing a private data center is a complex task, both technically and organizationally. One of the core challenges that a company needs to resolve in order to effectively track, control, and monetize private data centers resources utilization – is understanding how to transform bare resource usage hours into bills for end users.

Maestro Billing Engine provides a unified approach to building chargebacks for both virtual and hardware resources. It allows you to identify cost objects, and build timelines, which track the changes in each resource states and configurations. Then, it applies pricing policies – detailed descriptions of pricing rules for each state/configuration, and calculates the chargeback based on these rules.

In this post, we discussed the main approaches, but in the following one, let’s dive deeper into the way the billing strategy can be customized due to policies specifics and billing engine flexibility.


Popular posts from this blog

Maestro Analytics: Essentials at the Fingertips

Maestro: Greeting the Green Dragon

Maestro Orchestrator: Product? SaaS? Framework!