Testování kódu Terraformu
Terraform umožňuje definici, verzi Preview a nasazení cloudové infrastruktury. Pomocí Terraformu vytvoříte konfigurační soubory pomocí syntaxe HCL. Syntaxe seznamu HCL umožňuje zadat poskytovatele cloudu , například Azure, a prvky, které tvoří vaši cloudovou infrastrukturu. Po vytvoření konfiguračních souborů vytvoříte plán provádění, který vám umožní zobrazit náhled změn infrastruktury před jejich nasazením. Jakmile ověříte změny, použijete plán provádění k nasazení infrastruktury.
Terraform je nástroj Infrastruktura jako kód (IaC). Tato kategorie nástroje odkazuje na skutečnost, že se soubory Terraformu zacházíte stejně jako se zdrojovým kódem projektu. Součástí tohoto procesu je správa verzí a správa zdrojového kódu. Testování by také mělo být součástí vašeho procesu. Tento článek poskytuje přehled různých typů testů, které je možné spouštět v projektu Terraformu.
Implementace integračního testování
Testy integrace ověřují, že nově zavedená změna kódu neporuší stávající kód. V DevOps odkazuje kontinuální integrace (CI) na proces, který sestaví celý systém při každé změně základu kódu – například někdo, kdo chce sloučit žádost o přijetí změn do úložiště Git. Následující seznam obsahuje běžné příklady integračních testů:
- Nástroje pro analýzu statického kódu, jako je lint a formát.
- Spuštěním příkazu terraform ověřte syntaxi konfiguračního souboru.
- Spusťte plán terraformu, abyste zajistili, že konfigurace bude fungovat podle očekávání.
Implementace testování jednotek
Testy jednotek zajišťují správné chování určité části nebo funkce programu. Testy jednotek jsou napsány vývojářem funkcí. Někdy se tento typ testování označuje jako vývoj řízený testy nebo TDD, zahrnuje průběžné krátké vývojové cykly. V kontextu projektů Terraformu může testování jednotek mít formu použití terraform plan
, aby se zajistilo, že skutečné hodnoty dostupné ve vygenerovaném plánu budou odpovídat očekávaným hodnotám.
Testování jednotek může být zvlášť užitečné, když se moduly Terraformu začnou stát složitějšími:
- Generování dynamických bloků
- Používání smyček
- Výpočet místních proměnných
Stejně jako u integračních testů se do procesu kontinuální integrace zahrnou často testy jednotek.
Implementace testování dodržování předpisů
Testování dodržování předpisů se používá k zajištění toho, aby konfigurace dodržovala zásady, které jste pro projekt definovali. Můžete například definovat geopolitické zásady vytváření názvů pro prostředky Azure. Nebo můžete chtít, aby se virtuální počítače vytvořily z definované podmnožině imagí. K vynucení těchto pravidel by se použilo testování dodržování předpisů.
Testování dodržování předpisů je také obvykle definováno jako součást procesu kontinuální integrace.
Implementace kompletního testování (E2E)
Testy E2E ověřují, že program funguje před nasazením do produkčního prostředí. Příkladem scénáře může být modul Terraformu, který nasazuje dva virtuální počítače do virtuální sítě. Možná budete chtít těmto dvěma počítačům zabránit ve vzájemném ping. V tomto příkladu můžete definovat test, který ověří zamýšlený výsledek před nasazením.
Testování E2E je obvykle třístupňový proces. Nejprve se konfigurace použije pro testovací prostředí. Kód by se pak spustil, aby se ověřily výsledky. Nakonec je testovací prostředí znovu inicializované nebo vyřazené (například uvolnění virtuálního počítače).