Multitenancy
From Wikipedia, the free encyclopedia
Multitenancy refers to the architectural principle, where a single instance of the software runs on a software-as-a-service (SaaS) vendor's servers, serving multiple client organizations (tenants). Multitenancy is contrasted with a multi-instance architecture where separate software instances (or hardware systems) are set up for different client organizations. With a multitenanet architecture, a software application is designed to virtually partition its data and configuration so that each client organization works with a customized virtual application instance.
[edit] Characteristics of Multitenant Applications
Multitenant applications are typically required to provide a high degree of customization to support each target oragnization's needs. Customization typically includes the following aspects[1]:
- Branding: allowing each organization to customize the look-and-feel of the application to match their corporate branding (often referred to as a distinct "skin").
- Workflow: accommodating differences in workflow to be used by a wide range of potential customers.
- Extensions to the data model: supporting an extensible data model to give customers the ability to customize the data elements managed by the application to meet their specific needs.
- Access control: letting each client organization independently customize access rights and restrictions for each user.
Multitenant applications must also be architected to provide adequate levels of security and robustness, which are provided by the operating system in the case of multi-instance applications.
Because of the additional customization complexity and the need to maintain per-tenant metadata, multitenant applications require a larger development effort than applications designed using a more isolated approach. But, because they can support more tenants per server, their ongoing operational costs tend to be lower.[2]
[edit] Evolution of Multitenant Applications
Multitenant applications have evolved from—and combine some characteristics of—two types of services:
- Dating back to the 1990s, traditional application service providers (ASPs) hosted (then-existing) applications on behalf of their customers. Depending on the limitation of the underlying application, APSs were forced to host applications on separate machines (if multiple instances of the applications could not be executed in the same physical machines) or as separate processes. Multitenant applications represent a more mature architecture that enables a similar service with lower operational cost.
- Popular consumer-oriented services (such as Hotmail) were naturally architected as a (cost-effective and scalable) single application instance that serves all customers. Multitenant applications represent a natural evolution from this model, offering additional customization to a group or users within the same client organization.