Platform Billing Overview
Billing Terminology
JBilling
JBilling is the platform’s internal subsystem responsible for collecting consumption data on hardware resources, calculating relevant customers' charging, and providing billing information. If needed, it can be extended and integrated with external billing systems to meet your specific business needs.
Usage
Usage is the number of resources consumed during some period of time. The platform collects statistics of resource usage every 20 seconds, accumulates it, and transforms it into money equivalent according to the configured tariffs each hour.
Account Balance
Account balance is a virtual balance on which conventional units can be transferred. JBilling automatically debits Usage from Account Balance. Balance is shown in the platform dashboard.
Account Bonus
Account bonus is an additional virtual balance on which conventional units can be transferred. Bonus balance is charged first, and then (after it becomes 0) the main account balance.
Trial Account
Trial account is a user’s account type, which is limited by some period of time (or bonus funds) and quotas. Trial accounts usually have some restrictions: quantity of environments available for creation, external IPs availability, number of same-type nodes per environment, etc.
Billing Account
Billing account is a paid account type, which has two variations: pre-paid and post-paid (see the Billing Model section below). Billing accounts have to exist in the External Billing system.
User Group
There are four basic user group types in the platform: beta, trial, billing, and post. Each user belongs to one group at a time. Each group may have its own tariffs.
Quotas
Quotas are the restrictions for each account type. The platform has a predefined list of quotas. Cluster admins can configure general quota sets per user group and customize different values per customer.
Account Statuses
Status | Trial Account | Billing Account |
---|---|---|
Active | Full functionality according to Quotas | Full functionality according to quotas |
Deactivated | Account is automatically deactivated when the trial period ends or when all the trial funds are consumed. Environments - stopped, creation - disabled, dashboard - accessible. | Account is automatically deactivated when a balance drops below the minimum value (stated via quotas). Environments - stopped, creation - disabled, dashboard - accessible. |
Suspended | Account was blocked by the admin for breaking any part of the platform’s ToS. Environments - stopped, creation - disabled, dashboard - not accessible. | Account was blocked by the admin for breaking any part of the platform’s ToS. Environments - stopped, creation - disabled, dashboard - not accessible. |
Destroyed | Environments - deleted, user info stored in the platform’s database, dashboard - accessible. | Environments - deleted, user info stored in the platform’s database, dashboard - accessible. |
Billing Model
End-users payments might be performed in two ways:
- Pre-payment
- Post-payment
Pre-payment means that a user makes a deposit for the account, and the funds are charged according to the service consumption tariffing.
Usually, account bonuses (if any) are charged first. If an account balance drops below a certain value (set in the account.minbalance quota), it is automatically deactivated. A user needs to refill the balance in order to continue using the service.
When the Post-payment method is applied, an end-user pays for resources consumed in the previous month. The qjob.invoice.cron_schedule billing job is called monthly (on the first day of the month by default) to generate the appropriate invoice.
In this model, all resource usage is charged as usual but debited monthly (not hourly). The users' balance is not changed during the whole month so that they can use platform services without any limitations.
On the first day of the next month, the platform creates an invoice for the sum of total spending during the previous month. A post-paid customer has to pay this invoice in order to keep using PaaS.