Multitenant
Encyclopedia
Multitenancy refers to a principle in software architecture
where a single instance of the software
runs on a server, 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 multitenant architecture, a software application
is designed to virtually partition its data and configuration, and each client organization works with a customized virtual application instance.
Multitenancy is also regarded as one of the essential attributes of Cloud Computing
.
The principle of multitenancy is not universally accepted and supported within the software industry, and this may be a source of competitive differentiation (see below).
where components are abstracted enabling each customer application to appear to run on a separate physical machine.
The cost savings can be eclipsed by the difficulty of scaling the single instance (a bigger, faster server can only take one so far) as demand grows. In addition, development of multitenant systems is more complex, and security testing is more stringent.
, multitenant applications require a larger development effort.
At the same time, multitenancy increases the risk of applying a new release version and the effects of that. As there is a single software instance serving multiple tenants, an update on this instance may cause downtime for all tenants even if the update is requested and useful for only one tenant. Also, some bugs and issues resulted from applying the new release could manifest in other tenants' personalized view of the application. Because of possible downtime, the moment of applying the release may be restricted depending on time usage schedule of more than one tenant.
and robustness, which are provided by the operating system
in the case of multi-instance applications.
An increasingly viable alternative route to multitenancy that eliminates the need for significant architectural change is to use virtualization technology to host multiple isolated instances of an application on one or more servers. Indeed, when applications are repackaged as virtual appliance
s the same appliance image can be deployed in ISV hosted, on-premises or trusted-third party locations and even migrated from one deployment site to another over time.
Software architecture
The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both...
where a single instance of the software
Computer software
Computer software, or just software, is a collection of computer programs and related data that provide the instructions for telling a computer what to do and how to do it....
runs on a server, 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 multitenant architecture, a software application
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...
is designed to virtually partition its data and configuration, and each client organization works with a customized virtual application instance.
Multitenancy is also regarded as one of the essential attributes of Cloud Computing
Cloud computing
Cloud computing is the delivery of computing as a service rather than a product, whereby shared resources, software, and information are provided to computers and other devices as a utility over a network ....
.
The principle of multitenancy is not universally accepted and supported within the software industry, and this may be a source of competitive differentiation (see below).
History of multitenant applications
Multitenant applications have evolved from—and combine some characteristics of—three types of services:- From the 1960s companies rented space and processing power on mainframe computers (time-sharingTime-sharingTime-sharing is the sharing of a computing resource among many users by means of multiprogramming and multi-tasking. Its introduction in the 1960s, and emergence as the prominent model of computing in the 1970s, represents a major technological shift in the history of computing.By allowing a large...
) to reduce computing expenses. Often they also reused existing applications, with simply a separate entry field on the logon screen to specify their customer account ID. On the basis of this ID, the mainframe accounting department could then charge the individual customers for CPU, memory and disk/tape usage actually incurred. This approach was continued by SAPSAP AGSAP AG is a German software corporation that makes enterprise software to manage business operations and customer relations. Headquartered in Walldorf, Baden-Württemberg, with regional offices around the world, SAP is the market leader in enterprise application software...
in their R/1 to R/3 ERP product ranges. - From the 1990s traditional application service providers (ASPs)Application service providerAn application service provider is a business that provides computer-based services to customers over a network. Software offered using an ASP model is also sometimes called On-demand software or software as a service ....
hosted (then-existing) applications on behalf of their customers. Depending on the limitation of the underlying application, ASPs were forced to host applications on separate machines (if multiple instances of the applications could not be executed in the same physical machine) or as separate processesProcess (computing)In computing, a process is an instance of a computer program that is being executed. It contains the program code and its current activity. Depending on the operating system , a process may be made up of multiple threads of execution that execute instructions concurrently.A computer program is a...
. Multitenant applications represent a more mature architecture that enables a similar service with lower operational cost. - Popular consumer-oriented web applications (such as HotmailHotmailWindows Live Hotmail, formerly known as MSN Hotmail and commonly referred to simply as Hotmail, is a free web-based email service operated by Microsoft as part of its Windows Live group. It was founded by Sabeer Bhatia and Jack Smith and launched in July 1996 as "HoTMaiL". It was one of the first...
) were functionally designed as a 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.
Differentiation from virtualization
In a multitenancy environment, multiple customers share the same application, running on the same operating system, on the same hardware, with the same data-storage mechanism. The distinction between the customers is achieved during application design, thus customers do not share or see each other's data. Compare this with virtualizationHardware virtualization
Computer hardware virtualization is the virtualization of computers or operating systems. It hides the physical characteristics of a computing platform from users, instead showing another abstract computing platform...
where components are abstracted enabling each customer application to appear to run on a separate physical machine.
Competitive differentiation
Some companies actively promote the principle of multitenancy and use it as a source of competitive differentiation.Cost savings
Multitenancy allows for cost savings over and above the basic economies of scale achievable from consolidating IT resources into a single operation. An application instance usually incurs a certain amount of memory and processing overhead which can be substantial when multiplied by many customers, especially if the customers are small. Multitenancy reduces this overhead by amortizing it over many customers. Further cost savings may come from licensing costs of the underlying software (such as operating systems and database management systems). Put crudely, if you can run everything on a single software instance, you only have to buy one software license.The cost savings can be eclipsed by the difficulty of scaling the single instance (a bigger, faster server can only take one so far) as demand grows. In addition, development of multitenant systems is more complex, and security testing is more stringent.
Data aggregation/data mining
One of the most compelling reasons for vendors/ISVs to utilize multitenancy is for the inherent data aggregation benefits. Instead of collecting data from multiple data sources, with potentially different database schemas, all data for all customers is stored in a single database schema. Thus, running queries across customers, mining data, and looking for trends is much simpler. This reason is probably overhyped as one of the core multitenancy requirements is the need to prevent Service Provider access to customer (tenant) information. Further, it is common to separate the operational database from the mining database (usually because of different workload characteristics), thus weakening the argument even more.Complexity
Because of the additional customization complexity and the need to maintain per-tenant metadataMetadata
The term metadata is an ambiguous term which is used for two fundamentally different concepts . Although the expression "data about data" is often used, it does not apply to both in the same way. Structural metadata, the design and specification of data structures, cannot be about data, because at...
, multitenant applications require a larger development effort.
Release management
Multitenancy simplifies the release management process. In a traditional release management process, packages containing code and database changes are distributed to client desktop and/or server machines. These packages then have to be installed on each individual machine. With the multitenant model, the package typically only needs to be installed on a single server. This greatly simplifies the release management process.At the same time, multitenancy increases the risk of applying a new release version and the effects of that. As there is a single software instance serving multiple tenants, an update on this instance may cause downtime for all tenants even if the update is requested and useful for only one tenant. Also, some bugs and issues resulted from applying the new release could manifest in other tenants' personalized view of the application. Because of possible downtime, the moment of applying the release may be restricted depending on time usage schedule of more than one tenant.
Customization
Multitenant applications are typically required to provide a high degree of customization to support each target organization's needs. Customization typically includes the following aspects:- Branding: allowing each organization to customize the look-and-feel of the application to match their corporate branding (often referred to as a distinct "skinSkin (computing)In computing, a skin is a custom graphical appearance achieved by the use of a graphical user interface that can be applied to specific software and websites to suit the purpose, topic, or tastes of different users....
"). - WorkflowWorkflowA workflow consists of a sequence of connected steps. It is a depiction of a sequence of operations, declared as work of a person, a group of persons, an organization of staff, or one or more simple or complex mechanisms. Workflow may be seen as any abstraction of real work...
: accommodating differences in workflow to be used by a wide range of potential customers. - Extensions to the data modelData modelA data model in software engineering is an abstract model, that documents and organizes the business data for communication between team members and is used as a plan for developing applications, specifically how data is stored and accessed....
: 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 controlAccess controlAccess control refers to exerting control over who can interact with a resource. Often but not always, this involves an authority, who does the controlling. The resource can be a given building, group of buildings, or computer-based information system...
: letting each client organization independently customize access rights and restrictions for each userUser (computing)A user is an agent, either a human agent or software agent, who uses a computer or network service. A user often has a user account and is identified by a username , screen name , nickname , or handle, which is derived from the identical Citizen's Band radio term.Users are...
.
Quality of service
Multitenant applications are expected to provide adequate levels of securityComputer security
Computer security is a branch of computer technology known as information security as applied to computers and networks. The objective of computer security includes protection of information and property from theft, corruption, or natural disaster, while allowing the information and property to...
and robustness, which are provided by the operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
in the case of multi-instance applications.
Virtualization
The costs of re-designing applications for multitenancy can be significant, especially for software vendors who continue to offer an on-premises single tenant version of their product. They end up being forced to support two distinct products with all the resulting costs.An increasingly viable alternative route to multitenancy that eliminates the need for significant architectural change is to use virtualization technology to host multiple isolated instances of an application on one or more servers. Indeed, when applications are repackaged as virtual appliance
Virtual appliance
A virtual appliance is a virtual machine image designed to run on a virtualization platform ....
s the same appliance image can be deployed in ISV hosted, on-premises or trusted-third party locations and even migrated from one deployment site to another over time.