Terraform-kód tesztelése

A Terraform lehetővé teszi a felhőinfrastruktúra definícióját, előzetes verzióját és üzembe helyezését. A Terraform használatával konfigurációs fájlokat hozhat létre HCL-szintaxissal. A HCL szintaxissal megadhatja a felhőszolgáltatót – például az Azure-t – és a felhőinfrastruktúra elemeit. A konfigurációs fájlok létrehozása után létrehoz egy végrehajtási tervet , amely lehetővé teszi az infrastruktúra változásainak előzetes megtekintését az üzembe helyezés előtt. A módosítások ellenőrzése után alkalmazza a végrehajtási tervet az infrastruktúra üzembe helyezésére.

A Terraform egy Infrastruktúra kódként (IaC) eszköz. Ez az eszközkategória arra utal, hogy a Terraform-fájlokat ugyanúgy kezeli, mint a projekt forráskódját. A folyamat része a verziószámozás és a forráskód-vezérlés. Emellett a tesztelésnek is a folyamat részét kell képeznie. Ez a cikk áttekintést nyújt a Terraform-projekteken futtatható tesztek különböző típusairól.

Integrációs tesztelés implementálása

Az integrációs tesztek ellenőrzik, hogy az újonnan bevezetett kódmódosítások nem szegik-e meg a meglévő kódot. A DevOpsban a folyamatos integráció (CI) egy olyan folyamatra utal, amely a teljes rendszert létrehozza a kódbázis módosításakor – például valaki, aki egy pr-t szeretne egyesíteni egy Git-adattárral. Az alábbi lista az integrációs tesztek gyakori példáit tartalmazza:

  • Statikus kódelemzési eszközök, például lint és formátum.
  • A terraform-ellenőrzés futtatásával ellenőrizze a konfigurációs fájl szintaxisát.
  • Futtassa a Terraform-tervet , hogy a konfiguráció a várt módon működjön.

Egységtesztelés implementálása

Az egységtesztek biztosítják, hogy a program egy adott része vagy funkciója megfelelően működjön. Az egységteszteket a funkció fejlesztője írja. Ezt a tesztelési típust tesztalapú fejlesztésnek vagy TDD-nek is nevezik, amely folyamatos, rövid fejlesztési ciklusokat foglal magában. A Terraform-projektek kontextusában az egységtesztelés úgy is lehetséges, hogy a terraform plan generált tervben elérhető tényleges értékek megegyeznek a várt értékekkel.

Az egységtesztelés különösen hasznos lehet, ha a Terraform-modulok egyre összetettebbé válnak:

  • Dinamikus blokkok létrehozása
  • Hurkok használata
  • Helyi változók kiszámítása

Az integrációs tesztekhez hasonlóan az egységtesztek is sokszor szerepelnek a folyamatos integrációs folyamatban.

Megfelelőségi tesztelés implementálása

A megfelelőség tesztelésével biztosítható, hogy a konfiguráció megfeleljen a projekthez meghatározott szabályzatoknak. Meghatározhatja például az Azure-erőforrások geopolitikai elnevezési konvencióit. Vagy azt is megteheti, hogy a virtuális gépeket a rendszerképek egy meghatározott részhalmazából szeretné létrehozni. Ezeknek a szabályoknak a kikényszerítéséhez megfelelőségi tesztelés szükséges.

A megfelelőségi tesztelést általában a folyamatos integrációs folyamat részeként definiálják.

Végpontok közötti (E2E) tesztelés implementálása

Az E2E-tesztek ellenőrzik, hogy egy program működik-e az éles környezetben való üzembe helyezés előtt. Példaforgatókönyv lehet egy Terraform-modul, amely két virtuális gépet helyez üzembe egy virtuális hálózaton. Előfordulhat, hogy meg szeretné akadályozni, hogy a két gép pingelje egymást. Ebben a példában meghatározhat egy tesztet, amely ellenőrzi a tervezett eredményt az üzembe helyezés előtt.

Az E2E-tesztelés általában háromlépéses folyamat. Először is a konfiguráció egy tesztkörnyezetre lesz alkalmazva. A kód ezután lefut az eredmények ellenőrzéséhez. Végül a tesztkörnyezet újraincializálódik vagy leáll (például felszabadít egy virtuális gépet).