Definition: A single instance of the application being able to serve various companies or tenants at once, providing the customized end-user experience, without having to write custom code for each tenant is said to be a multi-tenant architecture.
Benefits & Attributes:
- Highly Scalable
- Configurable
- Cost-effective or high ROI
- Multi-tenant efficient
- To be able to configure the application for a new tenant without incurring extra operational costs or development costs for each new set up
- Customization of the application can be in any of the following:
- User Interface – Native language, time zone, keyboard input styles, UI validation rules, Truncation of strings
- Storage of data in various languages – support Unicode character sets through all the layers of the application till data persistence
- Business rules and workflow patterns
- Authorization and security policies with compliance needs
- Extensions to data models based on custom requirements of tenants
Solution:
“It has to be a highly METADATA driven architecture”
The solution has to consider the following aspects while being designed:
1. Data Management
- a. Partitioning
- b. Availability
- a. Data Model
- b. Subscription Management
- c. Identity Management
- d. Delegated administration
- e. Identity Federation
- a. Meta data services
- b. Extending application data model
- c. UI customization
- d. Business process customization
- a. Common authentication schemes
- b. Single sign-on
- c. Securing data transfer
- d. Authorizations
- e. Data isolation schemes
- a. Health
- b. Availability
- c. Business performance
- a. Usage Models
- b. Data model for metering
- c. Usage tracking architectur
8. Infrastructure Security
- a. Provisioning (Infrastructure, Application, Tenants)
- b. Disaster Recovery
- c. Billing
- d. Network operations
- a. Software service lifecycle
- b. Service versioning
- c. Service certification, registration & publication