Definicja #
Terraform to narzędzie Infrastructure as Code (IaC) stworzone przez HashiCorp (obecnie IBM), dostępne od 2014 roku. Pozwala opisać pożądany stan infrastruktury w deklaratywnym języku HCL (HashiCorp Configuration Language) lub JSON, a następnie automatycznie ją tworzyć, modyfikować i usuwać.
Kluczowe koncepcje Terraform:
- Provider — wtyczka do konkretnego dostawcy (AWS, Azure, GCP, Kubernetes, GitHub...)
- Resource — pojedynczy zasób infrastruktury (serwer, baza danych, VPC)
- State — plik stanu (terraform.tfstate) mapujący kod na rzeczywiste zasoby
- Plan — podgląd zmian przed ich wykonaniem (
terraform plan) - Apply — wykonanie zaplanowanych zmian (
terraform apply) - Module — reużywalny blok konfiguracji infrastruktury
Terraform Registry zawiera tysiące gotowych modułów i providerów. OpenTofu to fork open-source po zmianie licencji przez HashiCorp.
Zastosowania #
Terraform jest stosowany w:
- Provisionowaniu całej infrastruktury chmurowej: sieci, maszyny wirtualne, bazy danych, storage
- Zarządzaniu środowiskami (dev, staging, prod) przez moduły i workspace'y
- GitOps i Infrastructure as Code — infrastruktura w repozytorium Git z code review
- Automatyzacji tworzenia i usuwania środowisk testowych na żądanie
- Zarządzaniu konfiguracją Kubernetes i Helm przez Terraform providers
Ścieżka nauki #
Przed nauką Terraform warto znać podstawy co najmniej jednej platformy chmurowej (AWS, Azure lub GCP) i podstawy sieci.
Zacznij od:
- Składnia HCL: resources, variables, outputs, locals
- Cykl życia: init, plan, apply, destroy
- Zarządzanie stanem — backend (S3, Azure Blob, Terraform Cloud)
Następnie opanuj:
- Moduły — tworzenie reużywalnej i parametryzowanej infrastruktury
- Workspace'y i strategie środowiskowe
- Remote state i locking (współpraca zespołowa)
- Terraform Cloud / HCP Terraform dla pipeline'ów CI/CD
- Certyfikacja: HashiCorp Certified: Terraform Associate
FAQ #
- Czym różni się Terraform od Ansible?
- Terraform to narzędzie do provisionowania infrastruktury (tworzenie i zarządzanie zasobami chmurowymi). Ansible to narzędzie do zarządzania konfiguracją i orkiestracji (co zainstalować i jak skonfigurować na istniejących serwerach). W praktyce często używa się ich razem.
- Ile zarabia inżynier DevOps znający Terraform?
- DevOps lub Cloud Engineer ze znajomością Terraform zarabia w Polsce od 14 000 do 28 000 zł brutto miesięcznie. Terraform jest jedną z najczęściej wymienianych umiejętności w ofertach cloud.
- Czy Terraform jest darmowy?
- Terraform CLI jest open source i darmowy. Terraform Cloud oferuje darmowy plan dla małych zespołów; plany płatne dodają SSO, audit logging i zaawansowane zarządzanie.
- Czym jest OpenTofu?
- OpenTofu to open-source'owy fork Terraform powstały po zmianie licencji przez HashiCorp z MPL na BSL. Jest w pełni kompatybilny z Terraform i rozwijany przez społeczność pod patronatem Linux Foundation.
- Jak długo uczyć się Terraform?
- Podstawy HCL i pierwsze zasoby chmurowe można stworzyć w 2–3 tygodnie. Opanowanie modułów, zarządzania stanem i dobrych praktyk zajmuje 2–3 miesiące regularnej praktyki.