Зачем использовать стеки развертывания?

Завершено

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

В этом уроке вы узнаете о преимуществах стеков развертывания.

Преимущества стеков развертывания

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

  • Упрощенная подготовка
  • Предотвращение несанкционированных изменений
  • Очистка надежных ресурсов
  • Стандартные шаблоны
  • Улучшение существующих процессов

Упрощенная подготовка

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

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

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

Предотвращение несанкционированных изменений

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

При создании стека развертывания можно указать разрешение, которое применяется к ресурсам, управляемым стеком. Эти разрешения, называемые параметрами запрета, используются для предотвращения изменения или удаления от несанкционированных пользователей.

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

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

Очистка надежных ресурсов

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

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

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

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

Стандартизированный процесс и шаблоны

Создание и развертывание стека развертывания и его ресурсов почти идентично стандартному развертыванию Azure. Например:

Команда Azure CLI для развертывания Bicep-файла в группе ресурсов:

az deployment group create \
    --resource-group rg-depositsApplication \
    --template-file ./main.bicep

Команда Azure CLI для создания стека развертывания в области группы ресурсов:

az stack group create \
    --name stack-deposits \
    --resource-group rg-depositsApplication \
    --template-file ./main.bicep \
    --action-on-unmanage detachAll \
    --deny-settings-mode none

Стеки развертывания поддерживают использование файлов Bicep, шаблонов JSON ARM или спецификаций шаблонов для определения ресурсов в стеке. При развертывании стека развертывания с помощью Azure CLI или Azure PowerShell можно указать конкретный файл шаблона (Bicep-файл или шаблон JSON ARM) или спецификацию шаблона. Изменить способ определения ресурсов не требуется.

Улучшение существующих процессов

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