Amazon Ads

Monday, July 26, 2010

Multi-Tenant Architecture - First thoughts...

A Multi-Tenant Architecture:


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:
  1. Highly Scalable
  2. Configurable
  3. Cost-effective or high ROI
  4. Multi-tenant efficient  
The Challenges:

  1. To be able to configure the application for a new tenant without incurring extra operational costs or development costs for each new set up
  2. 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
3. Providing data isolation and security between the tenants’ data


 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 
2. Tenant Management
  • a. Data Model
  • b. Subscription Management
  • c. Identity Management
  • d. Delegated administration
  • e. Identity Federation
3. Tenant Customization
  • a. Meta data services
  • b. Extending application data model
  • c. UI customization
  • d. Business process customization
4. Application and Data Security
  • a. Common authentication schemes
  • b. Single sign-on
  • c. Securing data transfer
  • d. Authorizations
  • e. Data isolation schemes
5. Instrumentation & Monitoring
  • a. Health
  • b. Availability
  • c. Business performance
6. Metering
  • a. Usage Models
  • b. Data model for metering
  • c. Usage tracking architectur
7. Configuration Management
8. Infrastructure Security
  • a. Provisioning (Infrastructure, Application, Tenants)
  • b. Disaster Recovery
  • c. Billing
  • d. Network operations
9. Programmable software Services
  • a. Software service lifecycle
  • b. Service versioning
  • c. Service certification, registration & publication