Delen via


Aanbevelingen voor het inschakelen van automatisering

Is van toepassing op deze controlelijst voor Azure Well-Architected Framework Operation Excellence:

OE:10 Ontwerp en implementeer automatisering vooraf voor bewerkingen zoals levenscyclusproblemen, bootstrapping en het toepassen van governance- en nalevingsrichtlijnen. Probeer de automatisering later niet opnieuw aan te passen. Kies automatiseringsfuncties die uw platform biedt.

In deze handleiding worden de aanbevelingen beschreven voor het ontwerpen en implementeren van uw workload om automatisering mogelijk te maken. Ontwerp uw workload met automatisering in gedachten om ervoor te zorgen dat routinetaken zoals het inrichten van resources, schalen en implementaties snel en betrouwbaar worden uitgevoerd. Automatisering vereenvoudigt onderhoudstaken en stelt u in staat uw systemen efficiënter bij te werken, te patchen en bij te werken.

Belangrijke ontwerpstrategieën

Workloadonderdelen ontwerpen ter ondersteuning van automatisering

U kunt uw workload ontwerpen ter ondersteuning van automatisering van de fase van ideeën tot de fase voor voortdurende verbetering. Overweeg eerst hoe u automatisering in uw workload wilt toepassen om ervoor te zorgen dat u de benodigde onderdelen plaatst. Denk na over uw workload in termen van de goed ontworpen frameworkpijlers om te helpen bij het plannen van de typen automatisering die u gaat gebruiken. U kunt veel functies van beveiliging, betrouwbaarheid, prestaties, bewerkingen en kostenbeheer automatiseren.

Ontwerp met automatisering in het achterhoofd om herstructurering te minimaliseren nadat uw workload wordt uitgevoerd. Houd rekening met uw workloadvereisten bij het bepalen welke automatiseringshulpprogramma's u wilt gebruiken. Mogelijk zijn er hulpprogramma's voor automatisering buiten de plank waarmee uw team al bekend is. Door deze hulpprogramma's te gebruiken, kan het pad naar het automatiseren van uw workload eenvoudiger worden, maar moet u rekening houden met hun beperkingen en compatibiliteit met uw cloudplatform. Sommige automatiseringshulpprogramma's kunnen bijvoorbeeld goed worden geïntegreerd met Azure CLI-hulpprogramma's, terwijl andere mogelijk REST-interfaces vereisen. Onderzoek altijd de hulpprogramma's die uw cloudplatform biedt om ervoor te zorgen dat ze compatibel zijn en de functionaliteit bieden die u nodig hebt. Voorbeelden van manieren waarop u proactief automatisering kunt plannen, zijn:

  • Implementatie: Automatiseer uw toepassings- en infrastructuurimplementaties om een voorspelbare standaard te garanderen. Plan geautomatiseerde implementatie door implementatiestandaarden te ontwikkelen, uw team te trainen over de hulpprogramma's die u gaat gebruiken en de benodigde infrastructuur te implementeren.

  • Validatie: valideer automatisch nalevingsvereisten voor uw workload met behulp van indelings- of beleidshulpprogramma's. Identificeer het juiste validatieprogramma voor uw workload en plan om de vereiste systemen te implementeren, bijvoorbeeld indelingsservers.

  • Automatisch schalen: gebruik automatische schaalaanpassing in uw hele infrastructuur om u te helpen uw betrouwbaarheids- en prestatievereisten te realiseren. U moet van tevoren IP-adresruimte en subnetten in uw workload toewijzen om rekening te houden met schaalbewerkingen, naast het plannen van redundantie en natuurlijke groei.

Compromis: Bij het ontwerpen van uw workload om automatisering mogelijk te maken, moet u rekening houden met de mate van controle die u wilt behouden ten opzichte van de efficiëntie die u kunt verkrijgen door automatisering. In sommige gevallen is uw workload mogelijk niet volwassen genoeg om bepaalde functies te automatiseren of hebt u mogelijk een mate van flexibiliteit nodig die automatisering niet biedt.

Houd ook rekening met de vaardighedenset van uw team bij het ontwerpen van uw workload. Als een hoge mate van automatisering hulpprogramma's vereist die uw team niet kan ondersteunen, moet u mogelijk een minder uitgebreid ontwerp gebruiken als tussenliggende stap.

Automatiseringsontwerp opnieuw bezoeken tijdens de levenscyclus

Nadat uw workload in de cloud wordt uitgevoerd, is het belangrijk om prioriteit te geven aan continue verbetering. Bekijk uw workload in actie, analyseer gebruikspatronen en controleer het gedrag van klanten met betrekking tot uw workload om gebieden te identificeren waar u automatisering kunt verbeteren. Zoek naar manieren om bestaande automatisering te verbeteren of nieuwe automatisering te introduceren om uw klantervaring te verbeteren. U hebt bijvoorbeeld automatisch schalen ingeschakeld, maar de toename van de werkbelasting is kort. U kunt schaalautomatisering integreren om het CPU-gebruik te verlagen wanneer de belasting onder de drempelwaarde daalt.

De volgende secties van deze handleiding bieden aanbevelingen voor specifieke automatiseringsgebieden die u kunnen helpen bij het ontwerpen en implementeren van uw workload.

Bootstrapping automatiseren

Bootstrapping verwijst naar de configuratie-updates voor een resource die moet worden uitgevoerd nadat deze is ingericht, maar voordat deze beschikbaar is als onderdeel van de workloadgroep. Bootstrapping is vaak gekoppeld aan virtuele machines (VM's), maar veel andere resources moeten worden ingesteld als onderdeel van het implementatieproces, waaronder PaaS-technologieën (Platform as a Service) en containerhostingtechnologieën zoals Azure Kubernetes Service (AKS).

Uw cloudplatform biedt mogelijk bootstrapping-oplossingen voor u, die u waar mogelijk moet gebruiken. U kunt bijvoorbeeld VM-extensies in Azure gebruiken om vooraf gedefinieerde configuratiewijzigingen aan te brengen tijdens het implementatieproces en uw configuratiewijzigingen aan te passen door PowerShell-scripts in te voeren.

Automatisering opnemen in toegangsbeheer

Houd rekening met automatisering bij het ontwerpen van uw verificatie- en autorisatiestrategie. Het is belangrijk om het hoogste beveiligingsniveau in productieworkloads te behouden, maar dit kan van invloed zijn op automatisering. Het gebruik van biometrische of meervoudige verificatie voegt bijvoorbeeld complexiteit toe waarvoor rekening moet worden gehouden in uw automatiseringsontwerp. Gebruik niet-menselijke, beveiligde accounts voor geautomatiseerde verificatie, zoals beheerde identiteiten, workloadidentiteiten of certificaten. Zorg ervoor dat u geheim- en sleutelbeheer hebt opgenomen in uw automatisering voor betere verificatiebeveiliging.

Variabiliteit ontwerpen in uw workload

Vermijd onnodige implementatie van nieuwe infrastructuur wanneer kleine wijzigingen worden aangebracht door flexibiliteit in uw artefacten in te bouwen. In plaats van uw infrastructuur bijvoorbeeld opnieuw te implementeren wanneer een functievlag verandert, kunt u parameters gebruiken die zijn ingesteld om onderdelen, zoals app-configuraties, bij te werken. Zorg ervoor dat u duidelijk definieert en documenteert hoe variabiliteit wordt gebruikt om overgebruik en configuratiedrift te voorkomen.

Een besturingsvlak bouwen

Een besturingsvlak is het back-endsysteem of de suite hulpprogramma's die u gebruikt om de toepassing en de bijbehorende afhankelijkheden te beheren via een geïntegreerde interface. Bouw uw besturingsvlak, zoals een REST-interface, CLI of webhook, ter ondersteuning van automatisering door externe hulpprogramma's.

Maak onderhoudsbewerkingen beschikbaar via het besturingsvlak waarmee u workloadonderdelen kunt coördineren, zoals geoorde back-up en herstel, bootstrapping, configuratie, import/export en batchbewerkingen. Wees voorzichtig met het kiezen van het juiste granulariteitsniveau bij het bepalen van de bewerkingen die via het besturingsvlak moeten worden weergegeven.

Een gegevensgestuurde benadering gebruiken om automatisering te ontwikkelen

Ontwikkel een bewakingsstrategie om metrische gegevens vast te leggen die het type automatisering stimuleren dat u nodig hebt. Gebruik gestructureerde logboekregistratie en aangepaste metrische gegevens om de informatie te bieden die nodig is voor automatisering in een indeling die eenvoudig te herkennen is met automatiseringshulpprogramma's. De metrische gegevens die u vastlegt, moeten worden gekoppeld aan drempelwaarden die zijn gedefinieerd in het bewakingssysteem waarmee waarschuwingen en geautomatiseerde acties, zoals meldingen of zelfherstelmechanismen, worden geactiveerd, indien van toepassing. Zie Aanbevelingen voor zelfherstel en zelfbehoud voor meer informatie.

Gebeurtenissen voor de levenscyclus van gebruikers automatiseren

Ontwerp uw toepassing en infrastructuur om geautomatiseerde onboarding en offboarding van gebruikers mogelijk te maken voor personen of klanten met meerdere tenants. Plan geautomatiseerde database-updates via scripts, infrastructuurinrichting en ongedaan maken van de inrichting, en referentie- en geheimbeheer.

Desired State Configuration automatiseren

Als onderdeel van uw continue workloadbeheer kunt u Desired State Configuration (DSC) in uw resources automatiseren om ervoor te zorgen dat ze voldoen aan de nalevings- en bedrijfsvereisten. DSC-automatisering helpt ervoor te zorgen dat configuratiedrift snel wordt opgevangen en hersteld. U kunt DSC automatiseren met behulp van indelingshulpprogramma's of hulpprogramma's voor beleidsbeheer. Denk aan indelingshulpprogramma's, zoals Azure DevOps-services of Jenkins, als op push gebaseerde mechanismen. Met indelingshulpprogramma's kunnen configuratie-updates worden gepusht via een werkstroomgebeurtenis, zoals een handmatige of geautomatiseerde implementatie. Deze updates worden uitgevoerd als onderdeel van een takenreeks die is gedefinieerd in uw implementatiescript. Hulpprogramma's voor beleidsbeheer maken gebruik van pull-mechanismen, wat betekent dat een systeem wordt uitgevoerd op het basisniveau van uw workload die periodiek de workload peilt om de status ervan te controleren op basis van uw gedefinieerde DSC. Als de poll een onjuiste uitlijning of configuratiedrift identificeert, voert het hulpprogramma corrigerende maatregelen uit. Houd rekening met de volgende factoren bij het kiezen tussen indelings- en beleidsbeheerprogramma's:

  • Indelingshulpprogramma's hebben geen ingebouwde mogelijkheden om uw workload proactief te peilen op configuratiedrift. Indelingshulpprogramma's moeten worden geïntegreerd in uw CI/CD-pijplijn (continue integratie en continue levering) om een standaard te onderhouden voor implementatie en beheer van infrastructuur als code (IaC). Een voordeel van het gebruik van indelingshulpprogramma's is dat resources altijd volledig zijn geconfigureerd wanneer ze worden geïmplementeerd.

  • Met hulpprogramma's voor beleidsbeheer kunt u beleidsregels definiëren die van invloed zijn op een of meer groepen resources. Deze beleidsregels worden afgedwongen wanneer de resource wordt ingecheckt met het beleidsbeheersysteem. Een voordeel van het gebruik van beleidsbeheer is dat deze systemen niet op code zijn gebaseerd, zodat ze eenvoudiger kunnen worden gebruikt door operators in uw team.

Wanneer u besluit tussen indelings- of beleidshulpprogramma's, moet u overwegen of de configuratie-updates die u van plan bent om nieuwe resources te maken, moeten worden uitgevoerd op het moment van implementatie. Overweeg ook of het definiëren van updates in code past bij uw operationele procedures en hoeveel resourcetypen u wilt implementeren. Als er veel verschillende configuraties zijn voor resourcetypen, zijn beleidshulpprogramma's mogelijk een eenvoudigere manier om updates te beheren.

Azure-facilitering

Beleidsbeheer

Azure Policy: Met Behulp van Azure Policy kunt u standaarden afdwingen en naleving op schaal beoordelen. Azure Policy biedt een geaggregeerde weergave om de algehele status van de workloadomgeving in het nalevingsdashboard te evalueren. Of u kunt Azure Policy gebruiken om elke resource en elk beleid op een gedetailleerd niveau te evalueren. U kunt Ook Azure Policy gebruiken om nieuwe resources automatisch te herstellen of bestaande resources bulksgewijs te herstellen.

Compromis: Het offloaden van automatisering van uw CI/CD-pijplijn naar platformhulpprogramma's of -services, zoals Azure Policy, kan uw pijplijn vereenvoudigen, maar heeft nadelen, zoals de extra beheerlast van het gebruik van meerdere systemen. Uitvoeringsfouten in een platformservice worden bijvoorbeeld niet opgeslagen in uw pijplijnlogboeken en moeten op intelligente wijze worden ingevoerd in uw waarneembaarheidsplatform, zodat de juiste partijen op de hoogte worden gesteld.

Bootstrap-automatisering

Azure Virtual Machines-extensies: Extensies voor virtuele machines zijn kleine pakketten die configuratie en automatisering na de implementatie uitvoeren op VM's. Er zijn verschillende extensies beschikbaar voor verschillende configuratietaken, zoals het uitvoeren van scripts, het configureren van antimalwareoplossingen en het configureren van logboekregistratieoplossingen. Installeer en voer deze extensies uit op VM's met behulp van een Azure Resource Manager-sjabloon, Azure CLI, Azure PowerShell-module of Azure Portal. Op elke VM is een VM-agent geïnstalleerd die de levenscyclus van de extensie beheert.

VM-extensies gebruiken doorgaans een aangepaste scriptextensie om software te installeren, opdrachten uit te voeren en configuraties uit te voeren op een VIRTUELE machine of Virtuele-machineschaalsets van Azure. U kunt deze extensies zo instellen dat ze worden uitgevoerd als onderdeel van IaC-implementaties, zodat ze worden uitgevoerd op nieuwe VM's met behulp van de Azure VM-agent. Extensies kunnen ook buiten een Azure-implementatie worden uitgevoerd met behulp van de Azure CLI, PowerShell-module of Azure Portal.

Cloud-init: Cloud-init is een branchehulpprogramma voor het configureren van Linux-VM's bij het eerste opstarten. Net als bij aangepaste Azure-scriptextensies kunt u met cloud-init pakketten installeren en opdrachten uitvoeren op Linux-VM's. U kunt cloud-init gebruiken voor software-installatie, systeemconfiguratie en fasering van inhoud. Azure bevat veel vm-installatiekopieën met cloud-init-functionaliteit in bekende Linux-distributies. Zie cloud-init-ondersteuning voor VM's in Azure voor een volledige lijst.

Azure-implementatiescriptresource: wanneer u implementeert met behulp van Azure, moet u mogelijk willekeurige code uitvoeren voor het opstarten van het beheer van gebruikersaccounts, Kubernetes-pods of het opvragen van gegevens uit een niet-Azure-systeem. Omdat geen van deze bewerkingen toegankelijk is via het Azure-besturingsvlak, is een afzonderlijk mechanisme vereist. Zie Microsoft.Resources deploymentScripts voor meer informatie. Net als elke andere Azure-resource, de implementatiescriptresource:

  • Kan worden gebruikt in een Azure Resource Manager-sjabloon.

  • Bevat Azure Resource Manager-sjabloonafhankelijkheden in andere resources.

  • Verbruikt invoer en produceert uitvoer.

  • Maakt gebruik van een door de gebruiker toegewezen beheerde identiteit voor verificatie.

Wanneer het implementatiescript wordt geïmplementeerd, worden PowerShell- of Azure CLI-opdrachten en -scripts uitgevoerd. Scriptuitvoeringen en logboekregistratie kunnen worden waargenomen in Azure Portal of met de Azure CLI- en PowerShell-module. U kunt de variabelen voor de uitvoeringsomgeving, time-outopties en resourcebeheer aanpassen na een scriptfout.

Bootstrap AKS-clusters met GitOps: u kunt een nieuw ingericht AKS-cluster bootstrapen met behulp van GitOps en de Flux v2-clusterextensie door uw configuratie-instellingen in GitHub-opslagplaatsen te declareren. Omdat AKS-clusterbestanden worden opgeslagen in een GitHub-opslagplaats, zijn ze versiebeheer en worden wijzigingen tussen versies eenvoudig bijgehouden. Kubernetes-controllers worden uitgevoerd in de clusters en stemmen de clusterstatus voortdurend af met de gewenste status die is gedeclareerd in de Git-opslagplaats door de bestanden uit de opslagplaats op te halen. Zie de referentiearchitectuur van de AKS-basislijn voor meer informatie.

Configuratiebeheer

Azure Automation State Configuration is een DSC-beheerprogramma dat wordt beheerd door de azure Policy-gastconfiguratiefunctie die u kunt gebruiken voor het schrijven, beheren en compileren van PowerShell DSC-configuraties voor knooppunten in een cloud- of on-premises datacenter. U kunt dit hulpprogramma ook gebruiken om DSC-resources te importeren en configuraties toe te wijzen aan doelknooppunten.

Azure-app Configuration is een service die u kunt gebruiken om uw toepassingsinstellingen en functievlagmen centraal te beheren. Het werkt met Azure Key Vault, zodat u veilig een groot aantal toepassingsconfiguraties in uw omgeving kunt beheren.

Wijzigingen bijhouden en inventaris

Wijzigingen bijhouden en inventaris met behulp van Azure Monitoring Agent houdt os-configuratiedrift bij in zowel Azure-VM's als vm's met Arc. Hiermee automatiseert u detectie van drift, de inventarisservices en geïnstalleerde pakketten op de virtuele machines in uw workload. Items die worden bijgehouden door wijzigingen bijhouden en inventaris zijn onder andere:

  • Geïnstalleerde Windows- en Linux-software
  • Belangrijke Windows- en Linux-bestanden
  • Windows-registersleutels
  • Windows-services en Linux-daemons

Controlelijst voor operationele uitmuntendheid

Raadpleeg de volledige set aanbevelingen.