Aanbevelingen voor het inschakelen van automatisering

Van toepassing op deze aanbeveling voor de 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 aan te past. 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 het achterhoofd 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 om uw systemen efficiënter bij te werken, te patchen en te upgraden.

Belangrijke ontwerpstrategieën

Workloadontwerp

U kunt uw workload ontwerpen om automatisering te ondersteunen vanaf de fase van ideeën tot de voortdurende verbeteringsfase. Bedenk eerst hoe u automatisering wilt toepassen in uw workload om ervoor te zorgen dat u de benodigde onderdelen op zijn plaats plaatst. Denk na over uw workload in termen van de Well-Architected Framework-pijlers 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 na het uitvoeren van uw workload tot een minimum te beperken. Houd rekening met uw workloadvereisten bij het bepalen welke automatiseringsprogramma's u wilt gebruiken. Mogelijk zijn er standaard automatiseringsprogramma's waarmee uw team al bekend is. Het gebruik van deze hulpprogramma's kan het automatiseren van uw workload eenvoudiger maken, maar houd rekening met hun beperkingen en compatibiliteit met uw cloudplatform. Sommige automatiseringsprogramma'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 het implementeren van de vereiste systemen, bijvoorbeeld indelingsservers.

  • Automatisch schalen: gebruik automatisch schalen in uw infrastructuur om te voldoen aan uw betrouwbaarheids- en prestatievereisten. U moet IP-adresruimte en subnetten in uw workload van tevoren toewijzen om rekening te houden met schaalbewerkingen, naast het plannen van redundantie en natuurlijke groei.

Afweging: houd bij het ontwerpen van uw workload rekening met de mate van controle die u wilt behouden versus de efficiëntie die u met automatisering kunt bereiken. In sommige gevallen is uw workload mogelijk niet volwassen genoeg om bepaalde functies te automatiseren of hebt u mogelijk een flexibiliteitsniveau nodig dat automatisering niet biedt.

Houd ook rekening met de vaardigheden van uw team bij het ontwerpen van uw workload. Als voor een hoge mate van automatisering hulpprogramma's nodig zijn die niet door uw team kunnen worden ondersteund, moet u mogelijk een minder uitgebreid ontwerp gebruiken als tussenstap.

Continue verbeteringen van de workload

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 bekijk het gedrag van klanten met betrekking tot uw workload om gebieden te identificeren waar u de 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 van korte duur. U kunt automatisering van inschalen integreren om het CPU-gebruik te verlagen wanneer de belasting onder de drempelwaarde daalt.

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

Bootstrapping

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 wordt 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 technologieën voor het hosten van containers, zoals Azure Kubernetes Service (AKS).

Uw cloudplatform biedt mogelijk bootstrappingoplossingen 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 te injecteren.

Verificatie en autorisatie

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

Variabiliteit ontwerpen in uw workload

Vermijd onnodige implementatie van nieuwe infrastructuur wanneer er kleine wijzigingen worden aangebracht door flexibiliteit in te bouwen in uw artefacten. In plaats van uw infrastructuur opnieuw te implementeren wanneer een functievlag wordt gewijzigd, 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 overmatig gebruik en configuratiedrift te voorkomen.

Een besturingsvlak bouwen

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

Onderhoudsbewerkingen beschikbaar maken via het besturingsvlak waarmee u workloadonderdelen kunt coördineren, bijvoorbeeld geodempte back-up- en herstelbewerkingen, bootstrapping, configuratie, importeren/exporteren en batchbewerkingen. Zorg ervoor dat u het juiste granulariteitsniveau kiest bij het bepalen van de bewerkingen die u wilt weergeven via het besturingsvlak.

Bewaken en logboeken bijhouden

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

Levenscyclus van gebruikers

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, het inrichten en ongedaan maken van de inrichting van de infrastructuur, en het beheer van referenties en geheimen.

Indeling en beleidsgebruik

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 zorgt ervoor dat configuratiedrift snel wordt opgevangen en opgelost. U kunt DSC automatiseren met behulp van indelingshulpprogramma's of hulpprogramma's voor beleidsbeheer. U kunt indelingshulpprogramma's, zoals Azure DevOps-services of Jenkins, beschouwen 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 dat de workload periodiek peilt om de status ervan te controleren op basis van uw gedefinieerde DSC. Als de poll een onjuiste uitlijning of configuratiedrift identificeert, onderneemt het hulpprogramma een corrigerende actie. 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 voor implementatie en beheer van infrastructuur als code (IaC) te onderhouden. 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 bij het beleidsbeheersysteem. Een voordeel van het gebruik van beleidsbeheer is dat deze systemen niet op basis van code worden gebruikt, zodat operators in uw team ze misschien gemakkelijker kunnen gebruiken.

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

Azure-facilitering

Beleidsbeheer

Azure Policy: Met 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. U kunt ook Azure Policy gebruiken om elke resource en elk beleid op een gedetailleerd niveau te evalueren. U kunt Azure Policy ook gebruiken om nieuwe resources automatisch te herstellen of bestaande resources bulksgewijs te herstellen.

Afweging: Offloading 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 gevangen 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: Virtual Machines-extensies zijn kleine pakketten die de 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 de 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 VM of Azure Virtual Machine Scale Sets. U kunt instellen dat deze extensies 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 de Azure Portal.

Cloud-init: Cloud-init is een branchehulpprogramma voor het configureren van Linux-VM's bij de eerste opstart. 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 cloud-init-VM-installatiekopieën 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 beheer van gebruikersaccounts, Kubernetes-pods of het uitvoeren van query's op gegevens van 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 is geïmplementeerd, worden PowerShell- of Azure CLI-opdrachten en -scripts uitgevoerd. Scriptuitvoeringen en logboekregistratie kunnen worden waargenomen in de 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 op te geven in GitHub-opslagplaatsen. Omdat AKS-clusterbestanden worden opgeslagen in een GitHub-opslagplaats, hebben ze versiebeheer en kunnen wijzigingen tussen versies eenvoudig worden 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 op te halen uit de opslagplaats. Zie Referentiearchitectuur voor AKS-basislijnen voor meer informatie.

Configuratiebeheer

Azure Automation State Configuration is een DSC-beheerprogramma dat wordt beheerd door de functie Azure Policy gastconfiguratie waarmee u PowerShell DSC-configuraties kunt schrijven, beheren en compileren voor knooppunten in elk 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 een groot aantal toepassingsconfiguraties in uw omgeving veilig kunt beheren.

Wijzigingen bijhouden en inventaris

Wijzigingen bijhouden en inventariseren met behulp van Azure Monitoring Agent houdt besturingssysteemconfiguratiedrift in virtuele machines bij. Hiermee automatiseert u de detectie van afwijkingen, de inventarisservices die worden uitgevoerd 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.