Мультиарендность — Википедия

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

Принципы мультиарендности не являются повсеместно принятыми и поддерживающимися внутри индустрии программного обеспечения, однако их использование может являться источником конкурентных преимуществ.

История[править | править код]

Первые приложения с поддержкой мультиарендности с разграничением времени относятся к 1960-м годам, когда организации арендовали пространство и вычислительные мощности на мейнфреймах, и хотя при каждом подключении организации отдел учёта пользователей готовил процессор, память и пространство хранения, экземпляр приложения мог быть единым. Этот метод продолжает использоваться в SAP ERP в продуктах линеек R/1 — R/2 — R/3 (каждая аренда в этих системах называется нем. mandant).

С 1990-х годов распространилась практика предоставления через интернет приложений для множества организаций-заказчиков. Завися от ограничений основных приложений, ASP размещает приложения на различных машинах (если множество экземпляров приложений не может быть запущено на одной физической машине) или разделяет процессы. Мультиарендные приложения представляют более зрелую архитектуру, которая делает доступными простые службы с низкими операционными затратами.

В некотором смысле мультиарендными можно считать потребительские веб-приложения, появившиеся в конце 1990-х годов и позднее — они как правило создаются как экземпляр единого приложения, обслуживающего одновременно всех заказчиков. Использование в таких приложениях групп пользователей (например, представляющих одну организацию-клиента) фактически обеспечивает мультиарендность с точки зрения обслуживания организаций-заказчиков.

Эффективность[править | править код]

Многие разработчики и провайдеры мультиарендных приложений считают свойство источником конкурентного преимущества: мультиарендность позволяет экономить на масштабах, поскольку экземпляр приложения обычно берёт на себя определённую долю памяти и вычислительных расходов, которые могут быть существенными при умножении на большое количество клиентов. Мультиарендность уменьшает эти вычислительные расходы амортизируя их на большинство клиентов. В дальнейшем экономия может достигаться от снижения затрат на лицензирование программного обеспечения (такие как операционная система, система управления базами данных, связующее программное обеспечение). Однако, разработка мультиарендной системы — достаточно сложная задача, и требует дополнительных ресурсов тестирования безопасности и изоляции клиентов.

С распространением виртуализации чаще применяется альтернативный подход к обслуживанию множества подписчиков одного приложения — выделение для каждого клиента отдельного экземпляра приложения, запущенного в отдельной виртуальной машине (возможно, с использованием общих инфраструктурных и платформных ресурсов с другими экземплярами). Хотя такой подход как правило не позволяет достичь столь же значительной экономии на масштабах, как мультиарендность, однако не требует затрат на разработку мультиарендной системы, позволяя запускать таким образом любые приложения без программной модификации.