This article clarifies the terms and approaches used by Testcontainers Cloud for usage metering and billing.
Usage for Testcontainers Cloud is triggered by the Testcontainers Cloud Agent. In order to trigger usage, the Agent needs to be authenticated with the credentials of an authorized user within the customer's account. An authorized user can be either a Member (typically a person) or a Service Account (typically used by an automated system).
Usage is metered differently for Members and Service Accounts:
- For Service Accounts, see Testcontainers Cloud for CI below.
- For Members, see Testcontainers Cloud for Desktop below.
Testcontainers Cloud for CI
Usage is metered in `Worker Minute`.
When the Testcontainers Cloud Agent is deployed in a Continuous Integration (CI) environment, it is authenticated with the credentials for a Service Account. When the CI executes its workflow (sometimes called a "build" or "pipeline"), the Agent allocates one or several Worker(s) in order to deliver the Testcontainers Cloud service. For each Worker, usage is metered while the Worker is allocated. Allocation starts when the Worker is requested on-demand via the Agent by Service Account activity, and ends when the Worker is terminated after a period of inactivity.
The customer controls whether the Agent obtains one or several Workers from the Testcontainers Cloud Service by setting the `max-concurrency` flag. Setting this flag above 1 allows the customer to parallelize tests across multiple Workers thanks to Turbo mode.
The Testcontainers Cloud Agent is deployed in the CI where it runs twice a day from Monday to Friday. Each execution requires a single Testcontainers Cloud Worker for 17 minutes.
Each "build" generates 17 minutes of usage on average. Over the course of 4 weeks, the CI is triggered 40 times, for a total usage of of 680 Worker Minutes.
The Testcontainers Cloud Agent is deployed in the CI where it runs 10 times a day from Monday to Sunday. Each execution requires 4 Testcontainers Cloud Workers running in parallel. 3 of the Workers complete in 4 minutes while one completes in 8 minutes.
In total, each build generates 20 minutes of usage. Over the course of 30 days, the CI is triggered 300 times, for a total usage of 6,000 Worker Minutes.
Testcontainers Cloud for Desktop
Usage is metered in `Seats`.
Usage of the Testcontainers Cloud Agent by a Member of the Organization counts as a single Seat regardless of the number of Worker Minutes generated during a month (within the limits set by the Fair Use policy). This includes cases where the Member parallelizes tests across multiple Workers thanks to Turbo mode.
An Organization includes 2 Members:
- Alice is the Admin for the organization. She doesn't actively use the product and so Alice doesn't generate a Seat.
- Barbara is a developer who uses the product several times every work day, with Turbo mode activated. Overall, Barbara triggers 2,500 Worker Minutes per month, but counts as a single Seat.
This organization has 2 Members generating a single Seat of usage for the month.
Frequently Asked Questions
When does the billing cycle start?
The billing cycle begins the first of the month UTC, regardless of when you sign up.
For the very first month of usage, Testcontainers Cloud for CI is billed based on actual Worker Minutes used after the upgrade date, and Testcontainers Cloud for Desktop is prorated based on the Organization upgrade date.
For the following months of usage, Testcontainers Cloud for CI is billed based on actual Worker Minutes used, and Testcontainers Cloud for Desktop is billed only for Members that joined the organization prior to the start of the month. This means that if a Member generates usage during the month they join, their Seat is waived as a courtesy until the start of the following month.
What is the Fair Use policy?
While a Seat grants "unlimited" usage of Testcontainers Cloud for Desktop, some practical limits exist to deter potential abuse of the service (e.g. crypto-mining). Under the Fair Use policy, a Seat grants a quota of 3,000 Worker Minutes per month. This quota is above the upper range that we observe in practice for the vast majority of users. Moreover, because quotas are summed for all the Seats used, even a few "power users" within an Organization typically don't exhaust the entire quota for their team.