Multitenancy in Web Application Development

Posted By :Akash Poria |31st March 2020

Introduction

A software architecture in which multiple single instances of software run on a single physical server is called Multitenant architecture. The server then serves multiple tenants. Tenants can be given the ability to customize some parts of the application according to their needs, such as the colour of the user interface (UI) or business rules, but they cannot customize the application's code.In a multi-tenant architecture, various instances of an application operate in a shared environment. This architecture works perfectly because each tenant is integrated physically but logically separated. This means that multiple tenants will be served by a single instance of the software running on one server.


Image Credits : Single vs Multi-tenant

Types of Multi-tenant models

There are three main multi-tenancy model types with varying levels of complexity and costs. 
    1. Single, shared database schema multi-tenancy model
        It is the simplest form which has a relatively low cost for tenants because of the use of shared database schema. This model uses a single application and database instance to                 host tenants and store data. This model  allows for easier scaling. However, operational costs can be higher for scaling in this model.

    2. Single database with multiple schemas multi-tenancy model
        This model uses a single application instance with individual databases for each tenant. This architecture costs more overhead with each database. This model is important when    data from different tenants need to be treated differently  such as if they had to go through different geographic regulations.

    3. Multiple databases multi-tenancy model
        This model is relatively complex than both the above models in terms of management and maintenance, but tenants can be separated by a chosen criterion.

Advantages

1.It is more budget friendly when compared to other tenant hosting architectures.
2.Tenants don't have to worry about updates and hardware. Everything is done by the host provider.
3.Providers only have to monitor and administrate a single system and the architecture is easily scalable.

Disadvantages


1.Multi-tenant apps tend to be less flexible and more complex than single tenant apps.
2.Multi-tenant apps need stricter authentication rules and access controls for security purpose.
3.Tenants have to worry about neighbours, meaning someone else on the same CPU can consumes a lot of cycles, which may slow response time.

 


 


About Author

Akash Poria

Akash is an experienced Java developer with experience in Web development using Spring,Hibernate. His hobbies are playing cricket and travelling to mountains.

Request For Proposal

[contact-form-7 404 "Not Found"]

Ready to innovate ? Let's get in touch

Chat With Us