Sobes.tech
Junior

Čo je Terraform?

sobes.tech AI

Odpoveď od AI

Terraform je open-source nástroj vytvorený spoločnosťou HashiCorp na správu infraštruktúry ako kódu (Infrastructure as Code, IaC). Umožňuje opisovať infraštruktúru pomocou deklaratívneho jazyka HCL (HashiCorp Configuration Language) alebo JSON a následne ju automatizovane nasadzovať, meniť a odstraňovať.

Kľúčové vlastnosti Terraform:

  • Deklaratívnosť: Opisujete požadovaný stav infraštruktúry a Terraform sám určuje kroky na jeho dosiahnutie.
  • Imutabilita: Terraform preferuje vytváranie nových zdrojov namiesto zmeny existujúcich pri významných zmenách konfigurácie, čo zvyšuje spoľahlivosť a predvídateľnosť.
  • Poskytovatelia: Podpora veľkého množstva poskytovateľov cloudových služieb (AWS, Azure, GCP), ako aj ďalších služieb (Kubernetes, Docker, databázy) prostredníctvom systému poskytovateľov.
  • Stav: Terraform sleduje stav nasadenej infraštruktúry v súbore stavu (state file), čo mu umožňuje pochopiť aktuálny stav a vypočítať potrebné zmeny.
  • Moduly: Možnosť vytvárať znovupoužiteľné bloky konfigurácie na organizáciu kódu a zjednodušenie správy zložitých infraštruktúr.
  • Plánovanie: Pred aplikáciou zmien Terraform ukazuje plán akcií, ktorý bude vykonaný, čo pomáha vyhnúť sa neočakávaným dôsledkom.

Životný cyklus práce s Terraformom obvykle zahŕňa nasledujúce kroky:

  1. Inicializácia (terraform init): Načítanie potrebných poskytovateľov a modulov.
    terraform init
    // Inicializácia pracovného adresára
    
  2. Plánovanie (terraform plan): Generovanie plánu vykonania, ukazujúceho, ktoré zdroje budú vytvorené, zmenené alebo odstránené.
    terraform plan
    // Vytvorenie a zobrazenie plánu vykonania
    
  3. Aplikácia (terraform apply): Vykonanie plánu na vytvorenie alebo zmenu infraštruktúry.
    terraform apply
    // Aplikácia plánu na cieľovú infraštruktúru
    
  4. Odstránenie (terraform destroy): Odstránenie všetkých zdrojov spravovaných aktuálnou konfiguráciou Terraform.
    terraform destroy
    // Odstránenie všetkých zdrojov spravovaných aktuálnym stavom Terraform
    

Príklad jednoduchého popisu zdroja v HCL:

resource "aws_instance" "example" {
  # Typ zdroja (inštancia AWS) a jej meno v konfigurácii
  ami           = "ami-0abcdef1234567890" # ID obrazu AMI
  instance_type = "t2.micro"            # Typ inštancie
  tags = {
    # Štítky pre zdroj
    Name = "example-instance"
  }
}

Terraform výrazne zjednodušuje a automatizuje správu infraštruktúry, čím ju robí predvídateľnejšou, škálovateľnejšou a verzionovateľnou.