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.