Infrastruktur som kod

Slutförd

Infrastruktur som kod (IaC) är processen att hantera och etablera resurser för molninfrastruktur via maskinläsbar kod som lagras i källkontrollen. Möjligheten att behandla infrastrukturen på samma sätt som med andra källkoder är anledningen till att den här metoden kallas infrastruktur som kod.

IaC är en viktig komponent i DevOps eftersom det möjliggör automatisering av infrastrukturkonfiguration och distribution. Den här automatiseringen minskar den tid och det arbete som krävs för att hantera och etablera infrastruktur, samtidigt som infrastrukturen konfigureras konsekvent och tillförlitligt. IaC hjälper också till att säkerställa att infrastrukturen är säker och kompatibel med organisationens principer.

Azure-inbyggda och molnagnostiska verktyg

En av de viktigaste faktorerna när du väljer ett IaC-verktyg är din molnmiljö:

  • Azure-inbyggda verktyg: IaC-verktyg som Azure CLI, Azure PowerShell och Bicep är endast tillgängliga i Azure. Eftersom samma företag tillhandahåller både molninfrastrukturen och IaC-verktygen minskar förmånen tiden mellan lansering av molnfunktioner och stöd i verktygen.

  • Molnagnostiska verktyg: Med IaC-verktyg som Terraform kan du hantera infrastruktur som kod i miljöer med blandat moln. Beroende på IaC-verktyget kanske nyligen släppta Azure-funktioner inte stöds omedelbart.

Imperativa kontra deklarativa IaC-verktyg

Det finns två typer av IaC-konfigurationsverktyg:

  • Imperativa IaC-verktyg: Ett imperativt verktyg, eller språk, är ett verktyg där koden uttryckligen anger vad som ska göras och hur. Koden som du skriver utför åtgärder i en viss ordning, ett steg i taget, för att konfigurera infrastrukturen. De flesta imperativa IaC-verktyg är inte idempotent eftersom konfigurationen utförs steg för steg.

    Imperativa IaC-verktyg för att hantera och etablera resurser i Azure är:

    • Azure CLI
    • Azure PowerShell
  • Deklarativa IaC-verktyg: Med ett deklarativt verktyg eller språk kan du ange önskat resultat i stället för hur du vill att varje steg ska utföras. De flesta deklarativa IaC-verktyg följer ett vanligt mönster. När du har skapat definitionen av infrastrukturen kör du ett kommando för att etablera det du har definierat. Deklarativa IaC-verktyg är idempotent eftersom konfigurationen kan tillämpas flera gånger, oavsett tillståndet för infrastrukturens konfiguration. Den här möjligheten hjälper dig att förhindra konfigurationsavvikelser genom att återställa inkompatibel infrastruktur till efterlevnad.

    Deklarativa IaC-verktyg för att hantera och etablera resurser i Azure är:

    • Bicep
    • Terraform

Rekommendationer

  • Anta en IaC-metod för att distribuera, hantera, styra och stödja Azure-distributioner.
  • Använd Azure-inbyggda verktyg för IaC i följande scenarier:
    • Du vill bara använda Azure-inbyggda verktyg. Din organisation har tidigare erfarenhet av att distribuera Azure Resource Manager-mallar (ARM-mallar).
    • Din organisation vill ha omedelbart stöd för alla förhandsversioner och allmänna tillgänglighetsversioner av Azure-tjänster.
  • Använd icke-inbyggda verktyg för IaC i följande scenarier:
    • Din organisation hanterar infrastruktur i miljöer med blandat moln.
    • Din organisation behöver inte omedelbart stöd för alla förhandsversioner och GA-versioner av Azure-tjänster.