[Решение] Введение в проектирование многопользовательской технической архитектуры
[Решение] Введение в проектирование многопользовательской технической архитектуры
1. Концепция мультиарендности
Мультиарендность — это, по сути, архитектура программных технологий.,его ядроизособенностьдаНесколько арендаторов могут совместно использовать один экземпляр системы.И комната арендаторада МожетРеализация изоляции данных и поведения,Можно сказать, что это два наиболее важных момента в многопользовательской технической архитектуре.
Мультитенантная архитектура – это SaaS Важная и общая архитектура модели снижает затраты и повышает эффективность и масштабируемость за счет совместного использования и повторного использования ресурсов. Среди наиболее необходимых фокусов на Сразуда:Изоляция данных/поведения、Личность/роль Аутентификация и авторизация、Базовое управление аппаратными ресурсами、Высокая производительность и высокая доступность、Настраиваемый и масштабируемый、согласованность данных、Безопасность системы и т. д.
Я не буду здесь вдаваться в подробности, а концепции будут подробно изложены ниже. Если мы хотим найти простой для понимания жизненный сценарий в качестве метафоры, то концепция нескольких арендаторов фактически аналогична концепции аренды дома, за исключением того, что терминология и конкретная реализация, используемые в соответствующих профессиональных областях, будут быть другим.
2. Режим изоляции
Вообще говоря, существует три распространенных режима изоляции для мультитенантов: независимая база данных, общие данные, но независимая архитектура данных, общая база данных и общая архитектура данных.
2.1 Режим независимой базы данных
Пример схемы автономной базы данных
2.1.1 Характеристики
Один арендатор имеет одну базу данных с самым высоким уровнем изоляции, который изолирует вычислительные, хранилища, сетевые и другие ресурсы, задействованные на нижнем уровне системы.
Отличия от традиционной модели программного обеспечения (SaaS):
Режим автономной базы данных имеет стандартную идентификацию арендатора.、Процесс адаптации арендаторов、Биллинговая система、Операционные процессы и т.д.кроме,По сути, это обеспечивает Служитьтакжедаэндтоиз SaaS В каком-то смысле каждый арендатор имеет свой набор сквозной инфраструктуры.
2.1.2 Преимущества
удовлетворитьСильная изоляциянуждаться:Для обеспечения безопасности системы и данных некоторые арендаторыизбезопасность,Могут быть введены очень строгие карантинные требования.,Ожидайте, что программные продукты будут развернуты в полностью независимой среде.,Не размещается вместе с другими экземплярами и данными арендатора;
Логика расчета проста:В этом бункерном режиме,Модель выставления счетов относительно проста;
Уменьшите влияние сбоев: поскольку каждая система арендатора развертывается в независимой среде.,Если среда дает сбой,На других арендаторов это не повлияет.
2.1.3 Недостатки
шкалавопрос:из-за арендатораданезависимыйизсреда,Каждому арендатору необходимо подготовить, создать и эксплуатировать среду SaaS.,Им все еще можно управлять, если арендаторов всего несколько.,Когда количество арендаторов увеличится,,Управление и эксплуатация этих сред будет чрезвычайно сложной задачей;
Вопрос стоимости:Каждому арендатору нужен отдельныйизразвертыватьсреда,Тогда затраты на каждого арендатора будут очень высокими.,будет значительно сокращено SaaS Программное обеспечение Служитьиз рентабельности;
Проблемы гибкой итерации:Вообще говоря SaaS Преимущества модели заключаются в том, что она может быстро реагировать на изменения рынка и быстро повторять функции продукта, но в этой разрозненной модели сложнее управлять и эксплуатировать этих арендаторов. SaaS Окружающая среда может стать очень сложной и неэффективной;
инфраструктураизмонитор:Так же,В этой децентрализованной модели,Эксплуатация, обслуживание и мониторинг каждого арендатора также очень сложны и обременительны.
2.2 Архитектура данных, независимая от общей базы данных
Пример шаблона архитектуры общих данных независимой базы данных
2.2.1
Несколько арендаторов или все арендаторы совместно используют базу данных, каждый арендатор будет иметь schema Создайте логическую изоляцию,И недафизическиизизоляция(все еще внутри экземпляра)。То есть несколько арендаторов делят одининфраструктура,уменьшать Saas Ресурсные затраты на программные услуги.
Кратко представим схему:
Схема — это совокупность объектов данных и,Эта коллекция содержит различные объекты, такие как:поверхность、вид、Хранимые процедуры, индексы и т. д.Еслибаза данные рассматриваются как склад, тогда схема — каждая из комнаты, а таблица — да Кабинет за кабинетом. пользователь да schema из администратор, имеет контроль над каждым schema из Разрешения.
Но нужно объяснить изда, MySQL Нет в базе данных schema Эта концепция, но да MySQL Экземпляр может иметь несколько баз данных.
2.2.2 Преимущества
Эффективное управление:В соответствии с вышеуказанной политикой обмена,Все арендаторы могут управляться централизованно,Мониторинг инфраструктуры при этом станет проще,Итерация продукта может быть быстрее;
бюджетный:Относительно бункерного режимаизнезависимыйбаза данных,Совместное использование базы данных обходится дешевле,Также легко динамически расширять систему в соответствии с потребностями пользователя;
Лучшая изоляция:Хотя в пределах одного и того же экземпляра,Но да сделал логическое различие,Арендаторы используют библиотеки по-разному,Эффект изоляции относительно хороший.
2.2.3 Недостатки
Арендаторы влияют друг на друга:Поскольку все арендаторы используют одни и те же ресурсы,Когда арендатор занимает большое количество машин, он потребляет много ресурсов.,Вероятно, это повлияет на использование других арендаторов.。в этом случае,Требования ко всей архитектуре системы, доступности и масштабируемости относительно высоки.,Возможно, также целесообразно рассмотретьКонструктивные меры, такие как ограничение тока, понижение мощности и плавкие предохранители.справиться с;
Тяжелая нагрузка по эксплуатации и техническому обслуживанию:Каждый раз при добавлении арендатора,Все потребности для своих нужд создают новые бизнес-базы данные для управления и, возможно, придется работать с разработчиками для поддержания этой базы. данных;
Проблемы с выставлением счетов арендаторам:Все арендаторы совместно используют ресурсы,потенциально усложняет выставление счетов,Однако это не является большой проблемой, когда ресурсов НИОКР относительно достаточно.
2.3 Архитектура общих данных общей базы данных
Пример шаблона архитектуры общих данных общей базы данных
2.3.1 Характеристики
Все арендаторы делят одну базу экземпляры данных, использующие одну и ту же базу данных,толькоДобавьте поле идентификации арендатора в каждую таблицу.различать。
2.3.2 Преимущества
Низкая стоимость ресурсов:экземпляризодинбаза данных Сразу Может Сделанный Все арендаторыизданные,Число поддерживаемых арендаторов теоретически может быть большим.;
Легко повторить:В разработкеиз Когда вам просто нужно дополнительноесосредоточиться на Поле идентификации арендатора Сразухороший,Итерация и обслуживание продукта также могут быть очень удобными;
2.3.3 Недостатки
Плохая изоляция:Все арендаторыизданные Сложите все это вместе,Если бизнес-уровень не справляется с задачей различения личности арендаторов,,В данных об арендаторах легко вызвать путаницу;
Узкое место в производительности:С арендаторамиданныеколичествоизумножать,Производительность одной таблицы определенно будет постепенно снижаться.,А оптимизация производительности будет ограничена недостатком базовых ресурсов;
Плохая масштабируемость:Когда бизнес станет сложным,Взаимодействие между предприятиями также станет более тесным,Это может вызвать ряд системных проблем, таких как распределенные транзакции и несогласованность данных.
3. Выбор схемы изоляции.
Что касается того, как реагировать на вышеизложенное из 3 Выбор режима изоляции, вы можете выбрать один из следующих 4 Размеры для сравнения:
Степень совместного использования ресурсов:То есть между несколькими арендаторамииз Для основных настроекиз Как поделились,изолированная база данных, схема или общая база данных?
Изоляция данных:Когда арендаторбизнесданныеизизоляция Когда требования относительно высоки Может Выберите бункер,Если стоимость ограничена или вы можете рассмотреть возможность совместного использования базы данных на начальном этапе;
Сложность бизнеса:какое-то ядробизнесда Более сложныйиз,Это относительно серьезное испытание для общей эффективности и лежащих в ее основе ресурсов.,Другие виды деятельности можно соответствующим образом упростить;
Стоимость заявки:Поскольку выбрана многопользовательская технологическая платформа,Тогда это означает, что пользователь должен достичь определенного уровня да.,операции、поддерживать、Необходимо учитывать полную стоимость оборудования и т. д.
Сравнительная схема выбора схемы изоляции
4. Модель архитектуры
4.1 Многоуровневая модель
Здесь автор делит его на три уровня: Управление, уровень обслуживания, инфраструктура, например Схема многопользовательской архитектуры. Как показано в (1), давайте поговорим о причинах такого расслоения.
Схема многопользовательской архитектуры (1)
Управление
Этот слой чем-то похож на Алибаба Облакоизконсоль,Сама Alibaba Cloud может отслеживать общую ситуацию каждого арендатора внутри компании.,Сами арендаторы Можетмонитор Платите самииз Ресурсная ситуация。
Для разработчиков,Этот уровень в основном управляет арендаторами:То есть то, что купили арендаторы Служить、Изоляция между арендаторами、Выставление счетов арендаторам и т.д. Точно так же, как арендодатель управляет арендаторами каждой комнаты в здании: кто, на каком этаже и в каком номере снимает комнату?、Сколько времени занимает аренда, что входит в арендную плату и т.д.,Арендодатель только сдает и обслуживает дом.,Его не волнует повседневная жизнь жильцов внутри.
Для арендаторов,Просто да управление тратой денег на аренду из Служить:То есть какие конкретно системы были закуплены?、какие ресурс, как авторизовать роли и т. д. Например, арендатор арендует двухкомнатную квартиру с одной гостиной и одной ванной комнатой.,Как оформить гостиную, готовить ли на кухне, через сколько дней следует выносить ванную и мусор?,Арендодатель в принципе не будет вмешиваться в эти дела.
уровень обслуживания
Этот слой Сразуда Предоставьте конкретныеизсистема Служить Понятно,Данные Служитда разработаны разработчиками из,Как правило, все арендаторы используют один набор кодов и систем.,Специальная настройкаиз Служитькроме。
Для разработчиков общая традиция SaaS В режиме разработки система должна быть настроена и разработана для каждого клиента. Хотя настроенный контент может быть одинаковым и существенной разницы не будет, он ограничен изоляцией данных, базовыми ресурсами и ролевой авторизацией и может разрабатываться только независимо. . Развернуть набор Служить и набор ресурсов для каждого клиента.
Как только число клиентов увеличивается, недостатки становятся очень очевидными: затраты на разработку и развертывание слишком высоки, а степень повторного использования низкая.
В мультитенантной модели, если имеется превосходная и зрелая мультитенантная технологическая архитектура, она сэкономит время, усилия, деньги и будет эффективной как для разработчиков, так и для арендаторов. Как предлагает Alibaba Cloud из CDN Распространение контента, OSS Объектное хранилище, RDS облакобаза данных、SLB Балансировка нагрузки и т. д. могут быть приобретены арендаторами, и все это отличные продукты, отшлифованные рынком.
Для арендаторов,Этот уровень посвящен дапокупке и Служить.,Эти покупки из Служить, как правило, будут служить базой.,используется для поддержки арендаторовизбизнесразвивать。Например: А фирменный цветок 10 Я купил несколько продуктов Alibaba Cloud за 10 000 юаней, чтобы поддержать бизнес моей компании. После того, как компания выведет эти предприятия на рынок, цена продажи может быть 15 Десять тысяч юаней, а фактическая стоимость продукта Alibaba Cloud для одного арендатора составляет всего 5 Десять тысяч юаней.
инфраструктураЭтот уровень чем-то похож на инфраструктуру IaaS (ServeFrom).мы знаем,Независимо от того, на каком программном обеспечении Служить основано CPU、Память、диск、маршрутизатор、переключатели и рядиз Аппаратное обеспечение。
Для разработчиков,инфраструктура Либо постройте сами, либо купите. На данный момент,На рынке есть всего несколько производителей со зрелым аппаратным обеспечением.,Поэтому разработчики программного обеспечения Служитьиз обычно сосредотачиваются на закупках;
Для арендаторов,Не интересуется инфраструктурой: арендаторам не нужно заботиться о конкретной аппаратной структуре.,Просто нужнососредоточиться науровень обслуживанияиз Тревоги, при возникновении тревоги вы можете подать аварийный заказ на работу, чтобы связаться с застройщиком.
4.2 Модельные отношения
Я понимаю, что эту модель можно разделить на 4 Системы: платформа SaaS, ролевая система полномочий, бизнес-система и система облачных ресурсов. Такие как Схема многопользовательской архитектуры (2) показано,Каждая система имеет свои собственные взаимоотношения друг с другом. Для удобства всеобщего понимания,Я расскажу о каждом отношении.
Схема многопользовательской архитектуры (2)
Отношения между SaaS-платформой и арендаторами:На этой платформе несколько арендаторов,Вообще говоря, используется независимая архитектура данных общей базы данных.,Размещение нескольких десятков арендаторов не должно стать проблемой.
Взаимоотношения между арендатором и пользователем организации:Арендаторы обычно обращаются киздабизнес или организация,Обычно есть сотрудники с ролью администратора, которые управляют покупкой SaaS SaaS.
Отношения между пользователями и ролями разрешений:Столкнувшись со многимииз SaaS Служитьсистема,Обычно пользователям выборочно предоставляются только определенные разрешения.,Например, администратор, суперадминистратор и т. д.
Арендатор и деловые отношения:Вообще говоряздесьизбизнесобратитесь кизда Сами арендаторыизбизнес,Арендаторам приходится полагаться на покупкииз SaaS Служить для поддержки этих предприятий.
Взаимосвязь между бизнесом и базовыми ресурсами:Базовые ресурсы обычно относятся кизда Служитьаппаратные ресурсы, такие как,Но предприятия обычно не заботятся об основных ресурсах.
Отношения между арендаторами и базовыми ресурсами:Арендаторам необходимо приобрестииз Всегда знайте базовое оборудованиеиз Конфигурация,Его эксплуатация, техническое обслуживание и сигнализация обеспечиваются SaaS Ответственность несет разработчик платформы управления.