What is Multi Tenancy? Multi Tenancy Architecture
Introduction to Multi Tenancy
Advent of cloud computing had brought many new models of delivery and services in Infrastructure services, Application services, Network services and so on. Cloud computing provides a cost-effective way to use computing resources, share applications, share databases, share network resources etc.
In the software industry, customers could have diverse requirements and if software products are implemented according to every customer’s needs separately and delivered then implementation timelines would be more, and maintenance would also become cumbersome. Multi tenancy comes as a solution to provide solutions to all problems faced by software providers to satisfy diverse customer needs.
One such term which is very popular in cloud computing environment is ‘Multi Tenancy’.
What is Multi Tenancy?
Multi Tenancy is an architecture which supports a single instance of a software application to be used by multiple users called ‘Tenants’. Cloud computing architecture has broadened the multi tenancy architecture due to new service models which are using technologies like virtualization and remote access services. Software as a service (SaaS) model runs one single instance of software application on a single instance of database and provides access via web to multiple users. Multi-tenant data is separated and remain invisible to other users (tenants).
The users or tenants have some flexibility to modify the look and feel of the application presentation interface, but they can’t customize the source code of the application. The tenants operate in a shared environment and they are physically integrated but there is a logical separation due to which each tenant data is stored separately on a common storage in the cloud.
Multi tenancy is supported both on Public and Private cloud architecture. Multi tenancy architecture gives a better Return on Investment (ROI) as it brings down costs and aid in quicker maintenance and updates.
Multi Tenancy Architecture
Multi tenancy architecture can be divided into three categories based on its complexity and costs. We will learn about them more in detail in consecutive sections.
A single , shared database schema – this is the simplest form of multi tenancy model which has relatively low costs due to use of shared resources. This form uses a single application and a single database instance to host tenants and for data storage. Scaling is easier but operational costs are high. This is also known as the ‘Shared Everything’ model. All resources are shared equally between all tenants. There are some inherent risks in this model such as implementing such a complex model could be challenging for all resources at all levels, business risks could arise due to data sharing between users, limited scope for backup and restore functionality, load balancing and distribution is complex.
A single, multiple databases schema – use a single database with multiple schemas, this model has multiple tenants, but databases are individual for each tenant which are identified by unique IDs assigned to each customer. It involves high costs due to additional overheads to manage individual databases. This kind of architecture is useful when tenants are spread geographically and require data from different tenants to be treated differently as per geographic regulations.
Multi-tenant architecture with multiple databases – is a complex model as it involves management and maintenance high costs. Highly suited for multi-tenant SaaS where multiple schemas and restrictions are implemented at database level to have more closed interactions.
Multi tenancy features in many cloud computing models including SaaS, PaaS, containers and serverless computing , public cloud computing.
Some of the popular examples of multi tenancy applications are Gmail, Good drive, Yahoo etc.
Multi Tenancy Pros and Cons
- Less expensive
- Pricing model based on pay to what you need offerings
- Updates are pushed through host providers
- Hardware is managed by provider
- Single system maintenance and administration
- Easily scalable architecture
- Variety of licensing models and membership options
- Personalized and customized reporting
- Custom end user sceneries and preferences
- Same software version across all customers
- Application can be tailored to specific business needs without expensive , time consuming, and risky customer development
- Limited interoperability between providers
- More complex architecture
- Response time could be slow due to nosy neighbours as same CPU consumes a lot of cycle (shared)
- Downtime issues depending on provider
- Data security concerns
The global market for multi-tenant LMS (SaaS) is expected to grow $30 billion by 2026.
Public vs Private vs Hybrid vs Community Clouds