Share via


A Terraform és a Bicep összehasonlítása

A skálázás érdekében a DevOps-csapatok mindig keresik a kód megbízható és megismételhető folyamatokkal történő gyors üzembe helyezésének módját. A felhővel és az infrastruktúrával kapcsolatban ez a folyamat egyre inkább a kódkénti infrastruktúra (IaC) használatával valósul meg. Az IaC-eszközök az általános célú eszközöktől az adott környezetekhez szánt eszközökig terjednek. A Terraform egy példa az előbbire, míg a Bicep az Azure-sal kapcsolatos feladatok kezelésére lett kialakítva.

Ebben a cikkben a Bicep és a Terraform kilenc infrastruktúráját és integrációs funkcióját hasonlítjuk össze. Ezeknek a különbségeknek a megértése segít eldönteni, hogy melyik eszköz támogatja a legjobban az infrastruktúrát és a folyamatokat.

Állapot és háttérrendszer

Mind a Terraform, mind a Bicep a kívánt állapotkonfiguráció (DSC), amely megkönnyíti az informatikai és fejlesztési infrastruktúra kódként való kezelését. A Terraform tárolja a felügyelt infrastruktúra és konfiguráció állapotát. A Terraform ezeket az információkat arra használja, hogy valós erőforrásokat képezze le a konfigurációhoz, nyomon követheti a metaadatokat, és javíthatja a nagyobb infrastruktúrák teljesítményét. Az állapot egy helyi fájlban van tárolvaterraform.tfstate, de távolról is tárolható. Az állapotfájlok biztonsági mentése és védelme kritikus fontosságú. A Terraformhoz hasonlóan a Bicep is deklaratív és célkereső. A Bicep azonban nem tárolja az állapotot. Ehelyett a Bicep növekményes üzembe helyezésre támaszkodik.

Infrastruktúra-célok

A Felhőinfrastruktúra kezeléséhez a Bicep és a Terraform összehasonlításakor fontos figyelembe venni a célfelhő-környezetet:

  • Csak Azure-beli
  • Több- vagy hibridfelhők

A Bicep Azure-specifikus, és nem más felhőszolgáltatásokkal való használatra készült.

Ha a cél az üzembe helyezés automatizálása a következő környezetek bármelyikére, akkor a Terraform valószínűleg a jobb megoldás:

  • Virtualizálási környezetek
  • Többfelhős forgatókönyvek – például az Azure és más felhők
  • Helyszíni számítási feladatok

A Terraform más felhőszolgáltatókkal vagy API-kkal is együttműködik a szolgáltatóknak nevezett beépülő modulok használatával. Számos Terraform Azure-szolgáltató teszi lehetővé az Azure-infrastruktúra kezelését. Terraform-konfiguráció kódolásakor meg kell adnia a használni kívánt szolgáltatókat. A terraform init futtatásakor a megadott szolgáltató telepítve lesz, és használható a kódból.

CLI-eszközök

A parancssori felület (CLI) eszközei kulcsfontosságú szerepet játszanak az automatizálási technológia implementálásán és felügyeletén keresztüli vezénylésben. A Bicep és a Terraform is kínál CLI-eszközöket.

A Bicep integrálható az Azure CLI-vel, így a fejlesztők a következő parancsokat használhatják az :

  • az bicep: Az az bicep parancsokkal olyan feladatokat hajthat végre, mint a Bicep telepítése, valamint a Bicep-fájlok létrehozása és közzététele.
  • az deployment: Az Erőforrások üzembe helyezése a Bicep-lel és az Azure CLI-vel című cikk azt ismerteti, hogyan használhatja az Azure CLI-t Bicep-fájlokkal az erőforrások Azure-ban való üzembe helyezéséhez.

A Terraform CLI lehetővé teszi az olyan feladatok végrehajtását, mint a Terraform-kód ellenőrzése és formázása, valamint végrehajtási terv létrehozása és alkalmazása.

A Bicep egy olyan funkciót is biztosít, amely megkönnyíti a Bicep és az Azure Pipelines integrálását. A Terraformhoz hasonló funkció érhető el, de le kell töltenie és telepítenie kell a Visual Studio Azure Pipelines Terraform Tasks bővítményét. A telepítés után a Terraform CLI-parancsokat az Azure Pipelinesból futtathatja. Emellett a Terraform és a Bicep is támogatja a GitHub Actionst a szoftver buildjeinek, tesztjeinek és üzembe helyezésének automatizálásához.

Feldolgozás

A Bicep és a Terraform között az üzemelő példányok hatékonysága és optimalizálása szempontjából van néhány fontos különbség. A Bicep esetében a feldolgozás az Azure-infrastruktúra alapvető szolgáltatásoldalán belül történik. Ez a funkció olyan előnyöket kínál, mint például az előzetes feldolgozás a szabályzat ellenőrzéséhez vagy a több példány régión belüli üzembe helyezésének rendelkezésre állásához. A Terraform használatával a feldolgozás a Terraform-ügyfélen belül történik. Az előfeldolgozás tehát nem jár az Azure-ba irányuló hívásokkal, mivel az állapot és a HCL (HashiCorp Language) használatával határozza meg a szükséges módosításokat.

Hitelesítés

Az Azure-hitelesítési funkciók a Bicep és a Terraform között eltérőek. A Bicep-hez egy engedélyezési jogkivonatot ad a rendszer a Bicep-fájl és az ARM-sablon elküldésére irányuló kérés során. Az ARM biztosítja, hogy ön is rendelkezik engedéllyel az üzembe helyezés létrehozásához és az erőforrások a megadott sablonon belüli üzembe helyezéséhez. A Terraform az egyes API-k hitelesítését szolgáltatói hitelesítő adatok alapján végzi – ilyen például az Azure CLI, a szolgáltatásnév vagy az Azure-erőforrások felügyelt identitásai. Emellett több szolgáltatói hitelesítő adat is használható egyetlen konfigurációban.

Azure-integrációk

Figyelembe kell vennie az Olyan Azure-funkciók használatát is, mint az Azure Policy , és hogy ezek hogyan működnek együtt más eszközökkel és nyelvekkel. A Bicep előzetes ellenőrzése meghatározza, hogy egy erőforrás nem felel-e meg egy szabályzatnak, így az üzembe helyezés előtt meghiúsul. Így a fejlesztők a megadott ARM-sablonok használatával szervizelhetik a szabályzattal rendelkező erőforrásokat. Az ARM-sablon használatával szabályzat-hozzárendelést hozhat létre egy másik erőforráshoz automatizált szervizelés céljából. A Terraform azonban meghiúsul, ha olyan erőforrást helyez üzembe, amely a szabályzat miatt nem engedélyezett.

Portálintegráció

A Bicep egyik fő előnye a Terraformnál a portálműveletek automatizálásának képessége. A Bicep használatával az Azure Portal használatával exportálhat sablonokat. A sablon exportálásával megismerheti az erőforrásokat üzembe helyező szintaxist és tulajdonságokat. A jövőbeli üzembe helyezéseket automatizálhatja az exportált sablonnal kezdve, és az igényeinek megfelelően módosíthatja. Amíg a Terraform-sablonok nem támogatottak, manuálisan kell lefordítania az exportált sablont.

Bár a Terraform nem biztosítja ugyanazokat a portálintegrációkat, mint a Bicep, a meglévő Azure-infrastruktúra a Terraform felügyelete alatt vehető igénybe az Azure Export for Terraform használatával. (Az Azure Export for Terraform egy nyílt forráskódú eszköz, amelyet a Microsoft aAzure/aztfexport GitHub-adattár.)

Sávon kívüli módosítások

Sávon kívüli konfigurációs módosítások az eszköz konfigurációjának az eszköz környezetén kívüli módosításai. Tegyük fel például, hogy üzembe helyez egy virtuálisgép-méretezési csoportot a Bicep vagy a Terraform használatával. Ha a virtuálisgép-méretezési csoportot a portál használatával módosítja, a módosítás "sávon kívüli" lesz, és ismeretlen az IaC-eszköz számára.

Ha Bicep-et használ, a sávon kívüli módosításokat össze kell egyeztetni a Bicepvel és az ARM-sablon kódjával, hogy a módosítások ne legyenek felülírva a következő üzembe helyezéskor. Ezek a módosítások nem tiltják le az üzembe helyezést.

Ha Terraformot használ, importálnia kell a sávon kívüli módosításokat a Terraform állapotába, és frissítenie kell a HCL-t.

Így ha egy környezet gyakran jár sávon kívüli módosításokkal, a Bicep felhasználóbarátabb. A Terraform használatakor minimálisra kell csökkenteni a sávon kívüli módosításokat.

Felhőbeli keretrendszerek

A felhőadaptálási keretrendszer (CAF) dokumentációk, ajánlott eljárások és eszközök gyűjteménye, amelyek segítségével felgyorsíthatja a felhőbevezetést a felhőbeli utazás során. Az Azure natív szolgáltatásokat biztosít a kezdőzónák üzembe helyezéséhez. A Bicep ezt a folyamatot arm-sablonokon és kezdőzóna-implementáción alapuló portáli felülettel egyszerűsíti. A Terraform egy nagyvállalati szintű kezdőzónák modult használ az Azure üzembe helyezéséhez, kezeléséhez és üzembe helyezéséhez.

Összesítés

A Bicep és a Terraform számos felhasználóbarát infrastruktúrát és integrációs funkciót kínál. Ezek a funkciók megkönnyítik az automatizálási technológia implementálását és kezelését. Amikor eldönti, hogy melyik a legjobb a környezet számára, fontos megfontolni, hogy egynél több felhőben helyezi-e üzembe, vagy hogy az infrastruktúra több- vagy hibridfelhős környezetből áll-e. Emellett mindenképpen vegye figyelembe a cikkben tárgyalt kilenc funkciót, hogy a legjobb döntést hozhassa a szervezet számára.