Terraform

Что это такое

Terraform описывает инфраструктуру как набор объявлений в файлах, сравнивает их с тем, что существует в действительности, и вносит разницу. Вместо инструкции о том, какую кнопку нажать и в каком порядке, окружение — это каталог текста, который можно просмотреть, положить в систему контроля версий и применять повторно. Это инструмент, который превращает консоль в нечто, у чего есть diff.

Почему это важно

Окружение, собранное руками, нельзя надёжно пересобрать. Никто не помнит все настройки, второе окружение расходится с первым, а человек, который знал, зачем нужно правило, уже ушёл. Объявленная инфраструктура делает окружение воспроизводимым, и именно это позволяет скопировать его для тестирования, затем снести и собрать заново таким же после инцидента. Заодно изменения становятся доступны для просмотра до того, как произойдут: план — это предварительный показ того, что изменится в продакшене, чего не даёт ни одна консоль.

Что в этом треке

  1. Декларирование инфраструктуры (06-cloud-devops/07-terraform/01-declaring-infrastructure) — язык ресурсов, переменных и выходных значений и то, как изменение превращается в план.
  2. Состояние и планирование (06-cloud-devops/07-terraform/02-state-and-planning) — файл состояния, почему он приносит больше всего ущерба и как держать планы честными.

Предварительные требования

Что читать дальше

  • Облачные вычисления (06-cloud-devops/01-cloud-computing) — инфраструктура, которую декларирует этот инструмент, поэтому прочитайте сначала её.
  • CI/CD (06-cloud-devops/08-ci-cd) — где план формируется и просматривается до применения изменения.
  • AWS (06-cloud-devops/02-aws) — крупнейший провайдер, ресурсы которого описываются такой конфигурацией.