The Billing Data Server (BDS) for premise customers follows the subscription design (model), based on the daily billing report/file being sent back to the Genesys billing systems in an automated way. The premise subscription billing includes:
- A process for dispatching data files when ready
- A process for ensuring data/file quality
- Data transfer using ports 80 and 443, which is a recommended approach
The subscription design (model):
- Is achieved by using a Docker image, which contains BDS, and which runs on the premise customers' hardware.
- Supports all tenants, those that can open connections to Genesys (online) and those that send in their usage data to Genesys manually through other channels (offline).
There are three stages (extract, transform, and loader) involved:
- The extract and transform stages pertain to BDS running on premise. Interaction of platform and cloud goes by HTTPS protocol. BDS generates billing data files in the transform stage, saves them into local folder on Docker host, and (in online mode only) uploads them to S3.
- The loader stage pertains to BDS running on the Cloud. Here, generated files are validated and transferred to the IT department through Secure File Transfer Protocol (SFTP).
The workflow implementation varies for deployments in different environments.
For all deployments
- Create a Docker image with BDS, based on the approved official Alpine image.
- Create a configuration template for subscription customers (single tenant, single region, single location).
For each online tenant, on the Genesys side
- Genesys finance sends information about a new subscription tenant.
- The BDS team, with the Operations support, provisions the IAM username for the tenant initially. Later, the process can be automated.
- The BDS team creates a S3 folder for the tenant's usage data (by creating an empty .keep file).
- On the S3 folder, the BDS team, with the Operations support, grants 'read/write' to the tenant's IAM user initially. Later, the process can be automated.
For each tenant on premise (both online and offline)
- Professional Services (PS) edits the BDS configuration template, by entering proper Genesys Info Mart (GIM) credentials, IAM keys, and so on.
- PS installs Docker on the host server.
- PS installs the Docker image, provisioning it with a configuration template and a local file directory for file storage.
- PS configures the host server's scheduler (for example, cron) to run the container once per day.
- BDS generates control files on the premise side during the extract and transform stages. They are created automatically with proper watermarks.
In BDS for premise:
- The zookeeper service is used only for locks and not for configuration.
- The json file that is generated by PS from template reads the configuration.
- The extraction results are stored on the local file system.
- The transformation results are stored on the local file system. In online mode, BDS uploads billing data files to the S3 folder.
Specific to online tenants
In the transform stage, BDS saves usage files to the host file system (mapped to a directory in container). There are no further steps for BDS.
Specific to offline tenants
After BDS saves usage files to the host file system in the transform stage, there are no further steps for BDS.
Runtime workflow on Genesys side (online only)
- BDS reads new usage files from every tenant's S3 folder and uploads the files through SFTP, resuming standard BDS pipeline. If there is no control file for a tenant, it is not processed.
- Email alerts are generated when there is no new data for a tenant for over 24 hours.
Assign each tenant an IAM Amazon username, which allows BDS to assign an isolated URL that gives admins access to configure the tenant. Admins set up user policy on the Amazon S3 bucket cloudbilling-us-west-1 under /transform_premise/<tenant name> for each tenant. Each admin has access to a folder with write permissions. The tenant uploads files to this folder.