Använda distributionsringar med tilläggsversioner

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Med distributionsringar kan du gradvis distribuera och verifiera ändringar i tillägget i produktion, samtidigt som du begränsar påverkan på användarna.

Vi rekommenderar inte att du distribuerar till alla produktionsmiljöer samtidigt, vilket gör alla användare tillgängliga för ändringarna. En gradvis distribution exponerar användarna för ändringarna över tid, vilket validerar ändringarna i produktionen med färre användare.

I följande tabell visas skillnaderna för berörda områden när du använder ringar jämfört med inga ringar.

Utan ringar Påverkat område Med ringar
Manuell och felbenägen Skapa Automatiserad och konsekvent
Manuell och felbenägen Frisläpp Automatiserad och konsekvent
Tider Tid att bygga (TTB) Sekunder
Dagar Tid att släppa (TTR) Minuter
Samtal från användare Problemidentifiering Proaktiv
Dagar till veckor Problemlösning Minuter till dagar

Mer information finns i Konfigurera versionspipelines för säkra distributioner.

Förutsättningar

Tilldela användartyper

Ta reda på vilka användare som passar bäst för varje användartyp. Kommunicera möjligheten att ge feedback och risknivåerna på varje nivå, eftersom det är viktigt att ställa förväntningar och säkerställa framgång. I följande exempel delas användarna in i tre grupper i produktion:

  • Kanariefåglar: testa funktioner frivilligt så snart de är tillgängliga.
  • Tidiga användare: frivilligt förhandsversioner, anses vara mer raffinerade än kanariebitar.
  • Användare: konsumera produkterna när de har gått igenom kanariefåglar och tidiga användare.

Användarringar

Mappa topologin

Mappa topologin för tillägget till den ringmärkta distributionsmodellen för att begränsa effekten av ändringar på användarna och leverera värde. För våra communitytillägg med öppen källkod använder vi främst ringbaserad distribution för att progressivt exponera en ny version för kanarieanvändare, tidiga användare och användare.

På programnivå är sammansättningen av Azure DevOps-tillägg enkel att sammanfatta, skala och distribuera oberoende av varandra.

Varje tillägg utför följande uppgifter:

  • Har en av fler webb- och skriptfiler
  • Gränssnitt med Core-klienten
  • Gränssnitt med REST-klient- och REST-API:er
  • Bevarar tillståndet i cacheminnet eller elastisk lagring

Progressiv exponering av programskiktet

På infrastrukturnivå publiceras tilläggen på Marketplace. När du har installerat tillägget i din organisation värdhanteras det av Azure DevOps-tjänstportalen, med tillstånd kvar i Azure Storage eller lagring av tilläggsdata.

Progressiv exponering av infrastrukturskiktet

Tilläggstopologin passar perfekt för ringdistributionsmodellen och för att publicera tillägget till varje distributionsring:

  • En privat utvecklingsversion för kanarieringen
  • En privat förhandsversion för early adopter-ringen
  • En offentlig produktionsversion för användarringen

Dricks

Publicera tillägget som privat för att kontrollera exponeringen för inbjudna användare.

Flytta ändringar via distributionsringar

Se följande exempelflöde för att flytta ändringar via distributionsringar.

Använd tillägget Azure DevOps Developer Tools Build Tasks för att paketera och publicera tillägg på Marketplace.

Tilläggsringar

  1. En utvecklare från countdown widget-tillägget genomför en ändring av GitHub-lagringsplatsen .
  2. Incheckningen utlöser en kontinuerlig integreringsversion.
  3. Den nya versionen utlöser en kontinuerlig distributionsutlösare som automatiskt startar distributionen av canaries-miljön .
  4. Canaries-distributionen publicerar ett privat tillägg till Marketplace och delar det med fördefinierade organisationer. Endast kanariefåglarna påverkas av ändringen.
  5. Distributionen Kanariefåglar utlöser distributionen av early adopter-miljön . En grind för godkännande före distributionen kräver att någon av de behöriga användarna godkänner versionen. Godkännande före distribution för early adopter-miljö
  6. Early Adopter-distributionen publicerar ett privat tillägg till marknadsplatsen och delar det med fördefinierade organisationer. Både Canaries och Early Adopter påverkas av ändringen.
  7. Distributionen early adopter utlöser distributionen av användarmiljön . En striktare grind för godkännande före distributionen kräver att alla behöriga användare godkänner versionen. Godkännande före distribution för användarmiljö
  8. Distributionen Användare publicerar ett offentligt tillägg till marketplace. I det här skedet påverkas alla som har installerat tillägget i organisationen av ändringen.
  9. Det är viktigt att inse att effekten ökar när din förändring rör sig genom ringarna. Om du exponerar ändringen för Kanariefåglarna och Early Adopters får du två möjligheter att verifiera ändringen och snabbkorrigeringskritiska buggar innan du släpper till produktion.

Övervaka problem

Övervakning och aviseringar kan hjälpa dig att identifiera och åtgärda problem. Ta reda på vilken typ av data som är viktig, till exempel infrastrukturproblem, överträdelser och funktionsanvändning. Fokusera på åtgärdsbara aviseringar för att undvika att användare ignorerar dem och saknar problem med hög prioritet.

Dricks

Börja med övergripande vyer av dina data, visuella instrumentpaneler som du kan titta på långtifrån och öka detaljnivån efter behov. Utför regelbunden hushållning av dina vyer och ta bort allt brus. En visuell instrumentpanel berättar en bättre historia än många e-postmeddelanden, ofta filtrerade och bortglömda av e-postregler.

Använd Team Project Health och andra tillägg för att skapa en översikt över dina pipelines, led- och cykeltider och samla in annan information. I exempelinstrumentpanelen är det uppenbart att det finns 34 lyckade versioner, 21 lyckade versioner, 1 misslyckad version och 2 versioner pågår.

Instrumentpanel på hög nivå i Azure DevOps

Finns det ett beroende av funktionsflaggor?

Nej. Ibland kan du behöva en viss funktion för att distribueras som en del av en version, men inte först exponeras för användare. Med funktionsflaggor får du detaljerad kontroll över funktioner som ingår i ändringen. Om du till exempel inte är helt säker på en funktion kan du använda funktionsflaggor för att dölja funktionen i en eller alla distributionsringar. Du kan aktivera alla funktioner i canaries-ringen och finjustera en delmängd för tidiga användare och produktionsanvändare, enligt följande bild.

Funktionsflaggor

Mer information finns i Progressiv experimentering med funktionsflaggor.

Vanliga frågor

F: Hur vet du att en ändring kan distribueras till nästa ring?

S: Du bör ha en konsekvent checklista för användare som godkänner en version.

F: Hur länge väntar du innan du skickar en ändring till nästa ring?

Det finns ingen fast varaktighet eller "avkylningsperiod". Det beror på hur lång tid det tar för dig att slutföra alla versionsvalideringar.

F: Hur hanterar du en snabbkorrigering?

S: Med ringdistributionsmodellen kan du bearbeta en snabbkorrigering som alla andra ändringar. Ju tidigare du får ett problem, desto tidigare kan du distribuera en snabbkorrigering utan effekt på underordnade ringar.

F: Hur hanterar du variabler som omfattar delade versionsmiljöer?

S: Se Standardvariabler och anpassade versionsvariabler.

F: Hur kan du hantera hemligheter som används av pipelinen?

S: Information om hur du skyddar kryptografiska nycklar och andra hemligheter som används av dina pipelines finns i Azure Key Vault.