Sobes.tech
Middle

Mi a különbség a deklaratív és az imperatív infrastruktúra leírása között?

sobes.tech MI

Válasz az MI-től

A deklaratív leírás a kívánt végállapot rendszer — az, ami legyen. Az eszköz maga határozza meg a lépéseket ennek az állapotnak az eléréséhez.

Az imperatív leírás a lépések sorrendjére összpontosít — hogyan érjük el a szükséges állapotot. Egyértelműen megadja, mely parancsokat kell végrehajtani és milyen sorrendben.

Példák:

  • Deklaratív (Terraform, CloudFormation): Meghatározni, hogy szükség van egy VPC-re meghatározott CIDR-rel, alhálózatokkal, útválasztási táblákkal és biztonsági csoportokkal.
  • Imperatív (Bash szkriptek, ad-hoc Ansible parancsok): Parancs végrehajtása egy VPC létrehozásához, majd egy alhálózat létrehozásához, és végül az alhálózat összekapcsolása a VPC-vel.

Fő különbségek a táblázatban:

Szempont Deklaratív leírás Imperatív leírás
Fókusz Ami legyen Hogyan érjük el
Változás Az eszköz határozza meg a lépéseket Ön határozza meg a lépéseket
Idempotencia Gyakran beépített Kézi megvalósítást igényel
Bonyolultság Magasabb az állapot meghatározásakor Magasabb a komplex folyamatok kezelésénél
Átláthatóság Leírja a kívánt architektúrát Leírja a lépések sorrendjét

Egyszerűsített konfigurációs példa:

// Deklaratív (Terraform)
resource "aws_instance" "web_server" {
  ami           = "ami-0abcdef1234567890"
  instance_type = "t2.micro"

  tags = {
    Name = "WebServer"
  }
}
# Imperatív (Bash)
#!/bin/bash
# Kézi példány létrehozása (szemléltető kód)
aws ec2 run-instances --image-id ami-0abcdef1234567890 --instance-type t2.micro --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=WebServer}]'