Описание Azure Resource Manager и шаблонов Azure ARM

Завершено

Azure Resource Manager (ARM) — это служба развертывания и управления для Azure. Она обеспечивает уровень управления для создания, обновления и удаления ресурсов в учетной записи Azure. Каждый раз, когда вы выполняете все действия с ресурсами Azure, используется ARM.

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

Преимущества использования Azure Resource Manager

Azure Resource Manager позволяет выполнять следующие задачи.

  • Управлять своей инфраструктурой с помощью декларативных шаблонов, а не сценариев. Шаблон Resource Manager — это JSON-файл, который определяет, что развернуть в Azure.
  • Развертывать и отслеживать все ресурсы вашего решения, а также управлять ими как единой группой, а не работать с ними по отдельности.
  • Повторное развертывание решения на протяжении всего жизненного цикла разработки, чтобы гарантировать согласованность ресурсов.
  • Определение зависимостей между ресурсами, чтобы их развертывание выполнялось в правильном порядке.
  • Применяйте управление доступом ко всем службам, так как RBAC изначально интегрирован в платформу управления.
  • Применять теги в ресурсах для логического упорядочивания всех ресурсов в вашей подписке к ним.
  • Контролируйте выставление счетов в организации, просматривая затраты для группы ресурсов с одним тегом.

В следующем видео представлен обзор Azure Resource Manager.

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

Инфраструктура как код — это концепция, в которой вы управляете инфраструктурой как строками кода. На вводном уровне это такие вещи, как использование Azure Cloud Shell, Azure PowerShell или Azure CLI для управления и настройки ресурсов. По мере удобства работы в облаке можно использовать инфраструктуру в качестве концепции кода для управления всеми развертываниями с помощью повторяемых шаблонов и конфигураций. Шаблоны ARM и Bicep — это два примера использования инфраструктуры в качестве кода с Azure Resource Manager для поддержания среды.

Шаблоны ARM

С помощью шаблонов ARM можно описывать ресурсы, которые вы хотите использовать, в декларативном формате JSON. С помощью шаблона ARM код развертывания проверяется перед выполнением любого кода. Это гарантирует, что ресурсы будут созданы и подключены правильно. Затем шаблон управляет параллельным созданием этих ресурсов. То есть если вам нужно 50 экземпляров одного и того же ресурса, все 50 экземпляров создаются одновременно.

В конечном итоге разработчику, специалисту DevOps или ИТ-специалисту нужно просто определить желаемое состояние и конфигурацию каждого ресурса в шаблоне Azure Resource Manager, а шаблон сделает все остальное. Шаблоны могут даже выполнять скрипты PowerShell и Bash до или после настройки ресурса.

Преимущества использования шаблонов ARM

Шаблоны ARM предоставляют множество преимуществ при планировании развертывания ресурсов Azure. Вот некоторые преимущества этого решения:

  • Декларативный синтаксис. Шаблоны ARM позволяют декларативно создавать и развертывать всю инфраструктуру Azure. Декларативный синтаксис означает, что вы объявляете то, что хотите развернуть, однако вам не нужно писать фактические команды программирования и последовательность для развертывания ресурсов.
  • Повторяющиеся результаты. Выполняйте повторное развертывание инфраструктуры на протяжении всего цикла разработки и будьте уверены, что ресурсы развертываются согласованным образом. Один и тот же шаблон ARM можно использовать для развертывания нескольких сред разработки и тестирования, зная, что все среды одинаковы.
  • Оркестрация. Не следует беспокоиться о сложности операций упорядочивания. Azure Resource Manager организует развертывание отдельных ресурсов так, чтобы они создавались в правильном порядке. По возможности Azure Resource Manager развертывает ресурсы параллельно, поэтому процедуры развертывания заканчиваются быстрее, чем в случае последовательного развертывания. Шаблон развертывается с помощью одной команды, а не путем выполнения нескольких императивных команд.
  • Модульные файлы. Шаблоны можно разбить на более мелкие, многократно используемые компоненты и связать их в процессе развертывания. Также можно вложить один шаблон в другой. Например, можно создать шаблон для стека виртуальных машин, а затем вложить этот шаблон в шаблоны, которые развертывают все среды, и этот стек виртуальных машин будет последовательно развертываться в каждом из шаблонов среды.
  • Расширяемость. Сценарии развертывания позволяют добавлять в шаблоны сценарии PowerShell или Bash. Скрипты развертывания расширяют возможности настройки ресурсов в процессе развертывания. Сценарий можно добавить в шаблон, сохранить во внешнем источнике и указать в шаблоне. Сценарии развертывания позволяют выполнить сквозную настройку среды с дают помощью одного шаблона ARM.

Bicep

Bicep — это язык, использующий декларативный синтаксис для развертывания ресурсов Azure. Файл Bicep определяет инфраструктуру и конфигурацию. Затем ARM развертывает среду на основе файла Bicep. Как и шаблон ARM, написанный в формате JSON, файлы Bicep обычно используют более простой, более краткий стиль.

Ниже приведены некоторые преимущества Bicep:

  • Поддержка всех типов ресурсов и версий API: Bicep без дополнительной конфигурации поддерживает все предварительные версии и версии GA для служб Azure. Как только поставщик ресурсов вводит новые типы ресурсов и версии API, их можно использовать в файле Bicep. Чтобы использовать новые службы, не нужно ждать обновления средств.
  • Простой синтаксис. По сравнению с эквивалентным шаблоном JSON файлы Bicep более краткие и удобочитаемые. Bicep не требует наличия знаний о языках программирования. Синтаксис Bicep является декларативным и указывает, какие ресурсы и свойства ресурсов необходимо развернуть.
  • Повторяющиеся результаты. Выполняйте повторное развертывание инфраструктуры на протяжении всего цикла разработки и будьте уверены, что ресурсы развертываются согласованным образом. Файлы Bicep являются идемпотентными, то есть вы сможете многократно развертывать один и тот же файл и получать те же типы ресурсов в том же состоянии. Можно разработать один файл, представляющий требуемое состояние, и обойтись без большого числа отдельных шаблонов для представления обновлений.
  • Оркестрация. Не следует беспокоиться о сложности операций упорядочивания. Resource Manager организует развертывание взаимозависимых ресурсов так, чтобы они создавались в правильном порядке. По возможности Resource Manager развертывает ресурсы параллельно, поэтому процедуры развертывания заканчиваются быстрее, чем в случае последовательного развертывания. Файл развертывается с помощью одной команды, и вам не придется выполнять большую последовательность императивных команд.
  • Модульность. Вы можете разбить код Bicep на управляемые части с помощью модулей. Модуль развертывает набор связанных ресурсов. Модули позволяют повторно использовать код и упростить разработку. Добавьте модуль в файл Bicep в любое время, когда потребуется развертывание этих ресурсов.