linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
Intro
Lessons
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • База знаний
  • Шпаргалка
  • Capstone
  • Собеседование
home/terraform/kb/Advanced

kb/advanced

Advanced Terraform: Terragrunt, CDKTF, custom providers, scale

Terragrunt и CDKTF, обёртки и альтернативные frontend'ы для Terraform. Custom-provider на Plugin Framework, внутренности DAG-планировщика, иерархия state'ов на сотнях ресурсов, blue-green миграция legacy-инфры, Infracost, OpenTofu в матрице CI, и список тем где Terraform, не тот инструмент.

  • tf-blue-green-migrationBlue-green миграция legacy в Terraform

    Когда legacy-инфра (ClickOps в Console, CloudFormation, Ansible) большая, `terraform import` каждого ресурса, недели работы и риски. Альтернатива: blue-green, поднимаешь параллельную копию через Terraform (green), переключаешь traffic, сносишь legacy (blue). Дороже по cloud-bill (двойная инфра несколько дней), но безопаснее: можешь откатиться, никакого destructive-import'а.

  • tf-cdktfCDKTF, Terraform на TypeScript/Python

    CDKTF, Terraform на TypeScript/Python/Go/Java/C#. На выходе стандартный HCL + tfstate. Плюсы: типы, autocomplete, циклы и классы. Минусы: ещё одна абстракция, debug сложнее, не все фичи Terraform покрыты 1:1. Оправдан когда нужна программируемая генерация HCL (N stack'ов из CSV, например).

  • tf-dag-internalsDAG в Terraform, как строится граф зависимостей

    Terraform строит DAG (directed acyclic graph) из ресурсов и их зависимостей. На plan/apply граф «обходится» в топологическом порядке, параллельно где можно (limit, `-parallelism`, дефолт 10). Implicit dependencies, через interpolation; explicit, `depends_on`. Цикл = `Cycle: ...` ошибка. Понимание DAG объясняет почему apply иногда «застревает» и как ускорить большой граф.

  • tf-cost-infracostInfracost, оценка стоимости плана

    Infracost читает plan.json и считает оценочную стоимость по AWS/ GCP/Azure pricing API. Output: «текущая стоимость X $/мес, после apply станет Y, дельта Z». Используется как gate в CI: «PR поднимает стоимость на 30%, нужен approve финдиректора». Pricing-данные либо из официального cloud API (требует Infracost API-токен, бесплатно для команды до 10 чел), либо self-hosted pricing-server.

  • tf-opentofu-parityOpenTofu, fork Terraform и parity-status

    В 2023 HashiCorp перевела Terraform на BSL, community форкнула под именем OpenTofu (Linux Foundation). API совместим, HCL тот же, провайдеры те же. Расхождение пошло: OpenTofu добавил state-encryption, `exclude` для for_each; Terraform, Stacks. Matrix-CI: гонять оба, ловить расхождение фич.

  • tf-stacksTerraform Stacks, нативная multi-stack оркестрация

    Terraform Stacks, фича HCP Terraform (2024), частично закрывает то что делал Terragrunt. Один stack = множество components, между ними явные dependencies, deployment с разными inputs делает развёртывание N сред из одной конфигурации. Сейчас Cloud-only (HCP Terraform), open-source CLI, в работе. Кому нужно сегодня: либо HCP Terraform, либо ждать, либо использовать Terragrunt.

  • tf-terragruntTerragrunt, DRY-обёртка над Terraform

    Terragrunt, обёртка Gruntwork, решает проблему «directory-per-env» дублирования. Объявляешь `terragrunt.hcl` с `inputs` и `include`'ами; Terragrunt генерирует backend.tf, provider.tf и main.tf на лету и вызывает `terraform`. Альтернатива, workspaces (опасно), copy-paste (плохо), CDKTF (другой стек). Стоимость, ещё один tool в цепочке, ещё один HCL-диалект.

  • tf-large-scale-stateБольшой state, иерархия, blast-radius, naming

    Один state на 5000 ресурсов = боль: refresh минуты, lock-contention, любой apply трогает всё. Решение, иерархия state'ов: network/iam отдельно, apps отдельно, между ними `terraform_remote_state`. Blast-radius, критерий разделения. Naming для бакетов и lock-таблиц предсказуемая структура.

  • tf-provider-developmentСвой Terraform-провайдер, Plugin Framework

    Свой provider, Go через terraform-plugin-framework. Модель: Provider → Resource (CRUD) или DataSource (R). Каждый ресурс, Schema + методы Create/Read/Update/Delete. Core общается с provider по gRPC. Деплой: `go install` + dev_overrides, или Terraform Registry. Нужен когда нет готового provider для твоего API.

Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки