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


Руководство по реализации vending подписки

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

Схема, показывающая организацию по продаже подписок.

На схеме архитектуры показана организация управления подписками с иерархией групп управления в верхней части и автоматизацией рабочих процессов подписки внизу. В верхней части корневая группа клиента указывает на группу управления Contoso, которая делится на три дочерние группы: платформа слева (с подписками на удостоверение личности и соединение), посадочные зоны в центре (с подписками SAP, corp и online), и песочница справа. В разделе группы управления уровень подписок отображает четыре поля подписки: подписка удостоверения и подписка на подключение под платформой, подписка A1 и подписка A2 в целевых зонах и подписка песочницы 1 в песочнице. Стрелка указывает от подписки на подключение на раздел, в котором показаны подробные сетевые компоненты, включая значок регионального хаба. Подписка A2 расширяется, чтобы отобразить пять значков, представляющих бюджет, назначение ролей, назначение политик, наблюдатель за сетями Azure и компоненты конфигурации Microsoft Defender для облака. Эти две подписки подключаются через пиринг виртуальной сети. Справа находится рабочий процесс автоматизации продаж подписки, показывающий линейный процесс. Средство сбора данных активирует конвейер обработки запросов, который выполняет фиксацию изменений в системе управления версиями и запускает конвейер развертывания. Конвейер развертывания подключается к модулям инфраструктуры в виде кода (IaC). Файл параметров подписки JSON или YAML передается в рабочий процесс из средства сбора данных. Стрелки на схеме показывают поток от сбора данных до развертывания, а последняя стрелка из конвейера развертывания направлена обратно к подписке A2, что указывает на автоматическое создание и настройку подписок.

Подсказка

Эти модули для управления подписками — Bicep и Terraform — помогают ускорить создание подписок Azure или целевых зон приложений в массовом масштабе. Настройка входных параметров и переменных, передаваемых модулям, в соответствии с потребностями рабочих нагрузок. Дополнительные сведения о процессе продажи подписок см. в обзоре механизма подписки.

Architecture

Рекомендуется разработать автоматизацию продажи подписки для выполнения следующих задач:

  • Сбор данных запроса подписки
  • Запуск автоматизации платформы
  • Создавайте подписки, используя инфраструктуру как код (IaC)

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

Схема, показывающая пример реализации автоматизации продажи подписок.

На схеме показан линейный рабочий процесс для автоматизации продажи подписок, переходящий слева направо через пять основных компонентов. В левом углу средство сбора данных указывает на конвейер запроса с помощью триггера со стрелками. Конвейер запроса указывает на систему контроля версий через стрелку с надписью "commit". Значок шестеренки, который считывает файл параметров подписки JSON или YAML, указывает на строку фиксации. Система управления версиями указывает на конвейер развертывания с помощью стрелки с надписью «триггер». Модули IaC указывают на систему управления версиями и конвейер развертывания. Конвейер развертывания указывает на подписку. В конвейере запросов, системе управления версиями и конвейере развертывания серая полоса указывает, что эти компоненты являются частью автоматизированного процесса платформы. В нижней части схемы три синих раздела имеют метки этапа. Этап сбора данных соответствует средству сбора данных. Фаза инициации автоматизации платформы соответствует конвейеру запросов и управлению исходным кодом. Этап создания подписки соответствует управлению исходным кодом, потоку развертывания и подписке.

Пример реализации выполняет следующие действия.

  1. Средство сбора данных собирает данные запроса подписки.
  2. Когда запрос подписки получает утверждение, он инициирует автоматизацию платформы. Автоматизация платформы состоит из конвейера запросов, системы контроля версий и конвейера развертывания.
  3. Конвейер запроса создает файл параметров подписки JSON, YAML или TFVARS с данными из средства сбора данных. Конвейер запросов также создает новую ветвь, фиксирует файл параметров подписки и открывает pull request в системе контроля версий.
  4. Новая ветвь объединяется с основной ветвью в системе управления версиями.
  5. Слияние активирует конвейер развертывания для создания подписки с модулями IaC.

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

Сбор данных

Целью сбора данных является получение бизнес-утверждения и определение значений файла параметров подписки JSON, YAML или TFVARS. Используйте средство сбора данных для сбора необходимых данных, когда команда приложений отправляет запрос на подписку. Инструмент сбора данных взаимодействует с другими системами в рабочем процессе продажи подписок для запуска автоматизации платформы.

Используйте средство сбора данных. С помощью средства управления ИТ-службами (ITSM) можно собирать данные или создавать портал клиента с помощью средства с низким кодом или без кода, например Power Apps. Средство сбора данных предоставляет бизнес-логику для утверждения или запрета запроса на подписку.

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

Проверка данных. Рекомендуется проверить данные во время процесса сбора данных. Решать проблемы на более поздних этапах автоматизации платформы сложнее.

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

Интерфейс с другими внутренними системами. При необходимости инструмент сбора данных может интегрироваться с другими инструментами или системами в вашей организации. Этот подход дополняет запрос данными из других систем. Для выполнения автоматизации может потребоваться удостоверение, финансы, безопасность и сетевые данные. Например, автоматизация может взаимодействовать со средством управления IP-адресами (IPAM), чтобы зарезервировать правильное пространство IP-адресов.

Создайте триггер. Когда запрос подписки получает утверждение, передача данных активирует автоматизацию платформы. Лучше всего создать push-уведомление с необходимыми данными из средства сбора данных. Для запуска процесса может потребоваться промежуточный уровень, например Azure Functions или Azure Logic Apps.

Запуск автоматизации платформы

Уведомление и данные из средства сбора данных активируют автоматизацию платформы. Автоматизация платформы создает файл параметров подписки, объединяет файл с главной ветвью и использует модули IaC для развертывания файла для создания подписки. Команда платформы отвечает за поддержку автоматизации платформы. Автоматизация платформы в предыдущем примере реализации состоит из конвейера запросов, управления версиями и конвейера развертывания.

Используйте файлы JSON, YAML или TFVARS. Используйте структурированные файлы данных, такие как JSON, YAML или TFVARS, для хранения данных для создания подписки. Задокументируйте структуру файла и сделайте его расширяемым для поддержки будущих потребностей. Например, следующий фрагмент кода JSON определяет значения параметров подписки для одного из модулей Bicep в GitHub.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "subscriptionDisplayName": {
      "value": "sub-bicep-lz-vending-example-001"
    },
    "subscriptionAliasName": {
      "value": "sub-bicep-lz-vending-example-001"
    },
    "subscriptionBillingScope": {
      "value": "providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/123456"
    },
    // Insert more parameters here
  }
}

Просмотрите весь файл. Дополнительные примеры см. в примерах Bicep и примерах Terraform.

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

Это важно

При реализации Terraform используйте отдельный файл состояния для каждой подписки лендинг-зоны приложения. Этот подход увеличивает эффективность операций планирования и применения, а также уменьшает сферу воздействия потенциальных некорректных конфигураций.

Используйте систему запроса на вытягивание. Процесс Gitflow, создающий файл параметров подписки, автоматизирует следующие действия:

  1. Создайте новую ветвь для каждого запроса подписки.
  2. Используйте собранные данные для создания одного файла параметров подписки YAML, JSON или TFVARS для новой подписки в ветви.
  3. Создайте запрос на вытягивание из ветви mainв .
  4. Обновите средство сбора данных с изменением состояния и ссылкой на этот запрос на вытягивание.

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

Проверьте параметр подписки или файл переменных. Pull request запускает процесс линтинга, который проверяет данные запроса, чтобы убедиться, что развертывание выполняется успешно. Этот процесс проверяет файл параметров подписки и может также проверить, доступен ли диапазон IP-адресов. Вы можете добавить этап ручной проверки для вмешательства человека. Затем можно выполнить окончательную проверку и внести изменения в файл параметров подписки. Выходные данные — это файл параметров подписки, имеющий все данные, необходимые для создания подписки.

Активируйте конвейер развертывания. Когда запрос на вытягивание объединяется в main ветвь, слияние активирует конвейер развертывания.

Создание подписки

Последняя задача автоматизации подписки — создание и настройка новой подписки. В приведенном выше примере реализация использует конвейер развертывания для развертывания модуля IaC с файлом параметров подписки.

Используйте IaC. Развертывание должно использовать IaC для создания подписки. Команда платформы создает и поддерживает эти шаблоны, чтобы обеспечить надлежащее управление. Используйте модули подписки Bicep и Terraform и измените их в соответствии с потребностями вашей реализации.

Используйте конвейер развертывания. Конвейер развертывания оркеструет создание и настройку новой подписки. Конвейер должен выполнять следующие задачи.

Категория задач Задача конвейера
Идентичность • Создайте или обновите ресурсы Microsoft Entra для представления владения подпиской.
• Настройка учетных записей с повышенными привилегиями для развертываний команды по рабочей нагрузке.
Управление • Поместите в иерархию групп управления.
• Назначьте владельца подписки.
• Настройте управление доступом на основе ролей Azure на уровне подписки (Azure RBAC) для правильных групп безопасности.
• Назначение политик Azure на уровне подписки.
• Настройте регистрацию в Microsoft Defender для облака.
Нетворкинг • Развертывание виртуальных сетей.
• Настройте пиринг виртуальных сетей для ресурсов платформы (регионального концентратора).
Budgets • Создайте бюджеты для владельцев подписок с помощью собранных данных.
Отчетность • Обновите внешние системы, такие как IPAM, для подтверждения резервирования IP-адресов.
• Обновите запрос на средство сбора данных, указав окончательное имя подписки и глобальный уникальный идентификатор (GUID).
• Уведомите команду приложений о готовности подписки.

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

Установите удостоверение рабочей нагрузки. Конвейер развертывания должен иметь разрешение на выполнение этих задач со всеми системами, с которыми он взаимодействует. Используйте управляемое удостоверение или OpenID Connect (OIDC) для проверки подлинности в Azure.

Послеразвертывание

Автоматизация вендинг по подписке заканчивается созданием и настройкой подписки. После создания команда платформы передает новую подписку команде приложений. Затем команда приложений обновляет бюджет подписки, создает ресурсы рабочей нагрузки и развертывает рабочую нагрузку. Команда платформы управляет управлением подпиской и управляет изменениями управления подписками с течением времени.

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

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

Дальнейшие шаги

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