Sobes.tech
Junior

Kas ir Terraform?

sobes.tech AI

Atbilde no AI

Terraform ir atvērta koda rīks, ko izstrādājusi HashiCorp uzņēmums, lai pārvaldītu infrastruktūru kā kodu (Infrastructure as Code, IaC). Tas ļauj aprakstīt infrastruktūru, izmantojot deklaratīvu valodu HCL (HashiCorp Configuration Language) vai JSON, un pēc tam to automatizēti izvietot, mainīt un dzēst.

Galvenās Terraform iezīmes:

  • Deklaratīvums: Jūs aprakstāt vēlamo infrastruktūras stāvokli, un Terraform pats nosaka nepieciešamos soļus tā sasniegšanai.
  • Immutabilitāte: Terraform dod priekšroku jaunu resursu izveidei, nevis esošo mainīšanai, kas palielina uzticamību un paredzamību.
  • Pakalpojumu sniedzēji: Atbalsta daudzus mākoņu pakalpojumu sniedzējus (AWS, Azure, GCP), kā arī citus pakalpojumus (Kubernetes, Docker, datu bāzes) caur pakalpojumu sniedzēju sistēmu.
  • Stāvoklis: Terraform seko izvietotās infrastruktūras stāvoklim stāvokļa failā (state file), kas ļauj saprast pašreizējo stāvokli un aprēķināt nepieciešamās izmaiņas.
  • Moduļi: Iespēja izveidot atkārtoti lietojamus konfigurācijas blokus, organizēt kodu un vienkāršot sarežģītu infrastruktūru pārvaldību.
  • Plānošana: Pirms izmaiņu piemērošanas Terraform rāda darbību plānu, kas tiks veikts, palīdzot izvairīties no neparedzētām sekām.

Infrastruktūras pārvaldības cikls parasti ietver šādus posmus:

  1. Iniciācija (terraform init): Ielādēt nepieciešamos pakalpojumu sniedzējus un moduļus.
    terraform init
    // Darba direktorijas iniciācija
    
  2. Plānošana (terraform plan): Ģenerēt darbību plānu, rādot, kuri resursi tiks izveidoti, mainīti vai dzēsti.
    terraform plan
    // Izveidot un parādīt darbību plānu
    
  3. Piemērošana (terraform apply): Izpildīt plānu, lai izveidotu vai mainītu infrastruktūru.
    terraform apply
    // Piemērot plānu mērķa infrastruktūrai
    
  4. Dzēšana (terraform destroy): Dzēst visus resursus, kurus pārvalda pašreizējā konfigurācija.
    terraform destroy
    // Dzēst visus resursus, kurus pārvalda pašreizējais stāvoklis
    

Vienkāršs resursa apraksts HCL formātā:

resource "aws_instance" "example" {
  # Resursa tips (AWS instances) un tās nosaukums konfigurācijā
  ami           = "ami-0abcdef1234567890" # AMI attēla ID
  instance_type = "t2.micro"            # Instances tips
  tags = {
    # Marķieri
    Name = "example-instance"
  }
}

Terraform ievērojami vienkāršo un automatizē infrastruktūras pārvaldību, padarot to paredzamu, mērogojamu un versiju kontrolējamu.