Поделиться через


Мультитенантность и Azure Resource Manager

Azure Resource Manager — это базовая служба управления ресурсами для Azure. Он создает, управляет и удаляет каждый ресурс Azure, включая виртуальные машины, учетные записи хранения и базы данных. При создании мультитенантного решения часто используется Resource Manager для динамической подготовки ресурсов для каждого клиента. В этой статье описываются ключевые функции Resource Manager, которые применяются к мультитенантным решениям. Она также содержит ссылки на рекомендации, которые помогут вам использовать Resource Manager.

Функции Resource Manager, поддерживающие мультитенантность

Инфраструктура как код

Resource Manager предоставляет средства для поддержки инфраструктуры в виде кода (IaC). Вы должны определить IaC для всех решений в облаке, но это особенно важно для мультитенантных решений. Мультитенантное решение часто требует масштабирования развертываний и подготовки новых ресурсов при подключении новых клиентов. Создание или настройка ресурсов вручную занимает больше времени и создает больше рисков. Подход вручную приводит к снижению надежности процесса развертывания в целом.

Используйте Bicep для развертывания IaC из конвейера развертывания. Bicep — это язык, предназначенный для развертывания ресурсов Azure и управления ими декларативным способом. Вы также можете использовать шаблоны AZURE Resource Manager JSON (шаблоны ARM), Terraform или другие партнерские продукты, которые обращаются к базовым API Resource Manager.

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

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

В некоторых решениях можно написать пользовательский код для динамической подготовки или настройки ресурсов или инициировать развертывание шаблона. Пакеты SDK Azure можно использовать в коде для управления средой Azure. Следуйте рекомендациям по проверке подлинности приложения в Resource Manager. Чтобы избежать хранения учетных данных и управления ими, используйте управляемые удостоверения.

Управление доступом на основе ролей Azure

Управление доступом на основе ролей Azure (Azure RBAC) обеспечивает подробный подход к управлению доступом к ресурсам Azure. В мультитенантном решении определите, нуждаются ли ресурсы в конкретных политике Azure RBAC. Например, некоторые клиенты могут обрабатывать конфиденциальные данные, и вам может потребоваться применить Azure RBAC для предоставления доступа определенным лицам, не включая других пользователей в вашей организации. Клиенты также могут запрашивать прямой доступ к своим ресурсам Azure, например во время аудита. Если вы разрешаете этот доступ, точно настроенные разрешения Azure RBAC могут предоставить доступ к данным одного арендатора, не открывая доступ к данным других арендаторов.

Теги

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

Квоты ресурсов Azure

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

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

Поставщик ресурсов управляет каждой службой Azure. Поставщик ресурсов также может определить собственные ограничения. Например, поставщик вычислительных ресурсов Azure управляет подготовкой виртуальных машин и определяет ограничения на количество разрешенных запросов в течение короткого периода. Дополнительные сведения см. в разделе "Ограничения поставщика ресурсов".

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

  • Распределите рабочую нагрузку между несколькими подписками Azure.

  • Используйте несколько групп ресурсов в каждой подписке.

  • Отправка запросов из разных субъектов Microsoft Entra.

  • Запрос дополнительных квот. Чтобы отправить запрос на выделение квот, вы обычно открываете обращение в службу поддержки. Но некоторые службы предоставляют API для этих запросов, например зарезервированные экземпляры виртуальных машин.

Выберите стратегии устранения рисков, которые непосредственно решают конкретное ограничение, с которым вы сталкиваетесь.

Модели изоляции

В некоторых мультитенантных решениях можно развернуть отдельные или выделенные ресурсы для каждого клиента. Resource Manager предоставляет несколько моделей, которые можно использовать для изоляции ресурсов в зависимости от ваших требований и причин изоляции. Дополнительные сведения см. в разделе "Организация ресурсов Azure" в мультитенантных решениях.

Соавторы

Корпорация Майкрософт поддерживает эту статью. Следующие авторы написали эту статью.

Основной автор:

  • Джон Даунс | Главный инженер программного обеспечения

Другой участник:

  • Арсен Владимирский | Главный инженер по работе с клиентами, FastTrack для Azure

Чтобы просмотреть неопубликованные профили LinkedIn, войдите в LinkedIn.