Vol vertrouwen implementeren

Voltooid
Bereik de gewenste status van de implementatie met voorspelbaarheid.

Bouw een supply chain voor workloads waarmee u consistent het doel van voorspelbaarheid in al uw omgevingen kunt bereiken, op de hostingplatforms, toepassingen, gegevens en configuratieresources van de workload. Het implementatiemechanisme moet kunnen worden geautomatiseerd, getest, bewaakt en versiebeheer. Het moet worden ge modulariseerd en klaar om op aanvraag uit te voeren. Het mag niet worden weergegeven als een monolithisch end-to-end proces. De toeleveringsketen is niet noodzakelijkerwijs voor snellere uitvoering, maar om consistentie en zelfdocumentatie te bereiken via meerdere iteraties.

Het workloadteam is verantwoordelijk voor de toeleveringsketen, omdat het betrekking heeft op hun eigen workload.

Voorbeeldscenario

Contoso Manufacturing heeft een Java-toepassing ontwikkeld die wordt gebruikt voor het bewaken en optimaliseren van hun productieprocessen. De workload is onlangs gemigreerd naar Azure en wordt nu uitgevoerd op Azure Spring Apps, Azure Database for MySQL en Azure IoT Hub.

Infrastructuur implementeren via code

Gebruik Infrastructure as Code (IaC) om de herhaalbare aspecten van de toeleveringsketen te definiëren die gereed zijn voor productie. Geef de voorkeur aan declaratieve benaderingen ten opzichte van imperatieve methoden.

Declaratieve IaC-technologieën zijn ontworpen met automatisering en herbruikbaarheid in gedachten. U kunt infrastructuurimplementaties van personen offloaden naar hulpprogramma's en consistente kwaliteit bereiken.

Vanuit het oogpunt van de infrastructuur worden met minder technologiekeuzes afwijkingen in hulpprogramma's verwijderd en wordt configuratiedrift gemakkelijk te detecteren. Onderhoud is ook eenvoudiger. Als u keuzes uitlijnt met de bestaande vaardighedenset van het team, kan het team ze eenvoudig gebruiken.

De uitdaging van Contoso

  • De on-premises versie van de workload heeft een combinatie van scripts en handmatige stappen gebruikt om de infrastructuur uit te bouwen en de toepassing in verschillende omgevingen te implementeren. Vroeg in het proces van de Azure-migratie heeft het team wijzigingen aangebracht in de bestaande imperatieve scripts om het nieuwe platform te targeten, zodat ze zoveel mogelijk van de bestaande automation-codebasis opnieuw kunnen gebruiken. Deze benadering is ook genomen vanwege een gebrek aan expertise met Azure- en IaC-technologieën zoals Bicep.
  • Naarmate de migratie vordert en het team meer vertrouwd raakt met het platform, raakten ze ervan overtuigd dat het gebruik van een IaC-benadering met Bicep op langere termijn een betere oplossing zou zijn.

De aanpak en resultaten toepassen

  • Het team heeft het werk gecontracteerd om de automatiseringsscripts voor de implementatie voor de workload te migreren en uit te breiden naar ervaren contractanten, die tijdens de eerste fasen van het project met het ontwikkelteam hebben gewerkt, terwijl ze kennisoverdracht naar de rest van het team bieden.
  • De resulterende Bicep-implementatie biedt een betrouwbaardere, beheerbare en efficiënte manier om infrastructuur in Azure in te richten. De code is nu beter leesbaar en onderhoudbaar, met geweldige ondersteuning voor hulpprogramma's in VSCode. Het is ook volledig idempotent en vereenvoudigt staatsbeheer, dat ze nooit volledig konden bereiken met de vorige/imperatieve versie.

Behandel uw IaC hetzelfde als uw toepassingscode

Volg softwareaanbevelingen voor IaC-ontwikkeling en -onderhoud: Modulariseer in beheer, vermijd aangepaste of lage-waardeabstracties en volg een gelaagde benadering om verschillende levenscycluss weer te geven. Basislagen vormen waarbij de lagere lagen constant blijven en de bovenste lagen naar behoefte veranderen.

Implementatieartefacten, zoals binaire toepassingsbestanden, IaC-sjablonen en parameters, maken deel uit van het kwetsbaarheid voor aanvallen. Pas garanties toe, zoals geheimbeheer, toegangsbeheer en andere principes van de beveiligingspijler.

Artefacten ervaren hetzelfde technische niveau als toepassingscode. Kwaliteitscontroles door middel van peerbeoordelingen en testen geven u vertrouwen in de implementatie.

Een gelaagde benadering maakt onderhoud eenvoudiger en creëert grenzen die duidelijke verantwoordelijkheidslijnen tot stand brengen.

Door beveiligingsmaatregelen toe te voegen aan artefacten, kan het systeem tijdens het implementatieproces worden beveiligd.

De uitdaging van Contoso

  • Het projectteam had een ruim budget aan het begin van de migratie-inspanning, dus huurden ze zeer ervaren aannemers in die met hoge kwaliteit en in korte tijd geleverd. De contractanten gebruikten een afzonderlijke opslagplaats voor hun ontwikkeling en die opslagplaats is niet regelmatig gecontroleerd op beveiliging, terwijl de belangrijkste toepassingscodeopslagplaats is.
  • Het team bereidt zich voor om een belangrijk herontwerp van de oplossing vrij te geven en de implementatiecode heeft aanzienlijke wijzigingen nodig. Vanwege een tekort aan ontwikkelingsbronnen worden de laatste wijzigingen door twee internen aangebracht. Wanneer een van de senior ontwikkelaars in het team wordt ingebeld om de internen te helpen, ziet hij meerdere doorvoeringen in de opslagplaats die niet overeenkomen met de ontwikkelstandaarden van het team, waaronder toepassingsgeheimen zoals API-sleutels die zijn vastgelegd in de codebasis.

De aanpak en resultaten toepassen

  • Het team besluit om de build- en implementatiecodebasis te verplaatsen naar dezelfde opslagplaats die wordt gebruikt voor de toepassingscode en om te beginnen met het toepassen van hetzelfde technische niveau als andere gebieden van de codebasis. De code wordt naar teamstandaarden gebracht voordat de eerste doorvoering, toepassingsgeheimen worden verwijderd en alle andere kwaliteitsstandaarden en hulpprogramma's van het team worden erop toegepast.
  • Hierdoor heeft het team deze sectie van de codebasis beveiligd terwijl de codekwaliteit wordt verhoogd. In de toekomst zullen wijzigingen in dit gebied van de codebasis dezelfde standaarden volgen en gebruikmaken van dezelfde hulpprogramma's die worden gebruikt voor de basistoepassingscodebasis, waaronder peercodebeoordelingen en geautomatiseerd scannen van de code met kwaliteits- en beveiligingshulpprogramma's.

Implementaties op één manifest standaardiseren

Ontwikkel een algemeen implementatiemanifest dat wordt gebruikt in alle omgevingen. Gebruik dit manifest als het standaardmechanisme voor greenfield-projecten, incrementele werkbelastingupdates of herstel na noodgevallen.

Door deze aanpak toe te passen, kunt u de overhead voor het onderhouden van meerdere assets verwijderen.

Als er een noodgeval is, is herstel snel en betrouwbaar omdat u een geprobeerd en getest manifest kunt implementeren in plaats van een geïmproviseerde omgeving te maken.

De uitdaging van Contoso

  • Contoso Manufacturing maakt gebruik van een volledig geautomatiseerde pijplijn voor het implementeren van de infrastructuur, toepassingscode en configuratiewijzigingen in de ontwikkel- en productieomgeving. De toepassing is zo geconfigureerd dat deze maximaal beschikbaar is in één regio. De meeste toepassingsonderdelen zijn staatloos, met uitzondering van de MySQL-database. Er wordt een back-up gemaakt van de database, zoals bepaald door de gevestigde RTO/RPO en de back-up wordt gerepliceerd naar een secundaire regio.
  • Als er een grote of onherstelbare fout optreedt in de primaire regio, is het team van plan een nieuwe omgeving te bouwen om de toepassing in de secundaire regio te hosten. Tijdens een geplande analyse om de DR-procedures te testen, mislukken de implementatiescripts bij het opnieuw maken van de omgeving in de secundaire regio vanwege het gebrek aan beschikbaarheid van verschillende resources en andere servicebeperkingen.

De aanpak en resultaten toepassen

  • Het team beperkt de problemen die ze ondervinden bij het inrichten in de secundaire regio door het gebruik van sommige resources te vervangen door equivalente SKU's die beschikbaar zijn in beide regio's en bepaalde opties zo te configureren dat een andere, maar geldige waarde in de secundaire regio kan worden gebruikt.
  • De oefening heeft het vertrouwen van het team vergroot in hun vermogen om te herstellen van grote infrastructuurfouten.

Test uw kennis

1.

Hoe kan het implementeren van infrastructuur als code u helpen met vertrouwen te implementeren?

2.

Hoe heeft het verplaatsen van de IaC-code naar dezelfde opslagplaats als de toepassingscode het Contoso-team met vertrouwen geholpen?

3.

Welke van de volgende opties kan ervoor zorgen dat de implementatie van een DR-omgeving efficiënt verloopt?