When we talk about Multi-Tenancy, it is one of those terms that almost everyone has heard of, but no one defines it in the same way; in fact, unless you are a software engineer, it is not essential to know its exact meaning. Multi-Tenancy is a group of users that share the use of a single access request for data, configuration, user administration, functional and non-functional.
In other words, it is a system shared among more clients, but operates flexibly as if it were unique to one individual. In the SaaS model, the customer is called a tenant. You can use programming languages such as Mongo, Angular or Node.
Watch some more examples in this video.
What is Multi-Tenancy?
Multi-Tenancy is an architecture in which a single instance of a software application serves multiple clients. Each client is called a tenant. Tenants may have the ability to customize some parts of the application, such as the color of the user interface (UI) or business rules, but they cannot customize the application code.
In a multi-tenant architecture, multiple instances of an application operate in a shared environment. This architecture can work because each tenant is physically integrated, but logically separated; meaning that a single instance of the software will run on a server and serve multiple tenants. This way, a software application in a multi-tenant architecture can share a dedicated instance of configurations, data, user management and other properties. Multi-tenancy applications can share the same users, screens, rules, although users can customize them to some extent, as discussed above, and database schemas, which tenants can also customize.
Importance of Multi-Tenancy
Multi-tenancy has seen wide adoption and is being used more with cloud computing. This type of architecture can be found in both public cloud and private cloud environments and allow data to be separated for each tenant.
For example, in a multi-tenancy public cloud, the same servers will be used in a hosting environment to host multiple users. Each user has a separate and ideally secure space within those servers to store data. It is also important for the scalability of public and private clouds, and has helped make multi-tenancy a standard. It can also help provide better ROI for organizations, as well as speed up the pace of maintenance and upgrades for tenants.
Types of Multi-Tenancy architecture
There are three main types of multi-tenancy models, all with varying levels of complexity and cost:
Single, Shared Database Schema
This is a multi-tenancy model with a multi-tenancy database. This is the simplest form of the three and has a relatively low cost to tenants due to the use of shared resources. This form uses a single application and database instance to host the tenants and store the data. The use of a single shared database schema allows for easier scaling; however, operational costs can be higher.
Use of a single database with multiple schemas
This tenant system uses a single application instance with individual databases for each tenant. In addition, this architecture has a higher cost with more overhead with each database. It is a valuable architecture when data from different tenants has to be handled differently. For example, if they have to go through different geographical regulations.
Host data in multiple databases
This model is relatively complex in terms of management and maintenance, but tenants can be separated by a chosen criterion.
What Are the Advantages and disadvantages of Multi-Tenancy
There are a number of advantages and disadvantages that come with being a multi-tenancy accommodation provider and tenant.
- It is less expensive compared to other hosting architectures
- It offers pay-as-you-go pricing models
- You don't have to worry about upgrades, as they are delivered by the hosting provider
- You don't have to worry about the hardware on which your data is hosted
- Providers only have to monitor and manage a single system
- The architecture is easily scalable
- Multi tenancy applications tend to be less flexible than applications in other lease architectures, such as single-tenancy.
- It is generally more complex than single-tenancy.
- The applications require more stringent authentication and access controls for security
- Tenants have to worry about noisy neighbors, i.e., someone on the same CPU consuming many cycles, which can slow down response time
- Downtime can also be an issue, depending on the vendor
Key aspects of Multi-Tenancy
To create a multi-tenancy application distribution, you should focus on three key aspects:
- The resource allocation mechanism: When your goal is to reduce hardware, software and administration costs for each tenant.
- The security isolation mechanism: This aims to prevent any invalid access, conflicts and interference between tenants.
- The personalization mechanism: When the goal is to support the UI (User Interface) model for tenants, access control, process and data through configuration approaches.
Multi-Tenancy Fundamental Basics
Being a shared architecture, built-in redundancy must be provided so that the required computer, network and storage resources are still available at any time; As a potential failure could affect many customers offered by these services.
Being a shared architecture, user isolation and information storage security must be taken into account.
Likewise, equipment, network and storage performance must be isolated and guaranteed at any time during normal operation when failures occur or when some services generate problems.
The ability to administer, manage and monitor all the complete resources, offering customers to access the management of their services immediately and seamlessly.
In the end, Multi-Tenant, could be defined as an architecture in which a single instance of a software application serves multiple clients. This type of architecture makes much more sense in SAAS (Software as a Service) environments, which does not mean that it makes sense in IAAS or PAAS environments, where for example, a provider makes available to the customer SQL databases and web servers to host pages as we have explained in the video that I have left at the beginning.
Ultimately, the choice of the right provider depends strictly on the type of application that the customer wants to implement, since each of them offers a service oriented to the different paradigms existing in Cloud Computing technologies.
When evaluating a SaaS application, the right question isn’t whether or not it is Multi-Tenancy, but to what degree it is Multi-Tenancy in relation to the set of applications evaluated.