Porovnání Terraformu a Bicep

Aby bylo možné dosáhnout škálování, týmy DevOps vždy hledají způsoby rychlého nasazení kódu s důvěryhodným a opakovatelným procesem. Pokud jde o cloud a infrastrukturu, tento proces se stále častěji dosahuje pomocí infrastruktury jako kódu (IaC). Nástroje IaC jsou různé od nástrojů pro obecné účely až po nástroje určené pro konkrétní prostředí. Terraform je příkladem bývalého nástroje, zatímco Bicep je navržený tak, aby zpracovával úlohy související s Azure.

V tomto článku porovnáváme devět funkcí infrastruktury a integrace Bicep a Terraformu. Pochopení těchto rozdílů vám pomůže rozhodnout se, který nástroj nejlépe podporuje vaši infrastrukturu a procesy.

Stav a back-end

Terraform i Bicep jsou konfigurace požadovaného stavu (DSC), která usnadňuje správu IT a vývojové infrastruktury jako kódu. Terraform ukládá stav o spravované infrastruktuře a konfiguraci. Terraform pomocí těchto informací mapuje skutečné prostředky na vaši konfiguraci, sleduje metadata a zlepšuje výkon větších infrastruktur. Stav je uložen v místním souboru s názvem terraform.tfstate, ale může být uložen také vzdáleně. Je důležité zálohovat a zabezpečit soubory stavu. Stejně jako Terraform je Bicep deklarativní a hledání cílů. Bicep ale neukládá stav. Místo toho bicep spoléhá na přírůstkové nasazení.

Cíle infrastruktury

Při porovnávání Bicep s Terraformem pro správu cloudové infrastruktury je důležité zvážit vaše cílové cloudové prostředí:

  • Pouze Azure
  • Více cloudů nebo hybridních cloudů

Bicep je specifický pro Azure a není navržený tak, aby fungoval s jinými cloudovými službami.

Pokud vaším cílem je automatizovat nasazení do některého z následujících prostředí, terraform je pravděpodobně lepší volbou:

  • Virtualizační prostředí
  • Scénáře s více cloudy – například Azure a další cloudy
  • Místní úlohy

Terraform komunikuje s jinými poskytovateli cloudu nebo rozhraními API pomocí modulů plug-in označovaných jako poskytovatelé. Existuje několik poskytovatelů Azure Terraformu, kteří umožňují správu infrastruktury Azure. Při kódování konfigurace Terraformu zadáte požadované zprostředkovatele, které používáte. Když spustíte inicializaci terraformu, nainstaluje se zadaný zprostředkovatel a bude ho možné použít z vašeho kódu.

Nástroje rozhraní příkazového řádku

Nástroje rozhraní příkazového řádku (CLI) hrají klíčovou roli při orchestraci prostřednictvím implementace a správy automatizačních technologií. Bicep i Terraform nabízejí nástroje rozhraní příkazového řádku.

Bicep se integruje s Azure CLI, což vývojářům umožňuje používat az příkazy, jako jsou:

  • az bicep: Příkazy az bicep umožňují provádět takové úlohy, jako je instalace Bicep a vytváření a publikování souborů Bicep.
  • az deployment: Článek Nasazení prostředků pomocí Bicep a Azure CLI vysvětluje, jak používat Azure CLI se soubory Bicep k nasazení prostředků do Azure.

Rozhraní příkazového řádku Terraformu umožňuje provádět takové úlohy, jako je ověření a formátování kódu Terraformu, a vytvoření a použití plánu provádění.

Bicep také poskytuje funkci, která usnadňuje integraci Bicep se službou Azure Pipelines. Pro Terraform je dostupná podobná funkce, ale musíte si stáhnout a nainstalovat rozšíření Azure Pipelines Terraform Tasks pro Visual Studio. Po instalaci můžete z Azure Pipelines spustit příkazy Rozhraní příkazového řádku Terraformu. Kromě toho Terraform i Bicep podporují GitHub Actions k automatizaci softwarových sestavení, testů a nasazení.

zpracovává se

Existují některé důležité rozdíly mezi Bicep a Terraformem z hlediska efektivity a optimalizace nasazení. Při bicep probíhá zpracování na straně základní služby infrastruktury Azure. Tato funkce nabízí výhody, jako je předběžné zpracování pro kontrolu zásad nebo dostupnost nasazení více instancí v rámci oblasti. Pomocí Terraformu se zpracování provádí v rámci klienta Terraformu. Předběžné zpracování proto nezahrnuje žádná volání do Azure, protože používá stav a HCL (HashiCorp Language) k určení požadovaných změn.

Ověřování

Funkce ověřování Azure se liší mezi Bicepem a Terraformem. S Bicep se během požadavku na odeslání souboru Bicep a šablony ARM zadává autorizační token. ARM zajišťuje, že máte oprávnění k vytvoření nasazení i nasazení prostředků v rámci zadané šablony. Terraform ověřuje každé rozhraní API na základě přihlašovacích údajů zprostředkovatele, jako jsou Azure CLI, instanční objekt nebo spravované identity pro prostředky Azure. Kromě toho lze v jedné konfiguraci využít více přihlašovacích údajů zprostředkovatele.

Integrace Azure

Měli byste také zvážit použití funkcí Azure, jako je Azure Policy , a způsob interakce s jinými nástroji a jazyky. Předběžné ověření Bicep určuje, jestli prostředek nevyhovuje zásadám, aby selhal před nasazením. Vývojáři tak můžou opravovat prostředky pomocí zásad pomocí poskytnutých šablon ARM. Šablonu ARM můžete použít k vytvoření přiřazení zásady k jinému prostředku pro účely automatizované nápravy. Terraform ale selže, když je prostředek nasazený, který je kvůli zásadám zakázaný.

Integrace portálu

Jednou z hlavních výhod, které Má Bicep oproti Terraformu, je možnost automatizovat akce portálu. Pomocí Bicep můžete pomocí webu Azure Portal exportovat šablony. Export šablony vám pomůže pochopit syntaxi a vlastnosti, které nasazují vaše prostředky. Budoucí nasazení můžete automatizovat tak, že začnete s exportovanou šablonou a upravíte je tak, aby vyhovovala vašim potřebám. Dokud nebudou podporované šablony Terraformu, musíte exportovanou šablonu přeložit ručně.

I když Terraform neposkytuje stejné integrace portálu jako Bicep, stávající infrastrukturu Azure je možné provést ve správě Terraformu pomocí Azure Exportu pro Terraform. (Azure Export for Terraform je opensourcový nástroj vlastněný a spravovaný Microsoftem na webu Úložiště Azure/aztfexport GitHub.)

Vzdálené změny

Změny vzdálené konfigurace jsou změny provedené v konfiguraci zařízení mimo kontext nástroje. Řekněme například, že nasadíte škálovací sadu virtuálních počítačů pomocí Bicep nebo Terraformu. Pokud tuto škálovací sadu virtuálních počítačů změníte pomocí portálu, změna bude pro váš nástroj IaC "mimo pásmo" a neznámá.

Pokud používáte Bicep, měly by se změny mimo pásmo odsouhlasit s Bicepem a kódem šablony ARM, aby se tyto změny při příštím nasazení nepřepsaly. Tyto změny neblokují nasazení.

Pokud používáte Terraform, musíte importovat změny mimo pásmo do stavu Terraformu a aktualizovat seznam HCL.

Proto pokud prostředí zahrnuje časté vzdálené změny, bicep je uživatelsky přívětivější. Při použití Terraformu byste měli minimalizovat změny mimo pásmo.

Cloudové architektury

Architektura přechodu na cloud (CAF) je kolekce dokumentace, osvědčených postupů a nástrojů pro zrychlení přechodu na cloud během vaší cesty ke cloudu. Azure poskytuje nativní služby pro nasazení cílových zón. Bicep tento proces zjednodušuje s portálovým prostředím založeným na šablonách ARM a implementaci cílové zóny. Terraform využívá modul cílových zón na podnikové úrovni k nasazení, správě a zprovoznění pomocí Azure.

Shrnutí

Bicep a Terraform nabízejí mnoho uživatelsky přívětivých funkcí infrastruktury a integrace. Tyto funkce usnadňují implementaci a správu automatizačních technologií. Při rozhodování, která je pro vaše prostředí nejvhodnější, je důležité zvážit, jestli nasazujete do více než jednoho cloudu nebo jestli se vaše infrastruktura skládá z více nebo hybridního cloudového prostředí. Kromě toho nezapomeňte vzít v úvahu devět funkcí probíraných v tomto článku, aby byla pro vaši organizaci nejlepší volbou.