Мультиарендаторство (multitenancy — «множественная аренда») — это архитектура, в которой один экземпляр программного приложения обслуживает несколько клиентов. Каждый клиент называется арендатором. Арендаторам может быть предоставлена возможность настраивать некоторые части приложения, такие как цвет пользовательского интерфейса (UI) или бизнес-правила, но они не могут настраивать код приложения.
В многоарендной архитектуре несколько экземпляров приложения работают в общей среде. Такая архитектура может работать благодаря тому, что каждый арендатор объединен физически, но логически разделен; это означает, что один экземпляр программного обеспечения будет работать на одном сервере, а затем обслуживать нескольких арендаторов. Таким образом, программное приложение в многоарендной архитектуре может совместно использовать выделенный экземпляр для конфигураций, данных, управления пользователями и других свойств.
Приложения с несколькими арендаторами могут совместно использовать одних и тех же пользователей, дисплеи, правила — хотя пользователи могут настраивать их в определенной степени — и схемы баз данных, которые арендаторы также могут настраивать.
Важность многопользовательского (multitenancy) обслуживания
Мультиарендаторство получило широкое распространение и чаще всего используется в облачных вычислениях. Многопользовательские архитектуры встречаются как в публичных, так и в частных облачных средах, позволяя отделить данные каждого арендатора друг от друга. Например, в многопользовательском публичном облаке одни и те же серверы используются для размещения нескольких пользователей. Каждому пользователю предоставляется отдельное и идеально защищенное пространство на этих серверах для хранения данных.
Мультиарендность также важна для масштабируемости публичных и частных облаков и помогла сделать мультиарендность стандартом. Многопользовательская архитектура также помогает обеспечить лучшую окупаемость инвестиций для организаций, а также ускорить темпы обслуживания и обновления для арендаторов.
Типы мультиарендной (multitenancy) архитектуры
Существует три основных типа моделей многопользовательской аренды, все они имеют разный уровень сложности и затрат. Единая, совместно используемая схема базы данных — это модель многопользовательской аренды с базой данных для нескольких арендаторов. Это самая простая форма из трех и является относительно недорогой для арендаторов из-за использования общих ресурсов. В этой форме используется одно приложение и экземпляр базы данных для размещения арендаторов и хранения данных. Использование единой, общей схемы базы данных позволяет легче масштабировать систему, однако операционные расходы могут быть выше.
Другая многоарендная архитектура включает использование одной базы данных с несколькими схемами. В такой системе для арендаторов используется один экземпляр приложения с отдельными базами данных для каждого арендатора. Кроме того, эта архитектура имеет более высокую стоимость за счет больших накладных расходов на каждую базу данных. Это ценная архитектура, когда данные от разных арендаторов должны обрабатываться по-разному — например, если они должны проходить через разные географические правила.
Третий тип архитектуры с несколькими арендаторами размещает данные в нескольких базах данных. Эта модель относительно сложна с точки зрения управления и обслуживания, но арендаторов можно разделить по выбранному критерию.
Преимущества и недостатки мультиаренды
Существует ряд преимуществ и недостатков, которые возникают, когда вы становитесь хост-провайдером и арендатором при многопользовательской аренде. Некоторые преимущества включают:
- Это менее дорогостоящий вариант по сравнению с другими архитектурами хостинга для арендаторов.
- Предлагаются модели ценообразования «плати за то, что тебе нужно».
- Арендаторам не нужно беспокоиться об обновлениях, поскольку они рассылаются хост-провайдером.
- Арендаторам не нужно беспокоиться об аппаратном обеспечении, на котором размещаются их данные.
- Провайдерам приходится контролировать и администрировать только одну систему.
- Архитектура легко масштабируется.
Однако некоторые недостатки, связанные с многопользовательской архитектурой, включают:
- Многопользовательские приложения, как правило, менее гибкие, чем приложения в других архитектурах, таких как однопользовательская.
- Многопользовательская аренда в целом сложнее, чем однопользовательская.
- Многоарендные приложения требуют более строгой аутентификации и контроля доступа для обеспечения безопасности.
- Арендаторам приходится беспокоиться о шумных соседях, то есть о том, что кто-то еще на том же процессоре потребляет много тактов, что может замедлить время отклика.
- Время простоя также может быть проблемой в зависимости от провайдера.
Примеры
В облачных вычислениях значение многопользовательской архитектуры расширилось благодаря новым моделям обслуживания, использующим преимущества виртуализации и удаленного доступа. Например, поставщик программного обеспечения как услуги (SaaS) может запустить один экземпляр своего приложения на одном экземпляре базы данных и предоставить веб-доступ нескольким клиентам. В таком сценарии данные каждого арендатора изолированы и остаются невидимыми для других арендаторов. Многопользовательский режим также может быть реализован в многоуровневых системах, таких как система SAP.
Многопользовательская система в сравнении с однопользовательской
Многопользовательскую аренду можно сравнить с однопользовательской архитектурой, в которой каждый клиент имеет свой собственный экземпляр программного обеспечения и может получить доступ к исходному коду. В однопользовательской архитектуре арендатор имеет отдельный экземпляр SaaS-приложения, предназначенный только для него, в отличие от многопользовательской, где есть общие сервисы. Поскольку каждый арендатор находится в отдельной среде, они не связаны друг с другом так, как пользователи общей инфраструктуры; это означает, что архитектуры с одним арендатором гораздо более настраиваемы.
Многопользовательская архитектура является наиболее распространенным вариантом из двух, поскольку большинство SaaS-сервисов работают на основе многопользовательской архитектуры. По сравнению с однопользовательской архитектурой, многопользовательская дешевле, имеет более эффективное использование ресурсов, меньшие затраты на обслуживание, а также потенциал для увеличения вычислительной мощности. При многопользовательской архитектуре провайдеру нужно только один раз внести обновления. При однопользовательской архитектуре провайдеру приходится обращаться к нескольким экземплярам программного обеспечения для внесения обновлений.
Потенциальный клиент, скорее всего, выберет однопользовательскую инфраструктуру, а не многопользовательскую, так как сможет получить больше контроля и гибкости в своей среде — как правило, для решения конкретных задач.