Инфраструктура как код
Инфраструктура как код (IaC) — это процесс управления ресурсами облачной инфраструктуры и подготовки ресурсов облачной инфраструктуры с помощью машинного читаемого кода, хранящегося в системе управления версиями. Возможность рассматривать инфраструктуру как любой другой исходный код заключается в том, почему эта практика называется инфраструктурой как код.
IaC является ключевым компонентом DevOps, так как позволяет автоматизировать конфигурацию инфраструктуры и развертывание. Эта автоматизация сокращает время и усилия, необходимые для управления инфраструктурой и подготовки, обеспечивая согласованность и надежность настройки инфраструктуры. IaC также помогает обеспечить безопасность инфраструктуры и соответствие политик организации.
Azure-native и облачные средства, не зависящие от облака
Одним из наиболее важных факторов выбора средства IaC является облачная среда:
Средства на основе Azure: средства IaC, такие как Azure CLI, Azure PowerShell и Bicep, доступны только в Azure. Так как одна и та же компания предоставляет как облачную инфраструктуру, так и средства IaC, преимущество сокращает время между выпуском облачных компонентов и поддержкой в средствах.
Облачные инструменты, не зависящие от облака: средства IaC, такие как Terraform, позволяют управлять инфраструктурой в виде кода в смешанных облачных средах. В зависимости от средства IaC недавно выпущенные функции Azure могут не поддерживаться немедленно.
Императивные и декларативные средства IaC
Существует два типа средств настройки IaC:
Императивные инструменты IaC: императивный инструмент или язык, является одним из тех, где код явно указывает, что нужно сделать и как. Код, который вы пишете, выполняет действия в определенном порядке, один шаг за раз, чтобы настроить инфраструктуру. Большинство императивных средств IaC не являются идемпотентными, так как конфигурация выполняется пошагово.
Императивные средства IaC для управления ресурсами в Azure и их подготовки:
- Azure CLI
- Azure PowerShell
Декларативные инструменты IaC: декларативный инструмент или язык позволяют указать нужный результат, а не способ выполнения каждого шага. Большинство декларативных средств IaC соответствуют общему шаблону. После создания определения инфраструктуры выполните команду, чтобы подготовить определенные параметры. Декларативные средства IaC являются идемпотентными, так как конфигурация может применяться несколько раз независимо от состояния конфигурации инфраструктуры. Эта возможность помогает предотвратить смещение конфигурации путем возврата несоответствующей инфраструктуры в соответствие.
Декларативные средства IaC для управления ресурсами и подготовки в Azure включают:
- Bicep
- Terraform
Рекомендации
- Применяйте подход IaC к развертыванию, управлению, управлению и поддержке развертываний Azure.
- Используйте собственные средства Azure для IaC в следующих сценариях:
- Вы хотите использовать только собственные средства Azure. У вашей организации есть предыдущий опыт развертывания шаблонов Azure Resource Manager (шаблонов ARM).
- Ваша организация хочет немедленно поддерживать все предварительные версии и общедоступную версию служб Azure.
- Используйте средства, отличные от машинного кода для IaC, в следующих сценариях:
- Ваша организация управляет инфраструктурой в смешанных облачных средах.
- Ваша организация не нуждается в немедленной поддержке всех предварительных версий и версий служб Azure.