Anvend sikre udrulningspraksisser

Fuldført
Implementer gelændere i installationsprocessen for at minimere effekten af fejl eller uventede betingelser.

Under udviklingscyklussen gennemgår arbejdsbelastningsartefakter mange ændringer, efterhånden som de implementeres og testes, og som fejlene er rettet.

Installationsprocessen skal følge en standardoperativprocedure. Alle ændringer skal installeres med samme strenghedsniveau. Dette princip gælder ligeligt for kode, konfiguration og alle relaterede artefakter. Nøglen er at anvende sikker praksis så tidligt som muligt, så du har forudsigelighed i produktionen. Selvom fejl når ud til kunderne, bør du kunne udrulle gendannelsesændringer så hurtigt som muligt.

eksempel på scenarie

Contoso Air har udviklet et webprogram, der giver kunden mulighed for at booke fly direkte via appen. Appen har kørt i produktion i mere end et år.

Appen er fuldt udrullet i Azure og er bygget på Azure App Service, Azure Cosmos DB, Azure Functions, Azure Logic Apps og Azure Service Bus.

Kodificer standarder for automatiseret installation

Standardiser processen for at udrulle ændringer ved hjælp af automatiserede udrulningsprocesser, f.eks. pipelines. Alle miljøer skal bruge pipelines. Klassificer aktiver og versioner pr. miljø for at gøre dem nemme at spore og identificere.

Ensartede installationsmetoder reducerer problemer, der skyldes procesfejl og varians, og giver dig mulighed for at fokusere din indsats på arbejdsbelastningsproblemerne.

Standardisering sikrer, at installationen udføres sikkert, pålideligt og med repeterbarhed.

Klassificering gør det nemt at få vist logfiler over tidligere installationer og problemer, der er opstået. Du kan muligvis bruge disse oplysninger til at fremskynde annullerings- og viderestillingshandlinger.

Contosos udfordring

  • Contoso Air-arbejdsbelastningsteamet bruger automatiserede build- og udrulningspipelines, men udrulninger kræver normalt manuel indgriben under hele handlingen for at ændre og validere forskellige konfigurationsindstillinger.
  • På grund af den manuelle indgriben er der hyppige fejl i udrulningen, hvilket gør hver udgivelse til en yderst stressende og forstyrrende hændelse for hele teamet. Den manuelle indgriben gør det også svært at annullere, når en udrulning mislykkes.

Anvendelse af tilgangen og resultaterne

  • Teamet allokerer tid til at automatisere konfigurationsændringerne som en del af udrulningen og til at integrere den ekstra funktionalitet i de eksisterende udrulningspipelines.
  • De konfigurationsindstillinger, der er knyttet til hvert miljø, er eksterne i forhold til de respektive JSON-filer, som gemmes i versionsstyringen for at opnå yderligere sporing. Indstillinger, der betragtes som hemmeligheder, gemmes i hemmelige vault-butikker, som også er allokeret til hvert miljø.
  • Alle ændringer logføres nu under udrulningen, så der opnås fuld sporing for at hjælpe med fejlfinding og overvågninger. Teamet tilføjer også automatiserede test for at validere konfigurationsændringerne i pipelinen.
  • Derefter arbejder teamet på at automatisere annulleringer fuldt ud for yderligere at optimere processer.
  • Som et resultat af den nye automatisering har udrulninger været mere pålidelige og forudsigelige, og teammoralen er også steget.

Udrul ofte

Udrul små trinvise opdateringer med en regelmæssig kadence.

Brug af denne fremgangsmåde hjælper med at holde brugerhistorier og arbejdselementer håndterbare fra projektstyringens synspunkt og reducerer risikoen for problemer i stor skala, når udrulninger mislykkes.

Contosos udfordring

  • Teamets udrulningsprocesser har historisk set været at udføre større udgivelser hver tredje til fire måneder. Denne praksis gør det svært at validere udgivelsen. Teamet har også haft problemer med fejlfinding af så mange bevægelige dele.
  • Problematiske udgivelser, der kræver hot-fixes midt i udgivelsen eller skal annulleres, er opstået flere gange.
  • Udgivelser er meget stressende og er blevet behandlet som "alle hænder på dæk" situationer, som har været negativt påvirke team moral.

Anvendelse af tilgangen og resultaterne

  • Efter den seneste problematiske version bad interessenterne teamet om at komme med en bedre tilgang til udrulninger. Teamet besluttede at ændre deres praksis for at favorisere hyppige, små ændringer. De begrænser omfanget af hver version til en eller (højst) et par relaterede ændringer, der testes grundigt, efterhånden som buildet hæves på tværs af de lavere miljøer.
  • Som et resultat er udgivelserne blevet meget mere effektive, og kvaliteten er steget. Udgivelserne er nemmere at validere, og problemer er enklere at foretage fejlfinding af.
  • At have en regelmæssig kadence af forudsigelige udgivelser har hjulpet med at genoprette tilliden og moralen hos teamet. Brugerne drager også fordel af det. Med højere udgivelseskvalitet ser de mindre afbrydelser og får adgang til nye funktioner meget hurtigere.

Brug en progressiv eksponeringstilgang

Udrul opdateringer gradvist med due diligence. Brug udrulningsmodeller, der giver dig kontrol til gradvist at øge antallet af instanser og kunder, indtil opdateringen er sikkert vedtaget af alle.

Test hver opdatering på en kontrolleret måde, så problemer løses tidligt i produktionen. Undgå at udrulle en fejlbehæftet opdatering, der påvirker hele dit kundegrundlag.

Test, om opdateringen er bagudkompatibel.

Contosos udfordring

  • Teamet oplever store fordele ved at skifte tilgang for at lave mindre udgivelser. De afsætter mindre tid nu til udgivelserne og føler sig energiske til at fortsætte ad vejen for at foretage yderligere forbedringer af driftsmæssig ekspertise.
  • I takt med at de eksperimenterer med nye funktioner, er nogle af ændringerne ikke blevet godt modtaget af brugerne eller har forårsaget en stigning i supportopkald på grund af den stejle læringskurve, de medfører.
  • De spekulerer på, hvordan de kan fortsætte med at udvikle deres programmer for at maksimere deres brugers produktivitet, samtidig med at de minimerer effekten af at frigive funktioner, der muligvis ikke er så populære eller nemme at bruge.

Anvendelse af tilgangen og resultaterne

  • De besluttede at implementere en funktionsudgivelsesmodel, der trinvist viser nye funktioner for brugerne ved hjælp af funktionsflag.
  • I planlægningsfaserne for nye funktioner defineres der et kriterium for at vælge, hvilke brugere der skal eksponeres for funktionen først. En lille gruppe brugere er valgt til at modtage den nye funktion først. Afhængigt af brugerfeedback udrulles funktionen til efterfølgende større grupper, indtil hele brugerpopulationen kører den nye version. Efterhånden som flere brugere eksponeres for de nye funktioner, dokumenterer supportteamet resultatet af supportsagerne for at dele internt og udfylder muligvis de eksterne ofte stillede spørgsmål.