Delen via


Aanbevelingen voor het optimaliseren van operationele taken

Is van toepassing op deze aanbeveling voor de controlelijst voor prestatie-efficiëntie van Azure Well-Architected Framework:

PE:10 Operationele taken optimaliseren. Bewaak en minimaliseer de effecten van de levenscyclus van softwareontwikkeling en andere routinebewerkingen op de prestaties van workloads. Deze bewerkingen omvatten virusscans, geheimrotaties, back-ups, het opnieuw indexeren van databases en implementaties.

In deze handleiding worden de aanbevelingen voor het optimaliseren van operationele taken beschreven. Het optimaliseren van operationele taken is het proces van het minimaliseren van de effecten van taken die u uitvoert als onderdeel van het routeren van workloadbewerkingen. Bewerkingsactiviteiten gebruiken dezelfde rekenresources als de workload zelf. Als u niet rekening houdt met de effecten van bewerkingstaken, kan dit ertoe leiden dat de werkbelasting de prestatiedoelen mist. Het kan ook een negatieve invloed hebben op de prestaties van de workload voor uw klanten.

Definities

Termijn Definitie
Blauwgroene implementatie Een implementatiestrategie die gebruikmaakt van twee identieke omgevingen en de richting van verkeer naar nieuwe implementaties (groene implementaties) bepaalt.
Database index herbouwen Een onderhoudsactiviteit waarmee een index wordt verwijderd en opnieuw wordt gemaakt.
Reorganisatie van database-indexen Een onderhoudsactiviteit waarmee de huidige database-index wordt geoptimaliseerd.
Databaseschema De algemene structuur van een database en de relaties met andere gegevens.
Implementatiesite Een functie van Azure App Service waarmee u live-apps met hun eigen hostnamen kunt implementeren.
In-place upgrades Het proces van het upgraden van een onderdeel of een toepassing zonder het te vervangen of te migreren naar een nieuwe omgeving.
Infrastructuur als code (IaC) Een beschrijvend model voor het definiëren en implementeren van infrastructuur, waaronder netwerken, virtuele machines, load balancers en verbindingstopologieën.

Belangrijke ontwerpstrategieën

U moet maatregelen nemen om de effecten van de levenscyclus van softwareontwikkeling en andere routinebewerkingen op de prestaties van de workload te verminderen. Het doel is ervoor te zorgen dat routinebewerkingen, zoals virusscans, geheimrotaties, back-ups, indexoptimalisatie (reorganisatie of herbouwen) en implementaties, de prestaties van de workload niet aanzienlijk verminderen.

Account voor operationele taken

Het is belangrijk om operationele taken te overwegen wanneer u prestatiedoelen instelt. Door routinetaken, regelmatige en ad-hoctaken op te nemen in prestatiedoelen, kunt u ervoor zorgen dat de workload efficiënt werkt. Hier volgen enkele belangrijke punten om rekening te houden met operationele taken in prestatiedoelen:

  • Operationele taken identificeren. Identificeer en neem relevante operationele taken op in prestatiedoelen. Voorbeelden van routinetaken zijn onder andere virusscans, reorganisatie van database-indexen, herbouwen van database-indexen, back-ups van schijven of databases, certificaatrotaties, het patchen van een besturingssysteem, het roteren van wachtwoorden, het roteren van API-sleutels, penetratietests en controlebeoordelingen in productie.

  • Prestatiedoelen evalueren. Evalueer de huidige prestatiedoelen en pas deze aan om rekening te houden met operationele taken die specifiek zijn voor de workload. Dit zorgt ervoor dat de prestatiedoelen overeenkomen met de operationele vereisten van de workload.

Implementaties optimaliseren

Het optimaliseren van implementaties verwijst naar het verfijnen van het proces van het vrijgeven van resources en code om naadloze prestaties en minimale onderbrekingen te garanderen. Het omvat het plannen, effectief distribueren van resources en het grondig testen van zowel de infrastructuur-als-code (IaC) als de toepassingscode voordat ze worden geïntroduceerd in een live-omgeving. Implementatie-onvolkomenheden kunnen leiden tot een lagere snelheid en efficiëntie van een workload, mogelijke resourcebeperkingen en een gecompromitteerde gebruikerservaring in de operationele omgeving. Overweeg de volgende strategieën om implementaties te optimaliseren:

Beoordeel acceptabele downtime. Als downtime acceptabel is, kunt u implementatiestrategieën implementeren die prioriteit geven aan snelheid en efficiëntie. Het is echter belangrijk om het effect van downtime op bedrijfsvereisten zorgvuldig te beoordelen voordat u die beslissing neemt. Als downtime daarentegen niet acceptabel is, moet u implementatiestrategieën implementeren die zorgen voor continue beschikbaarheid van de workload. Overweeg technieken te gebruiken zoals blauw-groene implementaties of kanarie-implementaties, waarbij u geleidelijk nieuwe versies van de workload implementeert terwijl u controleert op problemen. Deze strategieën helpen het effect van downtime te minimaliseren en zorgen voor een naadloze gebruikerservaring.

Implementeren bij het huidige aantal exemplaren. U moet ook implementaties vermijden die onmiddellijke schaalbewerkingen veroorzaken. U moet geen resources implementeren in een livesysteem met een aantal exemplaren dat zo laag is dat het systeem onmiddellijk een schaalbewerking moet uitvoeren. Uw IaC-sjabloon (infrastructure-as-code) komt bijvoorbeeld mogelijk niet overeen met het aantal exemplaren dat u nodig hebt op het moment van implementatie. Het kan een aantal exemplaren van twee hebben, zelfs als de huidige geïmplementeerde omgeving acht exemplaren uitvoert. De implementatie verwijdert zes exemplaren en heeft een negatieve invloed op de prestaties.

Gebruik een blauw-groene implementatiestrategie. Implementaties kunnen serviceonderbrekingen en downtime veroorzaken. Als u deze problemen wilt oplossen, selecteert u een implementatiestrategie die de impact op de prestaties minimaliseert, zoals een blauw-groene implementatie. Deze benaderingen maken naadloze overgangen tussen omgevingen mogelijk en verminderen het risico op serviceonderbrekingen. Wanneer u de blauw-groene implementatiebenadering gebruikt, hebt u twee afzonderlijke omgevingen: de blauwe en groene omgevingen. Als er problemen of prestatievermindering worden gedetecteerd in de groene omgeving, kunt u eenvoudig terugkeren naar de stabiele blauwe omgeving. Deze strategie helpt u minimale downtime te garanderen en stelt u in staat om een hoog prestatieniveau voor uw workload te behouden. Als u wilt implementeren met behulp van de blauw-groene benadering, volgt u deze algemene stappen:

  • Implementeer de nieuwe omgeving. Stel de nieuwe omgeving (groen) in naast de bestaande omgeving (blauw) met de bijgewerkte versie van uw toepassing.

  • Valideer de nieuwe omgeving. Implementaties kunnen latentie veroorzaken en de reactietijden verhogen. Overweeg instanties vooraf te verwarmen voordat u een cutover maakt. Prewarming omvat het voorbereiden van de nieuwe omgeving door het simuleren van productieachtig verkeer en de workload om ervoor te zorgen dat de omgeving gereed is om de verwachte belasting te verwerken. Het helpt de effecten op latentie en reactietijden te minimaliseren. Test en valideer de nieuwe omgeving grondig om ervoor te zorgen dat deze correct functioneert en voldoet aan de prestatieverwachtingen. Testen helpt caches op te warmen, database verbindingen tot stand te brengen en ervoor te zorgen dat de omgeving klaar is om de verwachte belasting te verwerken.

  • Verkeer geleidelijk verplaatsen. Nadat de nieuwe omgeving is voorverwarmd en gevalideerd, verplaatst u geleidelijk productieverkeer van de oude omgeving (blauw) naar de nieuwe omgeving (groen). In eerste instantie stuurt u een klein percentage van het verkeer naar de groene omgeving en verhoogt u deze geleidelijk nadat u de stabiliteit en de verwachte toepassingsstatus hebt gecontroleerd. U kunt een globale load balancer of een mechanisme voor verkeersbeheer gebruiken. Met de gecontroleerde verkeersverschuiving kunt u prestatieproblemen vroegtijdig identificeren en corrigerende acties ondernemen voordat u de workload volledig overzet naar de nieuwe omgeving.

  • Bewaken en optimaliseren. Implementaties kunnen gebruikmaken van gedeelde computingresources. Controleer continu de prestaties en status van de nieuwe omgeving nadat u verkeer hebt verplaatst. Breng de benodigde optimalisaties of aanpassingen aan om de gewenste prestaties en gebruikerservaring te garanderen.

  • Verwijder de oude omgeving. Nadat u al het verkeer hebt overgezet naar de groene omgeving, verwijdert u de blauwe omgeving uit bestaande verbindingen. Deze stap helpt de kosten voor het onderhouden van de oude omgeving te optimaliseren en zorgt ervoor dat nieuwe omgevingen geen configuratiedrift hebben.

  • Herhaal het proces. Voor toekomstige implementaties moet u de rollen van de blauwe en groene omgevingen omkeren. Implementeer wijzigingen in de nieuwe blauwe omgeving, valideer deze, orcheer de verkeersovergang en neem de oude groene omgeving buiten gebruik.

Gebruik meerdere builds. Verschillende typen builds kunnen u helpen de buildtijden te optimaliseren en de kwaliteit van implementaties te garanderen. U kunt bijvoorbeeld CI-builds (continue integratie) hebben die worden geactiveerd bij elke codedoorvoering. U kunt 's nachts builds hebben die regelmatig geautomatiseerde tests uitvoeren en builds vrijgeven die worden gebruikt voor implementatie in productie. Elk type build moet een specifiek doel hebben, zoals continue integratie, geautomatiseerd testen of productie-implementatie. Het testen en valideren van de workload vóór de implementatie helpt problemen of bugs vroeg in het ontwikkelingsproces te identificeren en op te lossen.

Overweeg functievlagmen. Functievlagmen worden gebruikt in softwareontwikkeling om de zichtbaarheid en het gedrag van bepaalde functies in een toepassing te beheren. Door functievlagmen te gebruiken, kunnen ontwikkelaars specifieke functies in- of uitschakelen zonder dat ze de toepassing opnieuw hoeven te implementeren. Functievlagmen werken door voorwaardelijke logica in de code te introduceren die bepaalt of een functie moet worden in- of uitgeschakeld. Deze logica kan worden gebaseerd op verschillende factoren, zoals gebruikersrollen, gebruikersvoorkeuren of specifieke voorwaarden die zijn gedefinieerd door het ontwikkelteam. Door functievlagmen te gebruiken, kunnen ontwikkelaars geleidelijk nieuwe functies implementeren voor een subset van gebruikers of functies inschakelen voor specifieke groepen om te testen (kanarie-testen).

Upgrades optimaliseren

Een in-place upgrade is een upgrade naar een bestaande resource of toepassing. In-place upgrades kunnen een workload tijdelijk vertragen of onderbreken. Het is belangrijk om ervoor te zorgen dat upgrades compatibel zijn met de workload. Voordat u een upgrade toepast, raden we u aan deze in een afzonderlijke omgeving te testen om mogelijke problemen te identificeren. Geef een terugdraaiplan op voor het geval er problemen optreden tijdens het upgradeproces. Het is van cruciaal belang om een volledige back-up van kritieke gegevens en configuraties te maken voordat u de upgrade toepast. Controleer het bijgewerkte systeem nauwkeurig na de upgrade om ervoor te zorgen dat alles werkt zoals verwacht. Met de back-up kunt u indien nodig herstellen naar een goede status. U moet prioriteit geven aan het plannen van de upgrade tijdens daluren om het effect op de prestaties van gebruikers en workloads tot een minimum te beperken. Informeer gebruikers vooraf over de geplande upgrade, inclusief de verwachte downtime en eventuele noodzakelijke acties die ze moeten uitvoeren.

Afweging: Wachten op het uitvoeren van bewerkingsactiviteiten tijdens daluren kan van invloed zijn op de operationele efficiëntie. Het kan minder handig zijn om het personeel met de juiste vaardigheden te laten werken tijdens de daluren.

Hulpprogramma's optimaliseren

Essentiële hulpprogramma's voor het bewaken van bestandsintegriteit, virusscans, inbraakdetectie en andere operationele taken kunnen de prestaties van de workload beïnvloeden. Ze verbruiken rekenresources en kunnen latentie- en prestatieoverhead toevoegen. U moet de effecten van uw hulpprogramma's op de prestaties van workloads testen en begrijpen. Op basis van de testresultaten moet u hulpprogrammaconfiguraties verfijnen, de scanfrequentie aanpassen en rekenresources opnieuw toewijzen. Voor virusscans kunt u een relevante uitsluitingslijst maken om de duur van scans te minimaliseren.

Databasebewerkingen optimaliseren

Het optimaliseren van databasebewerkingen verwijst naar het proces van het verfijnen en verfijnen van databasetaken om maximale efficiëntie en minimaal resourcegebruik te garanderen. Deze bewerkingen omvatten taken zoals back-ups, schemawijzigingen, het afstemmen van prestaties en bewaking. Efficiënte databasebewerkingen leiden tot snellere queryreacties, verminderde systeemoverhead en een algehele soepelere gebruikerservaring.

Schemawijzigingen hebben betrekking op het wijzigen van de structuur van een database, zoals het toevoegen of wijzigen van tabellen, kolommen of indexen. Deze wijzigingen vereisen mogelijk extra verwerking en resourcegebruik tijdens het implementatieproces, wat van invloed kan zijn op de algehele prestaties van de workload. Schemawijzigingen kunnen de prestaties van actieve query's, indexen of transacties verstoren of ervoor zorgen dat gegevens niet beschikbaar zijn.

Als u deze effecten wilt minimaliseren, moet u schemawijzigingen plannen en testen in een niet-productieomgeving. U kunt verschillende implementatietechnieken gebruiken om schema-updates te implementeren. U moet ook de beschikbare hulpprogramma's voor het wijzigen van schema's gebruiken om het proces te optimaliseren. Het archiveren en partitioneren van gegevens kan helpen de effecten van schemawijzigingen te verminderen.

Back-ups optimaliseren

Back-ups verbruiken workloadresources zoals verwerkingskracht, netwerkbandbreedte en schijf-I/O. U moet een back-upstrategie testen en selecteren die deze effecten minimaliseert. U moet wanneer mogelijk back-ups maken tijdens daluren. Uw strategie moet incrementele back-ups bevatten in plaats van elke keer volledige back-ups. Momentopnamen kunnen minder resource-intensief zijn dan back-ups. Overweeg ingebouwde back-up- en herstelfuncties van het platform in plaats van een aangepaste oplossing te bouwen. U moet deze opties testen en een combinatie gebruiken die de beste prestaties biedt voor uw workload.

Bewaking en foutopsporing optimaliseren

Overmatige of slecht geïmplementeerde logboekregistratie, telemetrie, instrumentatie en gedistribueerde tracering vastleggen en verzamelen kunnen van invloed zijn op de prestaties. Op dezelfde manier kunnen gemaksfuncties, zoals externe foutopsporing, ook van invloed zijn op de prestaties. U moet hun prestatie-effecten op de omgeving meten en kennen. U wilt niet dat deze processen de prestaties verslechteren. U moet processen configureren of uitschakelen waarvan de prestatie-effecten opwegen tegen de voordelen.

Azure-facilitering

Boekhouding voor operationele taken: Azure DevOps is een set ontwikkelhulpprogramma's en -services waarmee teams software efficiënt kunnen plannen, ontwikkelen, testen en leveren. Het bevat functies zoals versiebeheer, continue integratie en levering, projectbeheer en meer.

Azure biedt service-naar-service-integratie die de gevolgen van veel operationele taken minimaliseert. Services die zijn geïntegreerd met Azure Key Vault bieden bijvoorbeeld vaak ondersteuning voor naadloze certificaatrotatie of geheimrotatie, waardoor het effect op de prestaties wordt geminimaliseerd.

Implementaties optimaliseren: App Service biedt implementatiesites. U kunt implementatiesites gebruiken om code te implementeren in een niet-productieomgeving. U kunt app-inhoud en configuratie-elementen uitwisselen tussen twee implementatiesites. U kunt bijvoorbeeld app-inhoud overschakelen van een niet-productiesite naar de productiesite.

Met Azure Front Door en Azure Traffic Manager kunt u een blauw-groene implementatiestrategie implementeren. Sommige Azure-rekenservices ondersteunen ook geavanceerde implementatiestrategieën, zoals blauw-groene implementaties. U kunt deze services combineren met uw strategie voor het verplaatsen van verkeer of het opwarmen van instanties om de prestatie-effecten van de implementatie te beperken.

Databasebewerkingen optimaliseren: Azure SQL Database maakt automatisch volledige back-ups, differentiële back-ups en back-ups van transactielogboeken. Azure Cosmos DB maakt met regelmatige tussenpozen automatisch back-ups van uw gegevens. De automatische back-ups worden gemaakt zonder dat dit van invloed is op de prestaties of beschikbaarheid van databasebewerkingen. Azure Cosmos DB slaat de back-ups op in een afzonderlijke opslagservice.

Back-ups optimaliseren: sommige Azure-gegevensservices ondersteunen lage tot geen invloed op de prestaties voor herstel en indexering naar een bepaald tijdstip. Azure Backup is een betrouwbare en schaalbare cloudgebaseerde back-upoplossing waarmee u uw gegevens en toepassingen kunt beveiligen. Het biedt functies zoals incrementele back-ups, compressie en versleuteling om de effecten op de prestaties tijdens back-upbewerkingen te minimaliseren. Azure Site Recovery helpt u bij het beveiligen van uw toepassingen door ze te repliceren naar een secundaire locatie. Het biedt continue replicatie en geautomatiseerde failovermogelijkheden om de downtime en prestatie-impact tijdens back-up- en herstelbewerkingen na noodgevallen te minimaliseren.

Controlelijst voor efficiëntie van prestaties

Raadpleeg de volledige set aanbevelingen.