Terraform
An open-source infrastructure as code (IaC) tool by HashiCorp.
Terraform - це open-source Infrastructure as Code (IaC) tool, розроблений HashiCorp. Він дозволяє користувачам визначати та надавати інфраструктуру за допомогою декларативної мови конфігурації (HCL - HashiCorp Configuration Language, або JSON). Terraform дозволяє безпечно та ефективно створювати, змінювати та версіонувати інфраструктуру на різних хмарних провайдерах (як AWS, Azure, Google Cloud) та on-premises середовищах. Основний workflow включає написання конфігураційних файлів, планування виконання змін та застосування цих змін для створення або оновлення ресурсів інфраструктури. Terraform підтримує state file, який відстежує поточний стан керованої інфраструктури, дозволяючи йому вносити інкрементні зміни та виявляти drift. Його модульність, широка екосистема провайдерів та фокус на послідовному workflow на різних платформах роблять його потужним інструментом для управління складними розгортаннями інфраструктури, автоматизації надання ресурсів та забезпечення консистентності та відтворюваності інфраструктури.
graph LR
Center["Terraform"]:::main
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Перевірка знань
🧒 Простими словами
Terraform - це як креслення для побудови ваших комп'ютерних систем у хмарі. Ви записуєте, що саме ви хочете (як сервери, бази даних та мережі), а Terraform автоматично будує це для вас і може навіть оновити пізніше.
🤓 Expert Deep Dive
Terraform's declarative approach contrasts with imperative IaC tools by focusing on the desired end-state rather than the sequence of commands to achieve it. Its state management is crucial; the state file acts as a real-time mapping of configured resources to actual infrastructure objects. This state allows Terraform to perform diffing operations, identifying discrepancies between the configuration and the live environment for planning and applying changes. Providers are plugins that abstract the APIs of various cloud and service providers, enabling Terraform's multi-cloud capabilities. The execution plan generated before applying changes provides a critical safety net, detailing resource creation, modification, and destruction. Advanced features include modules for code reuse, workspaces for managing multiple environments, and a registry for sharing modules and providers.