Distribuera tillfälliga miljöer för granskningar
Om du lintar din Bicep-kod får du en indikation på om din Azure-distribution sannolikt kommer att lyckas. Det är också bra att faktiskt distribuera Bicep-koden någonstans för att se hur din miljö kommer att se ut när pull-begäran har sammanfogats och distributionen är klar.
I den här lektionen får du lära dig hur du distribuerar koden till en tillfällig miljö inifrån en pull-begäran.
Varför ska du distribuera koden inifrån en pull-begäran?
När du granskar en pull-begäran som innehåller Bicep-kod är det bra att distribuera Bicep-koden till en riktig Azure-miljö. Genom att göra det kan du skapa förtroende för att dina ändringar fungerar när de når produktionsmiljön. Om det finns ett problem vill du upptäcka det snabbt. Pull-begäranden ger dig en bra möjlighet att upptäcka och belysa problem, eftersom du får omedelbar feedback från granskarna.
Nu är du van vid tanken på att distribuera ändringarna till en eller flera icke-produktionsmiljöer, till exempel Test, QA och Staging, innan du distribuerar dem till produktionsmiljön. I många organisationer är dessa miljöer långlivade, vilket innebär att de uppdateras när ändringarna distribueras och att miljöerna vanligtvis inte tas bort.
En tillfällig miljö är däremot en miljö som du skapar dynamiskt och en miljö som du är bekväm med att tas bort när den inte längre är användbar. Tillfälliga miljöer är avsedda att finnas under en kort tid (till exempel bara tillräckligt länge för att dina ändringar ska kunna granskas).
Tillfälliga miljöer är ett bra val när du distribuerar miljöer för pull-begäranden, eftersom du kan ha många separata pull-begäranden öppna åt gången, vilket representerar olika typer av ändringar. Om du har flera pull-begäranden öppna innebär delning av dina långvariga icke-produktionsmiljöer att du bara kan förhandsgranska en ändring i taget.
Skapa tillfälliga miljöer
Eftersom du är så van vid att skapa din Azure-infrastruktur som kod och har investerat i att skapa dina Bicep-filer för att distribuera dina resurser kan du återanvända samma tillgångar för att distribuera en tillfällig miljö. Du kan till och med distribuera flera tillfälliga miljöer åt gången, om du behöver det. Du behöver bara se till att dina distributioner är tillräckligt parametriserade och generaliserade så att du enkelt kan skapa oberoende miljöer. Du måste till exempel se till att vissa Azure-resurser får globalt unika namn, som inte kan vara samma som resursnamn i andra tillfälliga eller långvariga miljöer.
Tillfälliga miljöer erbjuder många fördelar:
- Du kan på ett säkert sätt testa nya funktioner i en isolerad miljö som inte påverkar dina andra produktions- eller icke-produktionsarbetsbelastningar.
- Du kan visa dina ändringar i din egen gren, så att du enkelt kan visa upp ditt arbete för dina kollegor eller ge åtkomst till granskare.
- Du kan låta flera teammedlemmar testa separata ändringar samtidigt, även om ändringarna är inkompatibla.
- Eftersom de innebär att köra Bicep-filerna regelbundet hjälper tillfälliga miljöer dig att kontinuerligt testa noggrannheten och fullständigheten i din Bicep-kod och andra skript. Därför kan du vara mer säker på att koden kommer att köras perfekt i produktionsmiljön.
I den här modulen skapar du tillfälliga miljöer som hjälper dig att skapa förtroende för ändringarna i pull-begäranden. Alla som granskar pull-begäran kan komma åt den tillfälliga miljön, inklusive eventuella nya tillägg och uppdateringar, innan de godkänner och sammanfogar pull-begäran.
Distribution
När du arbetar med tillfälliga miljöer är det bäst att skapa en separat Azure-resursgrupp för varje pull-begäran som ditt team skapar. Om en författare har två separata pull-begäranden öppna har var och en egen tillfällig miljö. Detta hjälper till att hålla varje ändring skild från de andra, och det kan bidra till att undvika förvirring eller oavsiktligt skriva över resurser.
För att den här metoden ska fungera måste valideringsarbetsflödet för pull-begäran skapa resursgrupper dynamiskt. Resursgrupper kräver unika namn, och du måste också enkelt hitta resursgruppen för att både testa resurserna och ta bort dem när pull-begäran stängs. Om du vill hantera resursgruppsnamn effektivt kan du använda pull-begärandenumret i resursgruppens namn. Du får se hur du gör detta i nästa övning.
När det är dags att ta bort den tillfälliga miljön är det enkelt för arbetsflödet att hitta och ta bort hela resursgruppen. Alla resurser som används i den tillfälliga miljön tas bort samtidigt.
Behörigheter
Att skapa resursgrupper kräver behörigheter på prenumerationsnivå och kräver vanligtvis att rollen Deltagare tilldelas till arbetsflödets arbetsbelastningsidentitet.
Det är en bra idé att använda en dedikerad Azure-prenumeration för tillfälliga miljöer. Genom att följa den här metoden kan du ge åtkomst till arbetsflödets arbetsbelastningsidentitet och till dina teammedlemmar utan att av misstag ge åtkomst till dina andra miljöer.
Viktigt!
Deltagare med prenumerationsomfång är kraftfulla, så du måste se till att du har tillräcklig styrning kring arbetsflödets arbetsbelastningsidentitet och de ändringar som den kan distribuera. Genom att använda en dedikerad prenumeration för tillfälliga miljöer minskar du risken för dina andra miljöer.
Arbetsflödets identitet
Ditt distributionsarbetsflöde använder en arbetsbelastningsidentitet och federerade autentiseringsuppgifter för att autentisera till Azure. När du använder arbetsflöden för validering av pull-begäranden måste du konfigurera de federerade autentiseringsuppgifterna så att de fungerar med pull-begäranden.
I en tidigare övning i den här modulen körde du ett kommando för att skapa en federerad autentiseringsuppgift. Principsträngen såg ut ungefär så här:
repo:my-github-user/my-repo:pull_request
I pull_request
slutet av strängen anges att de federerade autentiseringsuppgifterna fungerar med valideringsarbetsflöden för pull-begäranden.
Kostnadshantering
När du skapar tillfälliga miljöer dynamiskt finns det en risk att dina Azure-kostnader kan öka. Om ditt team har ett stort antal pull-begäranden öppna kan du distribuera ett stort antal kostsamma resurser till Azure.
Dricks
Om ditt team stänger pull-begäranden snabbt är ökade kostnader mindre oroande eftersom en tillfällig miljö tas bort när motsvarande pull-begäran stängs.
Genom att använda en dedikerad Azure-prenumeration kan du också enkelt övervaka kostnaderna för dina tillfälliga miljöer. Och du kan tillämpa prenumerationsomfattande principer som begränsar SKU:erna för dina tillfälliga resurser, vilket kan hjälpa dig att undvika kostnadsöverskridanden.
Dessutom tillhandahåller Azure många sätt att hjälpa dig att kontrollera kostnaderna för tillfälliga miljöer, inklusive:
- Med Microsoft Cost Management kan du ange budgetar för en prenumeration. Budgetar utlöser meddelanden så att ditt team blir medveten om att kostnaden närmar sig det tröskelvärde som du har angett.
- Många Azure-resurstyper tillhandahåller billigare eller till och med kostnadsfria nivåer för icke-produktionsarbetsbelastningar. Fundera på om du kan använda dessa prisnivåer och SKU:er.
- Priser för Azure Dev/Test är tillgängliga för vissa kunder att använda för sina icke-produktionsprenumerationer.
- Resurstaggar kan hjälpa dig att identifiera de resurser som är associerade med varje tillfällig miljö och beräkna kostnaden för varje tillfällig miljö.
- Du kan skapa automationsskript för att ta bort dina tillfälliga resurser efter en definierad tidsperiod eller till och med, till exempel varje natt efter kontorstid.
Du kan också överväga att dela vissa resurser mellan tillfälliga miljöer. Din Bicep-kod kan till exempel definiera många resurser, varav några är kostsamma eller som tar lång tid att etablera. Du kan skapa en delad, långlivad resursgrupp för alla dina pull-begäranden för att dela de kostsamma resurserna och skapa separata tillfälliga resursgrupper för de andra resurserna. Den här metoden gör det dock svårt och felbenäget att hantera dina tillfälliga miljöer och att hålla dem tillräckligt åtskilda för att vara till hjälp under granskningsprocessen. Det är bäst att undvika den här metoden om inte kostnaden för dina tillfälliga miljöer blir för hög.