stringtranslate.com

Мультиарендность

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

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

Принятие

История многопользовательских приложений

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

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

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

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

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

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

Экономика многопользовательской аренды

Экономия средств

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

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

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

Сложность

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

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

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

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

Лучшие практики

По словам Марка Брукера, в архитектуре с несколькими арендаторами несвязанные и некоррелированные рабочие нагрузки должны быть сгруппированы вместе. Это связано с тем, что смешивание различных рабочих нагрузок с различными потребностями и шаблонами скрывает шаблоны каждой рабочей нагрузки. Группировка рабочих нагрузок снижает соотношение пиковой и средней нагрузки всей системы; отдельные рабочие нагрузки могут использовать больше ресурсов в пиковые периоды без значительного увеличения общей структуры затрат системы и впоследствии помогает вам достичь большей экономической эффективности. Обратите внимание, что несколько рабочих нагрузок из одного и того же приложения, клиента или отрасли, как правило, ведут себя как одна рабочая нагрузка. [10]

Требования

Настройка

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

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

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

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

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

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

Ссылки

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