Термин « программное обеспечение Multitenancy » относится к архитектуре программного обеспечения , в которой один экземпляр из программного обеспечения работает на сервере и обслуживает несколько арендаторов. Системы, разработанные таким образом, часто называют совместно используемыми (в отличие от выделенных или изолированных ). Клиент - это группа пользователей, которые имеют общий доступ с определенными привилегиями к экземпляру программного обеспечения. При многопользовательской архитектуре программное приложение предназначено для предоставления каждому арендатору выделенного общего ресурса экземпляра, включая его данные, конфигурацию, управление пользователями, индивидуальную функциональность клиента и нефункциональные свойства.. Мультиарендность отличается от архитектуры с несколькими экземплярами, где отдельные экземпляры программного обеспечения работают от имени разных клиентов. [1]
Некоторые комментаторы рассматривают мультиарендность как важную особенность облачных вычислений . [2] [3]
Принятие
История мультитенантных приложений
Многопользовательские приложения произошли от трех типов сервисов и сочетают в себе некоторые их характеристики:
- Разделение времени : с 1960-х годов компании арендовали пространство и вычислительную мощность на мэйнфреймах ( разделение времени ), чтобы сократить расходы на вычисления. Часто они также повторно использовали существующие приложения, просто с отдельным полем ввода на экране входа в систему, чтобы указать идентификатор учетной записи клиента. На основе этого идентификатора бухгалтеры мэйнфрейма могут взимать с отдельных клиентов плату за фактически понесенное использование ЦП, памяти и диска / ленты.
- Размещенные приложения : с 1990-х годов традиционные поставщики услуг приложений (ASP) размещали (уже существующие) приложения от имени своих клиентов. В зависимости от ограничений базового приложения ASP были вынуждены размещать приложения на отдельных машинах (если несколько экземпляров приложений не могли выполняться на одной физической машине) или как отдельные процессы . Многопользовательские приложения представляют собой более зрелую архитектуру [4], которая обеспечивает аналогичные услуги с более низкими эксплуатационными расходами.
- Веб-приложения : популярные веб-приложения, ориентированные на потребителя (например, Hotmail ), разработанные с использованием одного экземпляра приложения, обслуживающего всех клиентов. Многопользовательские приложения представляют собой естественную эволюцию этой модели, предлагая дополнительную настройку групп пользователей в пределах (скажем) одной и той же клиентской организации.
Отличие от виртуализации
В многопользовательской среде несколько клиентов используют одно и то же приложение, работающее в одной операционной системе, на одном оборудовании с одним и тем же механизмом хранения данных. Различие между клиентами достигается во время разработки приложения, поэтому клиенты не обмениваются данными друг друга и не видят их. Сравните это с виртуализацией, при которой компоненты преобразуются, позволяя каждому клиентскому приложению работать на отдельной виртуальной машине. [5]
Конкурентная дифференциация
Некоторые компании активно продвигают принцип мультиарендности и используют его как источник конкурентной дифференциации. Использование мультиарендности увеличивается день ото дня. [6]
Экономика мультиарендности
Экономия на издержках
Мультиарендность позволяет снизить затраты сверх базовой экономии за счет масштаба, достигаемой за счет объединения ИТ-ресурсов в одну операцию. [7] Экземпляр приложения обычно требует определенного объема памяти и накладных расходов на обработку, которые могут быть существенными, если их умножить на множество клиентов, особенно если клиенты небольшие. Мультиарендность снижает эти накладные расходы, распределяя их между множеством клиентов. Дополнительная экономия средств может быть получена за счет затрат на лицензирование основного программного обеспечения (например, операционных систем и систем управления базами данных). Грубо говоря, если вы можете запускать все на одном экземпляре программного обеспечения, вам нужно купить только одну лицензию на программное обеспечение . Экономия затрат может затмиться трудностью масштабирования отдельного экземпляра по мере роста спроса - повышение производительности экземпляра на одном сервере может быть достигнуто только путем покупки более быстрого оборудования, такого как быстрые процессоры, больше памяти и более быстрые дисковые системы, и обычно эти затраты растут быстрее, чем если бы нагрузка была разделена между несколькими серверами примерно с одинаковой совокупной мощностью. [ необходима цитата ] Кроме того, разработка мультиарендных систем [8] является более сложной, а тестирование безопасности более жестким из-за того, что данные нескольких клиентов смешиваются.
Агрегация данных / интеллектуальный анализ данных
Одна из наиболее веских причин, по которой поставщики / независимые поставщики программного обеспечения используют мультиарендность, - это неотъемлемые преимущества агрегирования данных . Вместо того, чтобы собирать данные из нескольких источников данных с потенциально разными схемами баз данных , все данные для всех клиентов хранятся в единой схеме базы данных. Таким образом, выполнение запросов по клиентам, анализ данных и поиск тенденций намного проще. Эта причина, вероятно, преувеличена, поскольку одним из основных требований к многопользовательской среде является необходимость предотвратить доступ поставщика услуг к информации о клиенте (арендаторе). Кроме того, принято отделять рабочую базу данных от базы данных интеллектуального анализа данных (обычно из-за различных характеристик рабочей нагрузки), что еще больше ослабляет аргумент.
Сложность
Из-за дополнительной сложности настройки и необходимости поддерживать метаданные для каждого арендатора , многопользовательские приложения требуют больших усилий при разработке. Необходимо принять во внимание такие соображения, как векторная последовательность данных, инфраструктура шифруемых алгоритмов и виртуализированные интерфейсы управления. [9]
Управление релизами
Мультиарендность упрощает процесс управления выпусками. В традиционном процессе управления выпусками пакеты, содержащие изменения кода и базы данных, распространяются на клиентские настольные и / или серверные машины; в случае единственного экземпляра это будет один серверный компьютер на одного клиента. Затем эти пакеты необходимо установить на каждой отдельной машине. В многопользовательской модели пакет обычно необходимо установить только на одном сервере. Это значительно упрощает процесс управления выпусками, и масштаб больше не зависит от количества клиентов.
В то же время, мультиарендность увеличивает риски и последствия, связанные с применением новой версии выпуска. Поскольку существует один экземпляр программного обеспечения, обслуживающий несколько клиентов, обновление этого экземпляра может вызвать простои для всех клиентов, даже если обновление запрошено и полезно только для одного клиента. Кроме того, некоторые ошибки и проблемы, возникшие в результате применения новой версии, могут проявиться в персонализированном представлении приложения другими арендаторами. Из-за возможного простоя момент применения релиза может быть ограничен в зависимости от графика использования времени более чем одним арендатором.
Требования
Настройка
Многопользовательские приложения обычно должны обеспечивать высокую степень настройки для поддержки потребностей каждой целевой организации. Настройка обычно включает в себя следующие аспекты:
- Брендинг: позволяет каждой организации настраивать внешний вид приложения в соответствии со своим корпоративным брендом (часто называемым отдельной « оболочкой »).
- Рабочий процесс : учет различий в рабочем процессе для использования широким кругом потенциальных клиентов.
- Расширения модели данных : поддержка расширяемой модели данных, чтобы дать клиентам возможность настраивать элементы данных, управляемые приложением, в соответствии с их конкретными потребностями.
- Контроль доступа : позволяя каждой клиентской организации независимо настраивать права доступа и ограничения для каждого пользователя .
Качество обслуживания
Ожидается, что многопользовательские приложения будут обеспечивать адекватную изоляцию безопасности , устойчивости и производительности [10] между несколькими арендаторами, что обеспечивается уровнями ниже приложения в случае приложений с несколькими экземплярами.
Виртуализация
Затраты на перепроектирование приложений для работы с несколькими арендаторами могут быть значительными, особенно для поставщиков программного обеспечения, которые продолжают предлагать локальную однопользовательскую версию своего продукта. В конечном итоге они вынуждены поддерживать два разных продукта со всеми вытекающими затратами.
Все более жизнеспособным альтернативным путем к мультиарендности, который устраняет необходимость значительных изменений архитектуры, является использование технологии виртуализации для размещения нескольких изолированных экземпляров приложения на одном или нескольких серверах. Действительно, когда приложения переупаковываются как виртуальные устройства, один и тот же образ устройства может быть развернут в размещенных независимыми поставщиками программного обеспечения, локальных или доверенных сторонних местоположениях и даже со временем перенесен с одного сайта развертывания на другой.
Смотрите также
Рекомендации
- ^ Кребса, Rouven (2012). «Архитектурные особенности в мультитенантных приложениях SaaS» (PDF) . Труды 2-й Международной конференции по облачным вычислениям и науке об услугах (CLOSER 2012) . Конференция по облачным вычислениям и науке об услугах. SciTePress. Архивировано из оригинального (PDF) 21 февраля 2015 года . Проверено 21 февраля 2015 года .
- ^ Уэйнрайт, Фил (30 октября 2010 г.). «Определение истинного значения облака» . ZDNet . CBS Interactive . Проверено 17 марта 2016 года .
Мульти аренды. Совместное использование единого, объединенного, работающего экземпляра всей инфраструктуры сверху вниз - это больше, чем просто удобство поставщика; это единственный способ по-настоящему добиться масштаба облака.
- ^ Уайлдер, Билл (2012). Шаблоны облачной архитектуры: использование Microsoft amit . O'Reilly Media, Inc. стр. 78. ISBN 9781449357993.
В облаке стандартные службы с несколькими арендаторами: службы данных, службы DNS, оборудование для виртуальных машин, балансировщики нагрузки, управление идентификацией и т. Д.
- ^ Что такое модель зрелости архитектуры SaaS? Forbes 20 ноября 2019 г.
- ^ [1] Глупые дебаты о множественности арендаторов
- ^ Программное обеспечение как услуга: следующая большая вещь ComputerWorld 23 марта 2006 г.
- ^ «Технология Web-to-Print, сокращение затрат, увеличение продаж, интеграция с Salesforce и Metrix» . Presscentric.com . Проверено 20 января 2014 года .
- ^ «Создание приложения SaaS с помощью Codeigniter MVC» . Блог новостей компьютерных технологий . Дата обращения 5 мая 2016 .
- ^ Aulbach, S (2011). «Расширяемость и совместное использование данных в развивающихся многопользовательских базах данных». 2011 27-я Международная конференция по инженерии данных IEEE : 99–110. DOI : 10.1109 / ICDE.2011.5767872 . ISBN 978-1-4244-8959-6.
- ^ Цзэн, Цзяань (2014). Справедливая доля нескольких арендаторов в хранилищах данных NoSQL . 2014 IEEE Международная конференция по кластерным вычислениям (CLUSTER). IEEE. DOI : 10,1109 / CLUSTER.2014.6968761 .