Sdílet prostřednictvím


Co je infrastruktura jako kód (IaC)?

Infrastruktura jako kód (IaC) používá metodologii DevOps a správu verzí s popisným modelem k definování a nasazování infrastruktury, jako jsou sítě, virtuální počítače, nástroje pro vyrovnávání zatížení a topologie připojení. Stejně jako stejný zdrojový kód vždy generuje stejný binární soubor, model IaC při každém nasazení vygeneruje stejné prostředí.

Diagram infrastruktury jako kódu, který definuje prostředí ve verzovaném souboru.

IaC je klíčovou praxí DevOps a součástí průběžného doručování. Díky IaC můžou týmy DevOps spolupracovat s jednotnou sadou postupů a nástrojů, které poskytují aplikace a jejich podpůrnou infrastrukturu rychle a spolehlivě ve velkém měřítku.

Vyhněte se ruční konfiguraci, abyste zajistili konzistenci

IaC se vyvinulo, aby vyřešilo problém posunu prostředí v nasazovacích kanálech. Bez IaC musí týmy udržovat nastavení prostředí nasazení jednotlivě. V průběhu času se každé prostředí stane "sněhovou vločkou", což je jedinečná konfigurace, která se nedá automaticky reprodukovat. Nekonzistence mezi prostředími může způsobit problémy s nasazením. Správa a údržba infrastruktury zahrnují ruční procesy, které jsou náchylné k chybám a obtížně se sledují.

IaC zabraňuje ruční konfiguraci a vynucuje konzistenci reprezentací požadovaných stavů prostředí prostřednictvím dobře zdokumentovaného kódu ve formátech, jako je JSON. Nasazení infrastruktury s IaC se dají opakovat a brání problémům za běhu způsobeným posunem konfigurace nebo chybějícími závislostmi. Vydávací kanály spouštějí popisy specifikací prostředí a verzní konfigurační modely pro konfiguraci cílových prostředí. Pokud chcete provést změny, tým upraví zdroj, nikoli cíl.

Idempotenci, schopnost dané operace vždy vytvořit stejný výsledek, je důležitým principem IaC. Příkaz nasazení vždy nastaví cílové prostředí do stejné konfigurace bez ohledu na počáteční stav prostředí. Idempotence se dosahuje buď automatickou konfigurací existujícího cíle, nebo zrušením existujícího cíle a opětovným vytvořením nového prostředí.

Užitečné nástroje

Rychle doručujte stabilní testovací prostředí ve velkém měřítku.

IaC pomáhá týmům DevOps testovat aplikace v produkčních prostředích v rané fázi vývojového cyklu. Týmy můžou spolehlivě zřizovat více testovacích prostředí na vyžádání. Cloud dynamicky alokuje a dekonstruuje prostředí na základě definic IaC. Samotný kód infrastruktury je možné ověřit a otestovat, aby se zabránilo běžným problémům s nasazením.

Použití deklarativních definičních souborů

IaC by měl používat deklarativní definiční soubory, pokud je to možné. Definiční soubor popisuje komponenty a konfiguraci, které prostředí vyžaduje, ale nemusí nutně zajistit, jak této konfigurace dosáhnout. Soubor může například definovat požadovanou verzi a konfiguraci serveru, ale ne zadat proces instalace a konfigurace serveru. Tato abstrakce umožňuje větší flexibilitu používat optimalizované techniky, které poskytovatel infrastruktury poskytuje. Deklarativní definice také pomáhají snížit technický dluh spojený s údržbou příkazového kódu, jako jsou skripty pro nasazení, které můžou nabíhat v průběhu času.

Pro deklarativní IaC neexistuje žádná standardní syntaxe. Syntaxe pro popis IaC obvykle závisí na požadavcích cílové platformy. Různé platformy podporují formáty souborů, jako jsou YAML, JSON a XML.

Nasazení IaC v Azure

Azure poskytuje nativní podporu IaC prostřednictvím modelu Azure Resource Manageru . Týmy můžou definovat deklarativní šablony ARM pomocí syntaxe JSON nebo Bicep a určit infrastrukturu potřebnou k nasazení řešení. K dispozici jsou také řešení třetích stran, jako je Terraform prostřednictvím konkrétních poskytovatelů Azure.