stringtranslate.com

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

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

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

Принятие

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

Мультитенантные приложения произошли от трех типов сервисов и объединили в себе некоторые их характеристики:

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

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

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

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

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

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

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

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

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

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

Сложность

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

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

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

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

Требования

Кастомизация

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

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

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

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

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

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

Рекомендации

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