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.
No comments:
Post a Comment