Sobes.tech
Junior

Terraform nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Terraform — açıq mənbəli alətdir və HashiCorp tərəfindən yaradılıb, infrastrukturun kod kimi idarə olunması (Infrastructure as Code, IaC) üçün istifadə olunur. Bu, infrastrukturun HCL (HashiCorp Configuration Language) və ya JSON dilində təsvir edilməsinə və sonra avtomatik olaraq yerləşdirilməsinə, dəyişdirilməsinə və silinməsinə imkan verir.

Terraform-un əsas xüsusiyyətləri:

  • Deklarativlik: Siz infrastrukturun arzu olunan vəziyyətini təsvir edirsiniz və Terraform onu əldə etmək üçün lazım olan hərəkətləri müəyyən edir.
  • Dəyişməzlik: Terraform böyük konfiqurasiya dəyişiklikləri zamanı mövcud resursları dəyişdirmək əvəzinə yeni resurslar yaratmağı üstün tutur, bu da etibarlılığı və proqnozlaşdırma qabiliyyətini artırır.
  • Təchizatçılar: AWS, Azure, GCP kimi çox sayda bulud xidmət təminatçısını və Kubernetes, Docker, verilənlər bazaları kimi digər xidmətləri dəstəkləyir.
  • Vəziyyət: Terraform yerləşdirilmiş infrastrukturanın vəziyyətini vəziyyət faylında izləyir, bu da ona hazırkı vəziyyəti anlamağa və lazım olan dəyişiklikləri hesablamağa imkan verir.
  • Modullar: Kodun təşkil olunması və mürəkkəb infrastrukturların idarə olunmasını sadələşdirmək üçün təkrar istifadə edilə bilən blokların yaradılmasına imkan verir.
  • Planlaşdırma: Dəyişiklikləri tətbiq etməzdən əvvəl, Terraform həyata keçiriləcək hərəkətlərin planını göstərir və gözlənilməz nəticələrin qarşısını alır.

Terraform ilə işləmə dövrü adətən aşağıdakı mərhələləri əhatə edir:

  1. İlkinləşdirmə (terraform init): Lazımi təminatçıları və modulları yükləyir.
    terraform init
    // İş qovluğunu ilkinləşdirir
    
  2. Planlaşdırma (terraform plan): İcra planını yaradır və hansı resursların yaradılacağını, dəyişdiriləcəyini və ya silinəcəyini göstərir.
    terraform plan
    // İcra planını yaradır və göstərir
    
  3. Tətbiq (terraform apply): Planı icra edir və infrastrukturu yaradır və ya dəyişdirir.
    terraform apply
    // Planı hədəf infrastruktura tətbiq edir
    
  4. Silinmə (terraform destroy): Mövcud Terraform vəziyyəti tərəfindən idarə olunan bütün resursları silir.
    terraform destroy
    // Bütün resursları silir
    

HCL dilində sadə resurs təsviri nümunəsi:

resource "aws_instance" "example" {
  # Resurs tipi (AWS nümunəsi) və konfiqurasiyadakı adı
  ami           = "ami-0abcdef1234567890" # AMI şəkil ID-si
  instance_type = "t2.micro"            # nümunə tipi
  tags = {
    # Resurs üçün etiketlər
    Name = "example-instance"
  }
}

Terraform infrastruktur idarəçiliyini əhəmiyyətli dərəcədə sadələşdirir və avtomatlaşdırır, onu daha proqnozlaşdırıla bilən, miqyaslana bilən və versiyalanabilən edir.