Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De uitvoering is de fase waarin u uw moderniseringsplan implementeert. Deze stap omvat het voorbereiden van iedereen voor de wijziging, het uitvoeren van het ontwikkelwerk in niet-productieomgevingen. U test grondig en implementeert op een gecontroleerde manier in productie. De nadruk ligt op strenge tests en veilige implementatieprocedures om bedrijfsonderbreking te minimaliseren, gezien de wijzigingen aanzienlijk kunnen zijn.
Belanghebbenden voorbereiden op modernisering
Voordat u begint met de implementatie, is het essentieel om alle belanghebbenden en gebruikers voor te bereiden op wat er komt. Verrassingen kunnen leiden tot verwarring of zelfs operationele problemen. Belangrijke voorbereidingsstappen zijn communicatie, wijzigingsblokkeringen (eerder vermeld) en ondersteuningsplannen:
Kondig het implementatieschema aan voor alle belanghebbenden. Communiceer vooraf met alle betrokken partijen wanneer de moderniseringsimplementatie moet plaatsvinden en wat u kunt verwachten. Neem belangrijke datums op, zoals het blokkeren van wijzigingen en het go-live-venster, zodat belanghebbenden zich op de juiste manier kunnen voorbereiden. Door verwachtingen in te stellen, kunnen gebruikers de downtime plannen en kunnen interne teams klaar zijn.
Implementeer een wijzigingsblokkering voor bron- en afhankelijke workloads. Zoals eerder in de bestuursprocessen is gepland, is het nu tijd om de blokkering daadwerkelijk af te dwingen. Zorg ervoor dat er gedurende een bepaalde periode vóór en tijdens de implementatie geen codewijzigingen, configuratie-aanpassingen of andere implementaties op de workload (en afhankelijke workloads) plaatsvinden. Hierdoor blijft het milieu stabiel. Zorg ervoor dat alle teamleden en alle geïntegreerde derden op de hoogte zijn. Definieer duidelijk het blokkerende venster met specifieke begin- en eindtijden om verwarring te voorkomen.
De laatste gebruikersacties en wijzigingen na de implementatie doorgeven. Gebruikers moeten vooraf op de hoogte worden gesteld van vereiste acties vóór en na de implementatie om werkstroomonderbreking te voorkomen. Instrueer gebruikers om zich af te melden of werk op te slaan voordat de cutover begint. Deel nieuwe toegangs-URL's, verificatiewijzigingen, zoals Microsoft Entra ID aanmeldingsvereisten en bijgewerkte werkstromen die van invloed zijn op dagelijkse bewerkingen. Geef ondersteuningsdocumentatie en snelstartgidsen om verwarring op de eerste dag te verminderen.
Coördineren van ondersteuningsmedewerkers voor implementatie. IT-bewerkingen en ontwikkelteams moeten beschikbaar zijn om problemen tijdens kritieke implementatiefasen te bewaken en erop te reageren. Plan verlengde ondersteuningsuren en andere medewerkers voor de eerste werkdag na de implementatie wanneer er waarschijnlijk problemen optreden. Informeer bedrijfseenheden over het ondersteuningsplan en escalatieprocedures na de implementatie om snelle oplossing van problemen te garanderen.
Definieer terugvalprocedures voor kritieke workloads. Bedrijfskritieke workloads vereisen handmatige tijdelijke oplossingen en plannen voor onvoorziene gebeurtenissen om bedrijfsactiviteiten te onderhouden tijdens implementatievensters. Documenteer specifieke procedures, zoals handmatige orderverwerking tijdens alleen-lezen perioden van werkbelastingen. Deel deze procedures van tevoren en bevestig de gereedheid met betrokken teams om naadloze uitvoering te garanderen wanneer dat nodig is.
Moderniseringen ontwikkelen in een niet-productieomgeving
Alle ontwikkeling en integratie van de moderniseringswijzigingen moeten plaatsvinden buiten de productieomgeving (in ontwikkel-, test-, faseringsomgevingen). Het leidende principe: bouw en test eerst in prod-achtige omgevingen, zodat wanneer u implementeert op prod, het al een geverifieerde configuratie is.
Volg Well-Architected Framework-principes tijdens de implementatie. Wanneer u de nieuwe wijzigingen coderen en configureren, past u voortdurend de best practices toe van Azure Well-Architected Framework (WAF). Gebruik Azure Advisor aanbevelingen en processen voor architectuurbeoordeling om ontwerpbeslissingen te valideren. Deze aanpak zorgt ervoor dat gemoderniseerde onderdelen voldoen aan Azure best practices en operationele normen.
Maak niet-productieomgevingen die de productie spiegelen. Ontwikkel-/testomgevingen maken in Azure die zich zo dicht mogelijk bij de productie-installatie bevinden. Als de productie gebruikmaakt van bepaalde Azure-services, gebruikt u hetzelfde in test-, kleinere schaal- of lagere prestatielaag (SKU) om kosten te besparen. Hoe dichter uw testomgeving bij productie ligt, hoe betrouwbaarder u kunt zijn dat testresultaten moeten worden overgedragen naar productiegedrag.
Implementeer wijzigingen incrementeel met broncodebeheer en CI/CD. Behandelt de moderniseringsinspanningen zoals elk ander softwareproject. Gebruik Git of ander broncodebeheer voor alle codewijzigingen en scripts voor infrastructuur als code. Het biedt geschiedenis en de mogelijkheid om code zo nodig terug te draaien. Verbreek het werk in kleine stappen (mogelijk per functie of oplossing) en gebruik functiebranches. Voeg wijzigingen regelmatig samen na het controleren van de code. Stel continuïteitsintegratie-builds in om testsuites uit te voeren bij elke commit, zodat problemen vroegtijdig opgespoord worden.
Moderniseringswijzigingen valideren met testen
Testen is essentieel. Omdat modernisering geen nieuwe functies toevoegt, is de focus op regressietests (niets is verbroken), prestatietests (prestaties voldoen aan of overschrijden de vorige niveaus) en beveiligingstests (beveiligingscontroles blijven effectief of worden versterkt). U wilt elk aspect van de workload in de testomgeving controleren voordat u de productie aanraakt.
Voer eenheids- en integratietests uit op alle gewijzigde onderdelen. Ontwikkelaars moeten eenheidstests maken of bijwerken voor alle code die is geherstructureerd. Zelfs als het verouderde code is, kan het schrijven van eenheidstests voor kritieke functies helpen bij het opsporen van het onbedoeld herstructureren van gewijzigd gedrag. Voer continu unittests uit in uw CI-pijplijn. Voer bovendien integratietests uit om ervoor te zorgen dat onderdelen met elkaar communiceren. Nadat er een bug is opgelost, voert u relevante tests opnieuw uit om ervoor te zorgen dat de fout inderdaad is opgelost en niets anders is verbroken (vermijd regressies).
Voer van begin tot eind functionele tests uit. Voer in een faserings- of testomgeving volledige werkstroomtests uit alsof u een eindgebruiker bent. Deze test kan handmatig worden getest door QA of geautomatiseerde UI-tests. Meld u aan bij de toepassing en voer belangrijke taken uit. Zorg ervoor dat de ongewijzigde functionaliteit ongewijzigd blijft. Simuleer in principe echt gebruik om alles wat eenheidstests kunnen missen te vangen.
Voer gebruikersacceptatietests (UAT) uit met belanghebbenden. Betrek enkele werkelijke eindgebruikers of zakelijke belanghebbenden bij het testen van de gemoderniseerde workload voordat u live gaat. Ze kunnen nuances vangen die ontwikkelaars over het hoofd zien. Leg feedback vast over hiaten in bruikbaarheid, prestaties en functionaliteit. Los kritieke problemen met gebruikersacceptatietests (UAT) op vóór de implementatie en verkrijg formele goedkeuring van belanghebbenden om de gereedheid van het bedrijf te bevestigen.
Valideer de prestaties met behulp van belastingstests onder realistische omstandigheden. Modernisering moet in het ideale geval de prestaties verbeteren of onderhouden. Gebruik hulpprogramma's voor belastingtests, zoals Azure Load Testing, om realistische gebruikspatronen te simuleren. Vergelijk resultaten met prestatiebasislijnen uit de bronomgeving om eventuele afnames te identificeren. Voer stresstests uit op 150% van de verwachte belasting om workloadlimieten te bepalen en tolerantie onder druk te valideren.
Voer beveiligingsvalidatie- en nalevingscontroles uit. Voer beveiligingsscans uit op nieuwe code en containerinstallatiekopieën om beveiligingsrisico's te detecteren. Nalevingsvalidatie uitvoeren voor gereguleerde workloads met behulp van branchespecifieke hulpprogramma's. Gebruik Microsoft Defender voor Cloud om infrastructuurconfiguratiefouten te detecteren en ervoor te zorgen dat beveiligingscontroles aan de vereisten voldoen.
Los alle kritieke problemen op vóór de productie-implementatie. Los functionele, prestatie- en beveiligingsproblemen op die tijdens de testfasen zijn geïdentificeerd. Bevestig dat alle tests slagen en de prestaties voldoen aan de service level agreements (SLA's). Documenteer eventuele resterende problemen met lage prioriteit en maak herstelplannen voor oplossing na de implementatie.
Herbruikbare infrastructuur maken
Zodra uw gemoderniseerde oplossing alle tests in de niet-productieomgeving heeft doorstaan, moet u de installatie en configuraties van de infrastructuur vastleggen als code, zodat deze eenvoudig kan worden gerepliceerd in productie- en toekomstige omgevingen. Herbruikbare infrastructuur betekent het gebruik van IaC-sjablonen (Infrastructure-as-Code) en automatisering voor consistentie en snelheid.
Maak IaC-sjablonen voor bewezen configuraties. Neem de uiteindelijke architectuur van uw testomgeving (die weerspiegelt wat u wilt in prod) en codificeer deze. Gebruik Bicep, Terraform of Azure Resource Manager sjablonen om uw infrastructuur te definiëren. Parameters maken voor deze sjablonen, zodat ze opnieuw kunnen worden gebruikt voor verschillende fasen, zoals dev, test, prod met kleine aanpassingen, zoals namen of grootten. Deze installatie zorgt ervoor dat de productieomgeving die u maakt overeenkomt met wat u hebt getest. Het voorkomt menselijke fouten bij het handmatig rondklikken op het Azure-portaal om resources te maken. Dit betekent ook dat als u ooit de omgeving opnieuw moet maken, zoals voor herstel na noodgevallen of implementatie in nieuwe regio's, de infrastructuurimplementatie gereed hebt. Zie CAF Beheren - Implementaties op basis van code beheren voor meer informatie.
Sla sjablonen op in versiebeheer. Controleer uw infrastructuurcode in een Git-opslagplaats (naast de toepassingscode of in een afzonderlijke opslagplaats). Gebruik GitHub of Azure DevOps om IaC-assets te beheren met het juiste versiebeheer. Versiebeheer maakt codebeoordelingen mogelijk, ondersteunt teamsamenwerking en moedigt het hergebruik van sjablonen in projecten aan. Deze aanpak biedt volledige traceerbaarheid voor wijzigingen in de infrastructuur en biedt ondersteuning voor terugdraaimogelijkheden wanneer er problemen optreden.
De installatie en configuratie van afhankelijkheden automatiseren. Maak scripts of pijplijntaken om deze sjablonen te implementeren en eventuele vereiste configuratie- of seedingtaken af te handelen. Gebruik Azure-pipelines, GitHub Actions om implementatietaken uit te voeren die de IaC-sjabloon nemen en implementeren in een doelabonnement/resourcegroep. Automatiseer het installeren van app-afhankelijkheden, het configureren van instellingen en geheimenbeheer. Het doel is het instellen van een omgeving met één klik (of één opdracht): van niets tot een volledig uitgevoerde omgeving die overeenkomt met wat u hebt getest.
Test de Infrastructuur als Code (IaC) en automatisering end-to-end. Gebruik een afzonderlijk Azure abonnement of resourcegroep als sandbox en oefen met het volledig implementeren van uw hele omgeving met behulp van uw sjablonen en scripts. Test of uw IaC-sjablonen, -pijplijnen en -scripts de volledige infrastructuurstack van niets kunnen maken. Test verschillende implementatiescenario's, waaronder de eerste implementatie, configuratie-updates en terugdraaiprocedures om te bevestigen dat de automatisering correct werkt.
Voor meer informatie, zie Ontwerp een supply chain voor workloadontwikkeling en Infrastructuur als code in WAF.
Implementatiedocumentatie maken
Zelfs met automatisering is het belangrijk om goede documentatie over implementaties te hebben voor controle, voor het onboarden van nieuwe teamleden en voor toekomstig onderhoud. De implementatiedocumentatie moet betrekking hebben op configuraties, procedures en terugdraaistappen in leesbare vorm.
Documentconfiguratie-instellingen en -stappen. Noteer alle omgevingsspecifieke instellingen, verbindingsreeksen, service-eindpunten en beveiligingsconfiguraties in toegankelijke documentatie. Voeg stapsgewijze implementatie-instructies, vereisten en validatiestappen na de implementatie toe. Deze documentatie maakt consistente implementaties mogelijk en biedt ondersteuning voor het oplossen van problemen wanneer er problemen optreden. Als een nieuwe engineer iets moest implementeren, kan hij of zij dit document lezen en de uitvoer van de pijplijn volgen en begrijpen.
Procedures voor terugdraaien en herstel bijwerken. Nadat u de tests hebt voltooid, formaliseert u de stappen om wijzigingen te herstellen wanneer er implementatieproblemen optreden. Inclusief terugdraaitriggers, procedures voor back-up en herstel van gegevens en herstelvalidatiestappen. Test de procedures voor terugdraaien en herstellen regelmatig om ervoor te zorgen dat ze correct werken wanneer dat nodig is. Deze voorbereiding vermindert downtime.
Verzamel al deze documentatie op een centrale locatie. Gebruik SharePoint, GitHub of een wiki om deze informatie op te slaan. Zorg ervoor dat het team en het ondersteuningspersoneel weten waar ze het kunnen vinden. Bij een stressvol incident is het hebben van duidelijke documenten binnen handbereik een levensredder.
Modernisering implementeren
Productie-implementatie is de laatste fase van de modernisering. Afhankelijk van uw gekozen strategie (in-place versus parallel), verschillen de stappen. Controleer voordat u gaat uitvoeren of alle voorbereidingsstappen zijn uitgevoerd: belanghebbenden geïnformeerd, geblokkeerd, back-ups gemaakt, bewaking op stand-by.
De modernisering ter plaatse implementeren
Plan een onderhoudsvenster. Als voor de wijzigingen downtime is vereist of scripts worden uitgevoerd die resources vergrendelen, zoals een databaseschemamigratie, doet u dit in een vooraf aangekondigd onderhoudsvenster. Zorg ervoor dat alle gebruikers zich op dat moment buiten de werkbelasting bevinden. Als u een duidelijk venster hebt, krijgt u ook een doel om de implementatie te voltooien of om te beslissen of u terugdraait als u geen tijd meer hebt.
Gebruik uw CI/CD-pijplijn voor implementatie. Bij een productie-implementatieproces moet dezelfde geautomatiseerde pijplijn worden gebruikt die u hebt gebruikt voor de testomgeving, maar gericht op de productieomgeving. Deze instelling zorgt voor consistentie, zodat infrastructuur en code op dezelfde manier worden geïmplementeerd. Voordat u deze uitvoert, moet u definitieve back-ups maken van kritieke gegevens (databases). Zelfs als u kunt terugdraaien, is het maken van een back-up een extra beveiliging voor het geval er iets mislukt. Voer de pijplijn uit om de nieuwe code en infrastructuurwijzigingen te implementeren. Zorg ervoor dat logboeken en bewaking in realtime zichtbaar zijn. Als een stap mislukt, pauzeert en evalueert u of u een corrigerende wijziging kunt toepassen of moet terugdraaien.
Implementeer indien mogelijk progressieve verkeersroutering (canary). Veel Azure-services maken slotwisselingen of geleidelijke verkeersverschuiving mogelijk, zelfs wanneer het ter plaatse gebeurt. Azure ondersteunt canary-implementaties via Azure App Service implementatiesites, Azure Container Apps verkeer splitsen en Azure Kubernetes Service met Azure-pipelines. Als u meerdere virtuele machines achter een load balancer hebt, werk dan elke machine één voor één bij (een rolling upgrade) zodat de andere machines het verkeer kunnen afhandelen en vervolgens afwisselen.
Geleidelijk verhogen tot volledig verkeersvolume tijdens het monitoren. Zodra de nieuwe versie live is, controleert u deze nauwkeurig. Controleer toepassingslogboeken, metrische prestatiegegevens en foutpercentages. Begin met een klein deel van de gebruikers (of begin indien mogelijk met de workload in een validatiemodus). Als alles er na een paar minuten goed uitziet, verhoogt u het verkeer naar 25%. Controleer de metrische gegevens opnieuw (geen piek in 500 fouten, reactietijden normaal). Verhoog tot 50%en vervolgens 100% over de tijdsperiode die u hebt gepland. Het kan meer dan een uur of langer duren als je voorzichtig wilt zijn. Als er een ernstig probleem wordt geconstateerd bij een stap, start de terugdraaiing voordat dit van invloed is op alle gebruikers.
Gegevensconsistentie behouden tijdens de implementatie. In-place implementaties behouden bestaande gegevenseindpunten terwijl gegevensschema's mogelijk worden gewijzigd. Pas databaseschemawijzigingen toe op achterwaarts compatibele manieren om zowel oude als nieuwe toepassingsversies te ondersteunen tijdens canary-releases. Gebruik databasemigratiescripts die nieuwe kolommen of tabellen toevoegen zonder bestaande structuren te verwijderen totdat de implementatie is voltooid.
De modernisering implementeren in een parallelle omgeving
Maak de parallelle productieomgeving. Maak met behulp van de IaC-sjablonen de nieuwe productieomgeving in Azure die weerspiegelt wat u hebt getest. Deze omgeving omvat alle berekeningen, netwerken en opslag. Het moet actief zijn, maar momenteel zonder gebruikersverkeer. Zorg ervoor dat zaken als netwerkbeveiligingsgroepen, firewalls, identiteiten (beheerde identiteiten of service-principals) en bewaking zo nodig zijn geconfigureerd (herhaal de installatie van de testomgeving in het productieabonnement).
Databasereplicatie tot stand brengen. Configureer de systeemeigen replicatiefunctie van uw databaseplatform om continue gegevensreplicatie tot stand te brengen tussen uw bron- en Azure doelworkload. Controleer of de initiële gegevenssynchronisatie is voltooid en of de replicatie in orde is. U kunt een eerste bulkkopie van de database uitvoeren vanuit een back-up of momentopname en vervolgens replicatie inschakelen voor nieuwe transacties. Bewaak de vertraging in de replicatie met behulp van de bewakingshulpprogramma's van uw databaseplatform. Hogere latentie verhoogt het cutover-risico en de duur. Ga pas verder met de volgende stap als de replicatievertraging nul is.
Niet-gestructureerde gegevens en bestanden kopiëren. Kopieer ongestructureerde gegevens en bestanden naar Azure vóór de uiteindelijke cutover. Gebruik Tools voor object- en bestandsmigratie met functies om bestanden over te dragen naar de juiste Azure opslagservices. Deze voorbereiding vermindert de hoeveelheid gegevens die tijdens de uiteindelijke cutover moeten worden gekopieerd.
Voltooi de laatste gegevenssynchronisatie. Op een cutover-moment wilt u nul of minimaal gegevensverlies. Controleer voor databases of er geen transacties in behandeling zijn op de bronworkloads en dat de databasereplicatie is bijgewerkt. In sommige gevallen moet u mogelijk schrijfbewerkingen op de brondatabase kort onderbreken om definitieve wijzigingen leeg te maken (met name voor zaken als transactionele consistentie). U kunt technieken zoals verzending van transactielogboeken of een korte downtime gebruiken om een laatste incrementeel back-upherstel uit te voeren. Kopieer gewijzigde ongestructureerde gegevens met behulp van AzCopy of vergelijkbaar hulpprogramma.
Leid geleidelijk het gebruikersverkeer om naar de nieuwe omgeving. Werk DNS-records en load balancer-configuraties bij om gebruikersverkeer naar de Azure-omgeving te leiden. Bewaak de gezondheid en prestaties van de werkbelasting. Begin met 1% van het live verkeer gericht op de gemoderniseerde workload met behulp van gewogen routering met uw Azure load balancer. Controleer metrische gegevens in realtime, inclusief reactietijden, foutpercentages en databaseverbindingsstatus. Verhoog het verkeer in snelle stappen (5%, 15%, 50%) in minuten in plaats van uren, met geautomatiseerde terugdraaitriggers als drempelwaarden worden overschreden.
Voer de laatste switch uit naar 100%. Zodra u er zeker van bent, routeert u alle gebruikers naar de nieuwe omgeving. Deze switch kan een DNS-cutover zijn, die seconden tot minuten kan duren als de Time-to-Live (TTL) waarde laag was, of een wijziging in de configuratie van de load balancer. Op dit moment zijn gebruikers live op de gemoderniseerde workload.
Controleer en bewaak onmiddellijk na de overgang. Doorloop uw validatiecontroles na de overgang. Voer end-to-end functionele tests uit van alle kritieke bedrijfsprocessen met behulp van geautomatiseerde testsuites. Valideer de nauwkeurigheid van gegevens met behulp van controlesomverificatie en hash-functievergelijkingen tussen bron- en doelworkloads. Laat werkbelastingseigenaren bevestigen dat alle belangrijke functies correct werken. Bewaak de workloadprestaties, foutpercentages en gebruikerstoegangspatronen gedurende de eerste 24-48 uur na cutover om prestatievermindering of functionaliteitsproblemen te identificeren.
Houd de oude omgeving een tijdje operationeel (hot standby). Maak nog niets kapot. Houd de oude werkbelasting gedurende ten minste 24-72 uur als hot stand-by, met indien mogelijk doorlopende gegevenssynchronisatie (of klaar om snel te synchroniseren). Als er een onverwacht ernstig probleem optreedt in de productieomgeving, kunt u nog steeds besluiten om terug te draaien door verkeer terug te leiden. U zou minimale gegevens moeten verliezen, omdat u kunt inhalen met logboeken of andere middelen.
Moderniseringsucces valideren
Nu de nieuwe workload live is, moet u in productie valideren dat alles werkt zoals bedoeld en voldoet aan de acceptatiecriteria.
Bevestig dat de gebruikerstoegang en de workloadprestaties succesvol zijn. Validatie van gebruikerstoegang zorgt ervoor dat de modernisering transparant is en dat de prestaties voldoen aan de verwachtingen. Deze bevestiging valideert dat gebruikers zonder onderbreking toegang hebben tot de workload. Bewaak gebruikerstoegangspatronen, metrische gegevens over workloadprestaties en foutpercentages tijdens de eerste periode na de migratie.
Kondig het succes van de migratie pas aan na een grondige validatie. Volledige validatie zorgt ervoor dat alle belanghebbenden bevestigen dat de workload stabiel en functioneel is. Deze bevestiging voorkomt voortijdige verklaringen van succes die later tot problemen kunnen leiden. Verkrijg bevestiging van werkloadeigenaren, testers en business stakeholders dat de workload aan alle vereisten voldoet en correct werkt.
Ondersteuningsworkload tijdens stabilisatie
Zelfs na een succesvolle lancering kunt u een stabilisatieperiode plannen waarbij u de workload nauwkeurig bewaakt. Nieuw gemoderniseerde workloads hebben mogelijk onbekende problemen die na enige tijd alleen voorkomen onder gebruikspatronen in de praktijk.
Stel een verbeterde ondersteuningsdekking vast tijdens de stabilisatieperiode. Voor de eerste paar dagen of weken, afhankelijk van de complexiteit, na de livegang, stelt u een verhoogd ondersteuningsprotocol in. Wijs ervaren IT-medewerkers of migratiepartners toe om de workload nauw te bewaken en kortere SLA's te bieden dan normale bewerkingen.
Werk uw operationele documentatie en hulpprogramma's bij. Zorg ervoor dat alle runbooks, ondersteuningsdocumenten en bewakingsconfiguraties worden bijgewerkt om de nieuwe realiteit weer te geven. Train het operations-team op nieuwe procedures, zoals nieuwe back-upprocessen, nieuwe procedures voor opnieuw opstarten voor microservices. Geef de gemoderniseerde workload over aan de ops/ondersteuningsteams met volledige kennisoverdracht. Zorg ervoor dat uw assetinventaris/CMDB de nieuwe servers, IP's, services registreert en verouderde servers verwijdert of markeert.