Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Updated using 4PSA automated script

...

Table of Contents
maxLevel3

4psafasttrack
NameFast Track

In this section, we will detail each role in order to determine provisioning constraints such as:

You are free to go solely through the tables if you are confident about your infrastructure. At the same time, we understand that some things might get complicated, that's why we provide infrastructure design consulting services.

Networking requirements

Public and private

...

RolePrivate Network *Public NetworkNotes
SQLRequiredNot requiredWe strongly discourage exposing SQL nodes in a public network.
Distributed DatabaseRequiredNot requiredWe strongly discourage exposing Distributed Database nodes in a public network.
If there are more than 3 extensions on the server, the Distributed Database role cannot be assigned
ElasticsearchRequiredNot requiredWe strongly discourage exposing Elasticsearch nodes in a public network.
Web Management InterfaceRequiredRequiredTechnically could run on a private IP as well, but a HTTP load balancer (that obviously runs on a public IP) is required.
SIPRequiredRequiredPrivate IP required for management purposes.
PBXRequiredRequiredPrivate IP required for management purposes.
JabberRequiredRequiredPrivate IP required for management purposes.
Infrastructure ControllerRequiredOptionalThe public IP is necessary only if it's impossible to access the infrastructure controller management interface through private network.Queue
RequiredNot requiredWe strongly discourage exposing Queue nodes exposed in a public network.WorkerRequiredNot requiredWe strongly discourage exposing Worker nodes exposed in a public network.

...

RoleOutcomeRecommended HA strategy
SQLSystem is not affected if one of the slave nodes is lost, but system functionality is totally lost when master MySQL node goes down.
Status
colourYellow
titleOS LEVEL
Deploy a MySQL cluster. Protect MySQL master node with virtualization layer HA technologies.
Distributed DatabaseSystem is not affected as long as quorum exists..
Status
colourGreen
titleAPP LEVEL
Deploy a HubRing cluster.
ElasticsearchSystem is not affected as long as quorum exists..
Status
colourGreen
titleAPP LEVEL
Deploy an Elaasticsearch cluster.
Web Management InterfaceSystem is not affected as long as a health based balancer is configured to distribute requests to web management interface nodes.
Status
colourGreen
titleAPP LEVEL
Use a redundant load balancer in front of web management interface nodes.
SIPA group of customers is affected, phone functionality is lost, current calls are not be dropped.
Status
colourYellow
titleOS LEVEL
Protect SIP nodes using virtualization layer HA technologies.
PBXA group of customers is affected, phone calls are dropped, no loss of functionality after.
Status
colourYellow
titleOS LEVEL
Protect PBX nodes using
virtualization layer HA technologies.
JabberSystem is not affected as long as quorum exists..
Status
colourGreen
titleAPP LEVEL
Deploy an Ejabberd cluster.
Infrastructure ControllerInfrastructure provisioning affected.
Status
colourYellow
titleOS LEVEL
Protect Infrastructure Controller node using virtualization layer HA technologies.
QueueSystem is not affected as long as quorum exists..
Status
colourGreen
titleAPP LEVEL
Deploy a RabbitMQ cluster.
WorkerSystem is not affected as long as a sufficient number of worker nodes survive the event in order to be able to process requests.
Status
colourGreen
titleAPP LEVEL
Deploy a sufficient number of Worker nodes.

...

RoleCPUMemoryI/OExample: Amazon EC2 Instance Type *
SQLHighVery HighVery HighHigh I/O Quadruple Extra Large Instance
Distributed DatabaseModerateHighModerateLarge Instance
ElasticsearchModerateHighModerateLarge Instance
Web Management InterfaceHighLowLowHigh-CPU Extra Large Instance
SIPHighModerateLowHigh-CPU Extra Large Instance
PBXHighModerateModerateHigh-CPU Extra Large Instance
JabberModerateModerateLowLarge Instance
Infrastructure ControllerLowLowLowSmall Instance
QueueModerateLowLowMedium Instance
WorkerHigh ModerateLowHigh-CPU Extra Large Instance

...

RoleNode TypeMin/Max NodesComments
SQLMaster1/1A single MySQL node can sustain a large infrastructure. We support sharding to address the cases when a single master MySQL node becomes a limitation.
SQLSlave0/4Slaves offload some queries from the master. It's not necessary to deploy slaves, but if you do, keep their number to a maximum of four.
Distributed Database-1/128The number of distributed database nodes must not be changed for the system lifetime, but this is not a problem because, for the start, you can use virtual machines or instances with very limited resources.
Elasticsearch-1/ClusterIt is recommended to deploy an Elasticsearch cluster.
Web Management Interface-1/No limitYou can add nodes dynamically, based on the web interface utilization.
SIP-1/No limitThe SIP role uses dynamic sharding. This means that customers are assigned automatically to one of the existing SIP roles. That's why you cannot remove SIP nodes after these are provisioned. You can start with one and add more as capacity increases demand it.
PBX-1/No limitThe PBX nodes are dynamically chosen by VoipNow. This means that you can remove PBX nodes that are not used. You can start with one and add more capacity when telephony utilization information shows this.Jabber-1/ClusterIt is recommended to deploy an Ejabberd cluster.

Infrastructure Controller

-1/3A single node running the infrastructure controller is necessary, but it can be protected with Fault Tollerance technologies.Queue-1/ClusterIt is recommended to deploy a RabbitMQ cluster.
Worker-1/No limitYou can add nodes dynamically, based on the worker layer utilization.

...

Except where otherwise noted, content in this space is licensed under a Creative Commons Attribution 4.0 International.