Multitenancy

Multitenancy

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.[1]

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).

Contents

Adoption

History of multitenant applications

Multitenant applications have evolved from—and combine some characteristics of—three types of services:

  1. From the 1960s companies rented space and processing power on mainframe computers (time-sharing) 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 SAP in their R/1 to R/3 ERP product ranges.
  2. From the 1990s traditional application service providers (ASPs) 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 processes. Multitenant applications represent a more mature architecture that enables a similar service with lower operational cost.
  3. Popular consumer-oriented web applications (such as Hotmail) 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 virtualization where components are abstracted enabling each customer application to appear to run on a separate physical machine.[2]

Competitive differentiation

Some companies actively promote the principle of multitenancy and use it as a source of competitive differentiation.[3][4]

Economics of multitenancy

Cost savings

Multitenancy allows for cost savings over and above the basic economies of scale achievable from consolidating IT resources into a single operation.[5] 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 metadata, 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.

Requirements

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 "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.

Quality of service

Multitenant applications are expected to provide adequate levels of security and robustness, which are provided by the operating 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 appliances 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.

Notes

  1. ^ [1] Defining the true meaning of Cloud
  2. ^ [2] The silly debate over multitenancy
  3. ^ Multi-Tenant Data Architecture MSDN Architecture Center, June 2006
  4. ^ Software as a service: The next big thing ComputerWorld 23 March 2006
  5. ^ http://www.presscentric.com/technology

Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Multitenancy — (англ. Tenancy аренда, Multitenancy множественная аренда) элемент архитектуры программного обеспечения, где единый экземпляр объекта приложения, запущенного на сервере, обслуживает множество клиентов организаций (арендаторы). Multitenancy… …   Википедия

  • Platform as a Service — Cloud Computing Architektur Platform as a Service (PaaS) ist die zur Verfügungstellung einer Computer Plattform in der Cloud für Webanwendungsentwickler. PaaS Angebote bieten eine schnell einsetzbare Laufzeitumgebung für Webanwendungen mit… …   Deutsch Wikipedia

  • Мультиарендность — (англ. Multitenancy  «множественная аренда»)  элемент архитектуры программного обеспечения, где единый экземпляр приложения, запущенного на сервере, обслуживает множество организаций клиентов («арендаторов»). Мультиарендность… …   Википедия

  • Application service provider — Types of Internet hosting service Full featured hosting Virtual private server · Dedicated hosting · …   Wikipedia

  • NetSuite — Inc. Type Public (NYSE: N) Industry Computer software Founded Cali …   Wikipedia

  • Everything as a service — ( EaaS , [http://news.cnet.com/8301 13953 3 9977049 80.html The new geek chic: Data centers] ] XaaS [ [http://www.eweek digital.com/eweek/20071105 mot/?pg=81 search=xaas+%22everything+as+a+service%22 u1=texterity cookies=1 eWeek November 5 2007]… …   Wikipedia

  • SaaS — (англ. software as a service  программное обеспечение как услуга; также англ. software on demand  программное обеспечение по требованию)  бизнес модель продажи и использования программного обеспечения, при которой… …   Википедия

  • Converged storage — Converged storage[1] is a storage architecture that combines storage and compute into a single entity.[2] This can result in the development of platforms for server centric, storage centric or hybrid workloads where applications and data come… …   Wikipedia

  • Demonolithicized application — is the result of breaking a monolithic application[1] into small manageable pieces the deliver the same or superior business results. The word derives from the Latin word monolithus from the Greek word μονόλιθος (monolithos), derived from μόνος ( …   Wikipedia

  • OrangeScape — Technologies Type Privately held company Industry Cloud Computing Founded 2003 Headquarters Chennai, Tamilnadu, India Products Platfo …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”