Cloud installation

The following section contains technical articles on the processes used during the manual Frontstage deployment to the cloud. More will be added in the future.

Important

A higher technical English level is presumed for understanding the articles because they are provided only in English.

  1. PostgreSQL installation for FrontStage

  2. Installation from Helm

  3. Manual installation

  4. PostgreSQL 101

Requirements and architecture

FrontStage contact center is designed as a cloud-native application using Kubernetes. Although deploying and running in Kubernetes (managed by you or providers like Azure) is not the only option, it is the recommended way.

Components

FrontStage is not a monolith. The components that are developed and supplied by Atlantis include:

  • GMDB - general-modeldb

  • PS - ProServer

  • PR - ProRelay

  • SS - ServiceSync

  • SA - ServiceAsync

  • SB - ServiceBulk

  • RC - ReactClient

  • RA - ReactAdmin

  • WS - WebSite

  • SL - ServiceLink

  • RS - reporting service (Superset)

Other required third-party components:

  • database (SQL Server or PostgreSQL)

  • Any of the wide list of supported PBXs.

  • A running Kubernetes cluster with Ingress Controller

  • Azure Blob Storage for storing email attachments

A FrontStage instance within a Kubernetes cluster is called a tenant. Each instance lives inside a Kubernetes namespace (e.g. “tenant1”) and requires:

  • Custom database (usually named as a namespace)

  • A Kubernetes Ingress resource that (a) routes HTTP traffic to web applications and APIs like RC or RA; (b) adds SSL encryption

Multi-tenant setup

Multi-tenant means multiple FrontStage instances on the same Kubernetes cluster. By placing instances in separate namespaces, multi-tenant really just means multiple namespaces. The operation of a single or ten FrontStage does not differ from each other in any component or configuration.

../../_images/k8s-tenants.png

Shared resources among tentants

  • MS SQL Server or PostgreSQL database - Access for administrators at the OS and DB level - HA mode (MS SQL AlwaysOn, PostgreSQL replication)

  • Kubernetes cluster - Admin access - HA achieved by cluster with multiple nodes and dedicated capacity

  • Branch exchange - Administrator access - HA achieved by redundant installation

Dedicated resources for tenants

  • MS SQL Server or PostgreSQL database - Administrator access at OS and DB level - isolation achieved by DB roles and name/password

  • Kubernetes namespace - Tenant access is not controlled - isolation is automatic thanks to Kubernetes namespaces

  • Branch exchange - Administrator access - HA achieved by redundant installation

Requirements

Software requirements are the following:

  • at least Kubernetes 1.24

  • at least SQL Server 2015 or PostgreSQL 14

Hardware requirements are difficult to specify because they depend on the number of agents, contact center operation, amount and length of stored information, etc.

You can use the following as an approximate calculation:

Application server requirements

RAM [GB] = 8 + (number_of_agents / 100) * 8

CPU [cores] = 2 + 2 * number_of_agents / 100

For example, for 240 agents you will need approx. 28 GB RAM and approx. 6-core CPU.

Database server requirements

The requirements for the database server are primarily based on the duration of data storage and whether you use emails that are stored in the database.

For every approx. 250 agents, you need 4 CPU cores, 8 GB of RAM and an HDD of approx. 100 GB when considering approx. 6 million calls and storage for 3 months.