Sunday, November 6, 2022

Levels in multitenant architecture

Although Application and Database are the most frequently referred to layers for multitenancy, there are in fact several more. The right choices for multitenant architecture depend on the considerations at all these levels. Evaluation of the viability of an architecture pattern for multitenancy can be based on a list of comprehensive criteria that is drawn from all these levels.

This part of my book focuses on the levels of the multitenant architecture and the comparisons of the criteria. There were references to seventeen criteria earlier that included Time Behavior, Resource Utilization, Throughput, Number of tenants, Number of end-users, Availability, Recoverability, Confidentiality, Integrity, Authenticity, Maintainability, Portability, Deployment Time, Variability, Diverse SLA, Software complexity and Monitoring. All of these are quantifiable attributes that can help differentiate one model from another. These criteria can evaluate differences within these layers.

 A stack of different levels from top to bottom would include Hardware, Virtual Machine, Operating System, Database Server, Database, Database Schema, Middleware, Application Server, and Application Instance. When multitenancy is applied at a specific level, the levels below that level are shared among the tenants. Isolation occurs at the levels above that level.

Even when tenants are consolidated in a single database, each tenant can operate on isolated set of tables with proper naming conventions. In a schema-level, isolation occurs at row-level of table. Conceptually, it is easy to differentiate between the levels as Application related layer set and Data related layer set. Within each of these layer sets, it is possible to segregate ascending levels of sharing. With the help of following notations, it is easy to compare multitenant architectures:

AD-  A dedicated application server is running for each tenant, and therefore, each tenant receives a dedicated application instance.

AS – a single application server is running for multiple tenants and each tenant receives a dedicated application instance.

AI – a single application server is running for multiple tenants and a single application instance is running for multiple tenants.

Similarly, for the data related layer set:

DD – a dedicated database server is running for each tenant and therefore the database is also isolated.

DS – a single database server is running for multiple tenants and each tenant gets an isolated database.

DB – a single database server and a single database is being used for multiple tenants

DC – a single database server is running for multiple tenants and data from multiple tenants is stored in a single database and in a single set of tables with same database schema but separation based on records.

Some common occurrences of Multitenant architectures include the following pairs from the application and the data related layer sets: (AD, DD), (AS, DD), (AI, DD), (AD, DS), (AS, DS), (AI, DS), (AD, DB), (AS, DB), (AI, DB), (AD, DC), (AS, DC), (AI, DC)

No comments:

Post a Comment