Использование инфраструктуры как код для обновления посадочных зон Azure
В этой статье описываются преимущества использования инфраструктуры в качестве кода (IaC) для обновления посадочных зон Azure. Организациям необходимо обновлять целевые зоны в процессе их эксплуатации, чтобы обеспечить правильность конфигураций и реагировать на необходимость изменений.
IaC может управлять всем жизненным циклом и особенно эффективно управлять ресурсами, которые оно развёртывает. Организации должны планировать развертывание целевых зон Azure с помощью IaC. Он требует планирования выравнивания существующих ресурсов, отличных от IaC, с ресурсами IaC, поддерживаемыми с помощью управления состоянием. Необходимо сопоставить существующие ресурсы с требуемым состоянием.
Дополнительные сведения см. в статье Сохранение целевой зоны Azure в актуальном состоянии.
Как работает инфраструктура как код
IaC ссылается на практику и средства управления жизненным циклом ресурсов инфраструктуры с помощью файлов определения, доступных для машинного чтения. Определение инфраструктуры записывается, версионируется, развертывается через потоки, а затем становится частью развертывания приложений.
Технологии IaC являются декларативными, что означает, что при запуске IaC устанавливает конфигурацию, описанную в коде, независимо от текущего состояния. При настройке инфраструктуры с помощью сценариев, таких как Azure CLI или Azure PowerShell, они императивные. Императивные скрипты выполняют набор действий, а результат зависит от текущего состояния, а также состояния после действий.
Таким образом, если у вас есть инфраструктура в качестве определения кода для ресурса Azure, вы можете запустить это определение так часто, как нужно, и он создает изменение только в том случае, если:
- Определение изменяется для добавления новых ресурсов, удаления ранее развернутых ресурсов или изменения ресурсов, которые были развернуты ранее.
- Развернутый ресурс отклоняется от конфигурации, чтобы вернуть ее к определенной.
Вы можете использовать IaC для восстановления состояния, удаляя ресурсы, которые больше не нужны, и управляя жизненным циклом ресурсов через многочисленные изменения.
Заметка
Конкретные методы удаления ресурсов с помощью IaC различаются. Например, в Azure Bicep требуется использовать тип развертывания complete
для исправления ресурсов, не охваченных областью. Эта команда работает только в определенных областях. Для Terraform ресурсы имеют lifecycle
мета-аргумент, который содержит инструкции по обработке ресурсов Terraform.
Для целевых зон Azure есть два основных варианта инфраструктуры в качестве кода:
- Azure Bicep, который является языком для конкретного домена, который используется для развертывания ресурсов Microsoft, разработанных Корпорацией Azure. Дополнительные сведения см. в статье зоны высадки Azure — рекомендации по проектированию модулей Bicep.
- Terraform, продукт, созданный Hashicorp, для развертывания инфраструктуры в облаке и локальной среде. Terraform имеет конкретных поставщиков ресурсов Майкрософт для развертывания ресурсов Azure. Дополнительные сведения см. в статье посадочных зон Azure, рекомендации по проектированию модуля Terraform.
Преимущества обновления ALZ с помощью инфраструктуры в виде кода
Преимущества, описанные ниже, объясняют, почему стоит использовать инфраструктуру как код для обновления посадочной зоны.
Сокращение усилий
Это занимает меньше усилий для использования инфраструктуры в качестве кода для выполнения обновлений по сравнению с внесением изменений вручную. Развертывание IaC помогает ответить на следующие вопросы:
- Как на сегодняшний день настроены ресурсы?
- Как оно будет настроено этим обновлением?
- Какие изменения будут вноситься в соответствии с этим обновлением?
При запуске инструментария инфраструктуры как кода может быть создан сравнительный или дифференциальный отчет о изменениях. Просмотрите этот отчет перед внесением изменений в среду.
Набор инструментов может компилировать сведения об изменении, а не оператор или инженер.
Уменьшение ошибки
Благодаря программному характеру развертываний инфраструктура в виде кода уменьшает человеческую ошибку при внесении изменений. Он изменяет только определенные параметры и имеет параметры предварительной версии, поэтому уменьшает сбои, вызванные сбоем или неполными изменениями. Он также улучшил варианты тестирования.
Управление версиями и история
Развертывания инфраструктуры как кода поддерживаются файлом определения, поэтому для управления версиями ваших определений можно использовать управление версиями. В зависимости от используемого метода IaC можно ссылаться на развертывания в Azure для Bicep или в файле состояния Terraform, чтобы просмотреть журнал предыдущих развертываний.
При использовании методик управления версиями создается новая ветвь IaC для добавления изменений и редакций. История ветви в системе управления версиями фиксирует итерации и изменения. Его можно использовать для развертывания изменений в тестовой среде, пока вы не будете готовы к слиянию и развертыванию изменений в рабочей среде. Дополнительные сведения см. в подходе тестирования для посадочных зон Azure. На протяжении всего этого цикла записи развертывания фиксируют используемую версию и развернутые ресурсы, обеспечивая высокую наглядность истории.
Используйте эти методы тестирования с Bicep для общих целей тестирования. При использовании этих методов вы можете тестировать код перед его развертыванием и проводить тестирование в непроизводственных средах из вашей ветви.
Среды тестирования
Развертывания IaC повторяемы, поэтому вы можете использовать то же определение для развертывания второй (или более) среды, опираясь на него. Этот метод ценен для тестирования изменений.
Например, если вы хотите заменить брандмауэр Azure с помощью номера SKU уровня "Премиум", можно развернуть тестовую среду и проверить изменения, не изменяя рабочую среду.
Перехват смещения конфигурации
IaC предоставляет уникальную возможность выявления дрейфа конфигурации во время обновлений. Развертывание фиксирует изменения в файле определения и показывает случаи, когда конфигурация ресурсов отличается от определения.
Обновления зоны высадки с помощью IaC могут помочь вам отследить дрейф конфигурации и позволят вам соответствующим образом обновить код, устранить эти некорректные настройки через обновление или другим способом.
При внесении изменений в ресурсы с помощью портала, интерфейса командной строки или метода, отличного от IaC, это изменение реализуется. При следующем запуске развертывания с помощью IaC он выделяет сравнение между состоянием, определенным кодом, и фактическим состоянием в портале, используя функции what-if или plan. Используйте этот метод, чтобы определить, изменяется ли среда вне файла кода.
После определения несоответствия можно запустить IaC, чтобы попытаться выровнять развертывание с определением. Используйте этот метод для выявления проблем и устранения сценариев в зависимости от характера проблем, характера выполнения и способа внесения изменений. Например, Terraform пытается восстановить базовое состояние для развернутых ресурсов, а развертывание режима Complete
в Bicep удаляет ресурсы в группе ресурсов, которые не являются частью определения. Эти средства обнаруживают и восстанавливают смещение конфигурации, но могут не устранять все проблемы.
Дополнительные сведения см. в внеполосные изменения и обнаружение и управление отклонением с помощью Terraform.
Изменения, определенные на портале, являются громоздкими для внедрения в IaC. Необходимо обновить код, чтобы соответствовать текущему состоянию, которое часто включает в себя просмотр каждого изменения ресурса и обновление его параметров в соответствии с конфигурацией "как есть".
Если вы используете IaC для управления целевой зоной или другими ресурсами, вы должны вносить изменения только за пределами IaC в рамках чрезвычайной ситуации. Меры предосторожности с учетными записями, имеющими доступ к внесению изменений напрямую, например управление привилегированными пользователями.
Ознакомьтесь с общими рекомендациями по автоматизации и безопасности в следующих статьях:
- рекомендации по операционному соответствию требованиям
- Рекомендации по проектированию автоматизации платформы
Дальнейшие действия
Ознакомьтесь с общими сведениями о средствах IaC в следующих статьях: