Мульти аренды - Multitenancy

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

Некоторые комментаторы рассматривают мультиарендность как важную особенность облачных вычислений .

Принятие

История мультитенантных приложений

Многопользовательские приложения произошли от трех типов сервисов и сочетают в себе некоторые их характеристики:

  1. Разделение времени : с 1960-х годов компании арендовали пространство и вычислительную мощность на мэйнфреймах ( разделение времени ), чтобы сократить расходы на вычисления. Часто они также повторно использовали существующие приложения, просто с отдельным полем ввода на экране входа в систему, чтобы указать идентификатор учетной записи клиента. На основе этого идентификатора бухгалтеры мэйнфрейма могут взимать с отдельных клиентов плату за фактически понесенное использование ЦП, памяти и диска / ленты.
  2. Размещенные приложения : с 1990-х годов традиционные поставщики услуг приложений (ASP) размещали (уже существующие) приложения от имени своих клиентов. В зависимости от ограничений базового приложения ASP были вынуждены размещать приложения на разных машинах (если несколько экземпляров приложений не могли выполняться на одной физической машине) или как отдельные процессы . Многопользовательские приложения представляют собой более зрелую архитектуру, которая позволяет использовать аналогичные услуги с более низкими эксплуатационными расходами.
  3. Веб-приложения : популярные веб-приложения, ориентированные на потребителя (например, Hotmail ), разработанные с использованием одного экземпляра приложения, обслуживающего всех клиентов. Многопользовательские приложения представляют собой естественную эволюцию этой модели, предлагая дополнительную настройку для групп пользователей в пределах (скажем) одной и той же клиентской организации.

Отличие от виртуализации

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

Конкурентная дифференциация

Некоторые компании активно продвигают принцип мультиарендности и используют его как источник конкурентной дифференциации. Использование мультиарендности увеличивается день ото дня.

Экономика мультиарендности

Экономия затрат

Мультиарендность позволяет снизить затраты сверх базовой экономии за счет масштаба, достигаемой за счет консолидации ИТ-ресурсов в одну операцию. Экземпляр приложения обычно требует определенного объема памяти и накладных расходов на обработку, которые могут быть существенными, если их умножить на множество клиентов, особенно если клиенты небольшие. Мультиарендность снижает эти накладные расходы, распределяя их между множеством клиентов. Дополнительная экономия средств может быть получена за счет затрат на лицензирование основного программного обеспечения (например, операционных систем и систем управления базами данных). Грубо говоря, если вы можете запускать все на одном экземпляре программного обеспечения, вам нужно купить только одну лицензию на программное обеспечение . Экономия затрат может затмиться трудностью масштабирования отдельного экземпляра по мере роста спроса - повышение производительности экземпляра на одном сервере может быть достигнуто только путем покупки более быстрого оборудования, такого как быстрые процессоры, больше памяти и более быстрые дисковые системы, и обычно эти затраты растут быстрее, чем если бы нагрузка была разделена между несколькими серверами примерно с одинаковой совокупной мощностью. Кроме того, разработка мультитенантных систем является более сложной, а тестирование безопасности более строгим из-за того, что данные нескольких клиентов объединяются.

Агрегация данных / интеллектуальный анализ данных

Одна из наиболее веских причин, по которой поставщики / независимые поставщики программного обеспечения используют мультиарендность, - это неотъемлемые преимущества агрегирования данных . Вместо сбора данных из нескольких источников данных с потенциально разными схемами базы данных , все данные для всех клиентов хранятся в единой схеме базы данных. Таким образом, выполнение запросов по клиентам, анализ данных и поиск тенденций намного проще. Эта причина, вероятно, преувеличена, поскольку одним из основных требований к многопользовательской среде является необходимость предотвратить доступ поставщика услуг к информации о клиенте (арендаторе). Кроме того, принято отделять рабочую базу данных от базы данных интеллектуального анализа данных (обычно из-за различных характеристик рабочей нагрузки), что еще больше ослабляет аргумент.

Сложность

Из-за дополнительной сложности настройки и необходимости поддерживать метаданные для каждого арендатора , многопользовательские приложения требуют больших усилий по разработке. Необходимо учитывать такие соображения, как векторная последовательность данных, инфраструктура шифруемых алгоритмов и виртуализированные интерфейсы управления.

Управление релизами

Мультиарендность упрощает процесс управления выпусками. В традиционном процессе управления выпусками пакеты, содержащие изменения кода и базы данных, распространяются на клиентские настольные и / или серверные машины; в случае единственного экземпляра это будет один серверный компьютер на одного клиента. Затем эти пакеты необходимо установить на каждой отдельной машине. В многопользовательской модели пакет обычно необходимо установить только на одном сервере. Это значительно упрощает процесс управления выпусками, и масштаб больше не зависит от количества клиентов.

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

Требования

Настройка

Многопользовательские приложения обычно должны обеспечивать высокую степень настройки для поддержки потребностей каждой целевой организации. Настройка обычно включает в себя следующие аспекты:

  • Брендинг: позволяет каждой организации настраивать внешний вид приложения в соответствии со своим корпоративным брендом (часто называемым отдельной « оболочкой »).
  • Рабочий процесс : учет различий в рабочем процессе для использования широким кругом потенциальных клиентов.
  • Расширения модели данных : поддержка расширяемой модели данных, чтобы дать клиентам возможность настраивать элементы данных, управляемые приложением, в соответствии с их конкретными потребностями.
  • Контроль доступа : позволяя каждой клиентской организации независимо настраивать права доступа и ограничения для каждого пользователя .

Качество обслуживания

Ожидается, что многопользовательские приложения обеспечат адекватную изоляцию безопасности , устойчивости и производительности между несколькими арендаторами, что обеспечивается уровнями ниже приложения в случае приложений с несколькими экземплярами.

Виртуализация

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

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

Смотрите также

использованная литература