Ключевые отличия между императивным и декларативным подходами в IaC заключаются в следующем:
- Императивный подход определяет конкретные команды, необходимые для достижения желаемой конфигурации. 2 Для автоматического внесения изменений в инфраструктуру можно использовать интерфейс командной строки (CLI). 1 Такой подход позволяет подробно описать желаемые изменения, но если конфигурацию понадобится снова изменить после её доставки на множество машин, придётся менять и скрипт. 1
- Декларативный подход определяет желаемое состояние системы и то, какие ресурсы нужны и какими свойствами они должны обладать. 2 Например, вместо использования интерфейса командной строки и перечисления всех шагов для создания конфигурации виртуальной машины можно просто запросить создание виртуальной машины в определённом домене. 1 Задача будет автоматически выполнена. 1 Декларативный подход позволяет указать то, что должно быть выполнено средствами автоматизации. 1
Таким образом, при императивном подходе программе указывают, как выполнить задачу, а при декларативном — просто конечную цель. 1