Multi-Tenancy as a Concept

First, we must understand what Multi-Tenancy is, and how we can take advantage of it for our business.

Multi-Tenancy by definition is:

“A software architecture that allows a single instance to provide services for multiple clients.”

In other words, it is a shared system between multiple clients but operates in a flexible way and acts as if it is exclusive to a client. So, clients will feel as if they have a dedicated server for their use, but in reality, they are a fraction of a bigger system.

Multi-Tenant systems such as VitalPBX utilize three key mechanisms to ensure a secure and custom environment for each tenant.

  • It provides a mechanism for resource distribution. This means it reduces hardware
    costs as this mechanism will automatically allocate resources based on use. There is
    no need to make calculations or assumptions about the hardware needs of each
    tenant. Thus, you optimize the use of the server hardware, allowing you to integrate
    more tenants in a single server.
  • It utilizes a security isolation mechanism. This prevents invalid access and isolates
    tenants from each other. This way, tenants cannot see or access another tenant’s
    information or configurations.
  • It has a customization mechanism. This provides a UI model for each tenant,
    bringing back that theme of individuality between tenants. This supports access
    control, processes, and data through management settings. In simple words, each
    tenant will have their configurations presented in a personal format.

The advantages of using a Multi-Tenant system include the following.

  • Economy – Once again, having a Multi-Tenant environment allows you to have a more
    economic model for development and maintenance costs. Instead of deploying
    multiple virtual machines locally or with VPS (Virtual Private Server) providers, you
    distribute the cost of a single server among multiple customers.
  • Easy to Update – In a Multi-Tenant environment, like the one VitalPBX provides, you
    have easier administrative labor since it is a single instance, when you update the
    main system, all of your tenants update as well. You only need to update a single
    instance.
  • Information Security – Each tenant has their configurations and data secured as
    each tenant has separate configuration files and are separated at a database level. No
    tenant is able to access another tenant’s sensitive information or configurations.
  • Server Resource Optimization – As mentioned previously, resources are optimized
    so you can manage more tenants in a single server instance.

Now let’s make a clear comparison between Multi-Tenancy and Multi-Instancing. So, what is Multi-Instance? By definition, it is as follows.

“Multi-Instance is a type of architecture that allows for multiple companies to run on their own instance, with their own database, operating system, and application stack on the same hardware platform.”

So, you can think of Multi-Instance as multiple miniature virtual machines or containers that run as fully independent instances, hence the name Multi-Instance.

Some characteristics of Multi-Instancing can be as follows.

  • Independent Logic Storage – This means that each instance is an independent
    installation with its own allocated storage.
  • Independent Operating Systems – As each instance is a full installation, they may
    have their own operating system to run the application stack separately from other
    instances.
  • Independent Networking – Similar to the previous point, given they are independent
    installations, each instance needs to have its own networking configuration.
  • One Database Per System – Each instance will need to have its own database to
    operate.

Some disadvantages of running a Multi-Instance environment can be:

  • Too Individual – This means that management for the instances has to be provided
    for each individual instance. This can become too tedious in bigger customer bases.
  • Repetitive Actions – As each instance is its own full installation, you may need to
    perform similar configurations repeatedly for each one.
  • More Resource Expensive – Since you need to allocate hardware resources to
    create each instance, you may overcompensate the amount of resources needed for
    an instance to prevent any unusual peaks in usage.

Let’s look into Multi-Tenant with VitalPBX and how it works. VitalPBX adheres closely to the true definition of Multi-Tenancy, where you have Shared Hardware Resources. So there’s no need to allocate resources to tenants, and tenants will only use as many resources as they need. It will all be managed in a single server. It is Easy to Update for All Clients, since by updating VitalPBX from the main tenant/system with the Administrator account, all tenants are updated as well. There can be Communication Between Tenants, as you can create special trunks so tenants will be able to call each other, even if they have the same numbering plan. Each tenant can have their Connectivity to their Own VoIP Provider, giving them more freedom or a sense of individuality. Additionally, you can Centralize Trunking and Routes, so instead of configuring trunks per tenant, if you provide them their numbers and routes, you can share a main trunk and outbound routes from the main tenant/system. Finally, once again, Only One Server or Virtual Machine is needed to manage multiple tenants.

In this diagram, you can get a bird’s eye view of how Multi-Tenancy with VitalPBX works.

With the concept explained, you can see that a Multi-Tenant environment allows you to manage multiple companies with great ease and effectiveness. Now, let’s start creating our tenants in VitalPBX.

What are your feelings
Updated on December 5, 2023