Veilige implementatieprocedures gebruiken

Voltooid
Implementeer kaders in het implementatieproces om het effect van fouten of onverwachte omstandigheden te minimaliseren.

Tijdens de ontwikkelingscyclus doorlopen workloadartefacten veel wijzigingen wanneer ze worden geïmplementeerd en getest en als bugs worden opgelost.

Het implementatieproces moet een standaardbewerkingsprocedure volgen. Elke wijziging moet worden geïmplementeerd met hetzelfde niveau van rigor. Dit principe is evenzeer van toepassing op code, configuratie en alle gerelateerde artefacten. De sleutel is om veilige procedures zo vroeg mogelijk toe te passen, zodat u voorspelbaarheid hebt in de productieomgeving. Zelfs als fouten de klanten bereiken, moet u herstelwijzigingen zo snel mogelijk kunnen implementeren.

Voorbeeldscenario

Contoso Air heeft een webtoepassing ontwikkeld waarmee klanten vluchten rechtstreeks via de app kunnen boeken. De app wordt meer dan een jaar in productie uitgevoerd.

De app is volledig geïmplementeerd in Azure en is gebouwd op Azure-app Service, Azure Cosmos DB, Azure Functions, Azure Logic Apps en Azure Service Bus.

Geautomatiseerde implementatiestandaarden codificeren

Standaardiseer het proces om wijzigingen te implementeren met behulp van geautomatiseerde implementatieprocessen, zoals pijplijnen. Alle omgevingen moeten pijplijnen gebruiken. Classificeer assets en versies per omgeving om ze gemakkelijk te traceren en identificeerbaar te maken.

Consistente implementatiemethoden verminderen problemen die worden veroorzaakt door procesfouten en variantie en stellen u in staat uw inspanningen te richten op de problemen met de workload.

Standaardisatie zorgt ervoor dat de implementatie veilig, betrouwbaar en met herhaalbaarheid wordt voltooid.

Met classificatie kunt u eenvoudig logboeken bekijken van eerdere implementaties en problemen die zijn opgetreden. Mogelijk kunt u deze informatie gebruiken om terugdraaibewerkingen en terugdraaibewerkingen te versnellen.

De uitdaging van Contoso

  • Het Contoso Air-workloadteam maakt gebruik van geautomatiseerde build- en implementatiepijplijnen, maar voor implementaties is normaal gesproken handmatige tussenkomst vereist om verschillende configuratie-instellingen te wijzigen en te valideren.
  • Vanwege de handmatige interventie zijn er regelmatig fouten in de implementatie, waardoor elke release een zeer stressvolle en verstorende gebeurtenis voor het hele team is. De handmatige interventie maakt het ook moeilijk om terug te draaien wanneer een implementatie mislukt.

De aanpak en resultaten toepassen

  • Het team wijst tijd toe om de configuratiewijzigingen te automatiseren als onderdeel van de implementatie en om de toegevoegde functionaliteit te integreren in de bestaande implementatiepijplijnen.
  • De configuratie-instellingen die aan elke omgeving zijn gekoppeld, worden ge externaliseerd naar respectieve JSON-bestanden die worden opgeslagen in broncodebeheer voor extra tracering. Instellingen die als geheimen worden beschouwd, worden opgeslagen in geheime kluisarchieven, die ook aan elke omgeving worden toegewezen.
  • Alle wijzigingen worden nu geregistreerd tijdens de implementatie, waardoor volledige tracering mogelijk is om u te helpen bij het oplossen van problemen en controles. Het team voegt ook geautomatiseerde tests toe om de configuratiewijzigingen in de pijplijn te valideren.
  • Vervolgens werkt het team aan het volledig automatiseren van terugdraaiacties om processen verder te optimaliseren.
  • Als gevolg van de nieuwe automatisering zijn implementaties betrouwbaarder en voorspelbaarder en zijn teammoraal ook gestegen.

Vaak implementeren

Implementeer kleine incrementele updates met een regelmatige frequentie.

Met deze aanpak kunt u gebruikersverhalen en werkitems beheren vanuit het oogpunt van projectbeheer en het risico op grootschalige problemen verminderen wanneer implementaties mislukken.

De uitdaging van Contoso

  • De implementatieprocessen van het team zijn in het verleden geweest om de drie tot vier maanden grote releases uit te voeren. Deze procedure maakt het moeilijk om de release te valideren. Het team heeft ook problemen met het oplossen van problemen met zoveel bewegende onderdelen.
  • Problematische releases waarvoor hot-fixes in de mid-release zijn vereist of die moeten worden teruggedraaid en afgestaan, zijn meerdere keren opgetreden.
  • Releases zijn zeer stressvol en worden behandeld als 'alle handen op dek'-situaties, die een negatieve invloed hebben op het teammoraal.

De aanpak en resultaten toepassen

  • Na de meest recente problematische release hebben belanghebbenden het team gevraagd om een betere benadering van implementaties te bedenken. Het team heeft besloten hun werkwijzen te wijzigen om frequente, kleine wijzigingen te bevorderen. Ze beperken het bereik van elke release tot een of (maximaal) enkele gerelateerde wijzigingen die grondig worden getest, omdat de build wordt gepromoveerd in de lagere omgevingen.
  • Hierdoor zijn de releases veel efficiënter geworden en is de kwaliteit toegenomen. De releases zijn eenvoudiger te valideren en problemen zijn eenvoudiger op te lossen.
  • Het hebben van een regelmatige frequentie van voorspelbare releases heeft geholpen om het vertrouwen en moreel van het team te herstellen. Gebruikers profiteren ook. Met een hogere releasekwaliteit zien ze minder onderbrekingen en krijgen ze veel sneller toegang tot nieuwe functies.

Een progressieve blootstellingsbenadering gebruiken

Implementatie van updates geleidelijk, met due diligence. Gebruik implementatiemodellen waarmee u de controle krijgt om het aantal exemplaren en klanten geleidelijk te verhogen totdat de update door iedereen veilig wordt aangenomen.

Test elke update op een gecontroleerde manier, zodat problemen vroeg in productie worden opgelost. Vermijd het implementeren van een foutieve update die van invloed is op uw hele klantenbestand.

Test of de update compatibel is met eerdere en voorwaartse versies.

De uitdaging van Contoso

  • Het team ziet grote voordelen van het veranderen van hun benadering om kleinere releases te maken. Ze besteden nu minder tijd aan de releases en voelen zich energiek om door te gaan met het vervolgen van extra operationele uitmuntendheidsverbeteringen.
  • Omdat ze experimenteren met nieuwe functies, zijn sommige van de wijzigingen niet goed ontvangen door gebruikers of hebben ze een toename van ondersteuningsgesprekken veroorzaakt vanwege de steile leercurve die ze meebrengen.
  • Ze vragen zich af hoe ze hun toepassingen kunnen blijven innoveren om de productiviteit van hun gebruikers te maximaliseren, terwijl ze nog steeds de impact minimaliseren van het vrijgeven van functies die mogelijk niet zo populair of gemakkelijk te gebruiken zijn.

De aanpak en resultaten toepassen

  • Ze hebben besloten om een functiereleasemodel te implementeren dat nieuwe functies incrementeel beschikbaar maakt voor gebruikers, met behulp van functievlagmen.
  • Tijdens de planningsfasen voor nieuwe functies wordt een criterium gedefinieerd om te selecteren welke gebruikers eerst worden blootgesteld aan de functie. Er wordt een kleine groep gebruikers geselecteerd om eerst de nieuwe functie te ontvangen. Afhankelijk van gebruikersfeedback wordt de functie geïmplementeerd in opeenvolgend grotere groepen totdat de volledige gebruikerspopulatie de nieuwe versie uitvoert. Naarmate er meer gebruikers beschikbaar zijn voor de nieuwe functies, documenteert het ondersteuningsteam het resultaat van de ondersteuningsaanvragen om intern te delen en mogelijk de externe veelgestelde vragen te vullen.

Test uw kennis

1.

Welke van de volgende is een fundamenteel principe van veilige implementatieprocedures?

2.

Welke van de volgende is een aanbevolen implementatiestrategie?

3.

Hoe heeft Contoso de benadering van progressieve blootstelling aangenomen?