Aanbevelingen voor het implementeren van automatisering

Van toepassing op deze aanbeveling voor de controlelijst voor operationele uitmuntendheid van Well-Architected Framework:

OE:09 Automatiseer alle taken die niet profiteren van het inzicht en het aanpassingsvermogen van menselijke interventie, die zeer procedureel zijn en een houdbaarheid hebben die een rendement oplevert op automatiseringsinvesteringen. Kies indien mogelijk standaardsoftware voor automatisering versus aangepaste implementaties. Behandel alle automatisering op dezelfde als workloadonderdelen en pas de Well-Architected Framework-pijlers toe op hun ontwerp en implementatie.

In deze handleiding worden de aanbevelingen beschreven voor het toepassen van automatisering in uw workload. U kunt taken automatiseren die zich herhalen en gevoelig zijn voor menselijke fouten om uw teams te helpen efficiënter te worden en te voldoen aan de normen. Automatiseer taken om uw workload gestroomlijnd en consistent te maken. Automatisering stelt uw operationele en technische teams in staat om efficiënter te werken, omdat ze meer tijd hebben om aan andere verbeteringen te werken. Automatisering is een krachtig hulpprogramma voor alle aspecten van workloadbeheer. Implementeer zorgvuldig automatisering om uw organisatie meer mogelijkheden te bieden.

Belangrijke ontwerpstrategieën

Wanneer u uw workload ontwikkelt, zoekt u naar mogelijkheden om te profiteren van automatisering om de beheerlast te verminderen en menselijke fouten te minimaliseren. Evalueer deze kansen en houd rekening met de waarde die ze voor uw organisatie bieden. Als u de waarde van uw investering in automatisering wilt maximaliseren, moet u prioriteit geven aan taken die eenvoudig en procedureel zijn en een lange houdbaarheid hebben. Het toepassen van automatisering is geen alles-of-niets-tactiek. Er zijn werkstromen die bewerkingen kunnen hebben waarvoor menselijke tussenkomst is vereist, zoals besluitvormingspunten. Deze werkstromen kunnen nog steeds profiteren van automatisering om andere taken uit te voeren.

Doeltaken die moeten worden geautomatiseerd

Houd rekening met de volgende aanbevelingen om ervoor te zorgen dat u prioriteit geeft aan taken die het meest profiteren van automatisering:

  • Mik op eenvoudige overwinningen. Richt u op taken die zeer procedureel zijn en gevoelig zijn voor menselijke fouten. Deze taken kunnen in hoge mate worden geautomatiseerd. Ze zijn duidelijk gedefinieerd, ze zijn vrij van variabelen die complexiteit toevoegen en ze worden uitgevoerd als onderdeel van normale bewerkingen. Geef daarentegen geen prioriteit aan het automatiseren van taken waarvoor complexe scripts moeten worden geschreven om rekening te houden met variabele verschijnselen of taken die zelden voorkomen.

    Voorbeelden van zeer automatiseerbare taken zijn het opnieuw opstarten van servers, het maken van accounts en het overdragen van logboeken naar een gegevensarchief. Deze taken kunnen volgens een planning worden uitgevoerd, als reactie op een gebeurtenis of bewakingswaarschuwing, of als dat nodig is op basis van externe factoren.

  • Zoek naar manieren om operators meer mogelijkheden te bieden en uw KMO's vrij te maken. Mogelijk hebt u experts in uw organisatie die afhankelijk zijn van escalaties die mogelijk niet nodig zijn. Uw databasebeheerders kunnen bijvoorbeeld regelmatig aanvragen krijgen om nieuwe databases te maken wanneer u nieuwe klanten onboardt voor uw multitenant-oplossing. Als u een selfserviceportal bouwt voor uw helpdeskteam, kunt u hen in staat stellen om zelf veilig een lege database te maken. Of als tussenliggende stap kunt u de aanvragen en de stappen die het SME moet uitvoeren automatiseren door scripts te maken die moeten worden uitgevoerd.

  • Richt u op uw rendement op investeringen. Hoogwaardige automatisering vereist minimale beheeroverhead en voegt een aantoonbare mate van efficiëntie toe. Als u uw operationele team een uur per dag kunt besparen door bijvoorbeeld databasevermeldingen te automatiseren, geeft u ze de tijd om andere gebieden voor verbetering te vinden.

Gebieden voor het implementeren van automatisering

Pas automatisering toe gedurende de volledige levenscyclus van uw workload, van ontwikkeling tot dagelijks beheer. Gebruik de volgende lijst met voorbeelden om rekening te houden met de grote gebieden van de levenscyclus van uw workload die kunnen profiteren van automatisering. U kunt het volgende automatiseren:

  • Pijplijndefinitie, uitvoering en beheer: gebruik hulpprogramma's voor continue integratie en continue levering (CI/CD), zoals Azure DevOps en andere DevOps-hulpprogramma's, om automatisch een pijplijn te definiëren en hoe deze wordt uitgevoerd. Deze hulpprogramma's kunnen u helpen bij het automatiseren van CI/CD-taken of andere taken, zoals het maken van rapporten.

  • Implementaties: Gebruik hulpprogramma's zoals Azure Resource Manager-sjablonen, Bicep, Terraform en Ansible om uw processen voor het ontwikkelen en vrijgeven van workloads te automatiseren. Implementeer en werk uw infrastructuur bij met dezelfde automatiseringsplatforms met behulp van een IaC-benadering (infrastructure as code).

  • Testen: er zijn veel hulpprogramma's beschikbaar voor het automatiseren van uw testprocessen. Deze hulpprogramma's kunnen een aanzienlijke last van uw kwaliteitsbewakingsteam verlichten en ervoor zorgen dat tests gestandaardiseerd en betrouwbaar zijn.

  • Schalen: gebruik door het platform geleverde functionaliteit en andere hulpprogramma's, zoals indelingshulpprogramma's, om uw infrastructuur automatisch te schalen wanneer de belasting toe- of afneemt.

  • Bewaking en waarschuwingen: gebruik hulpprogramma's die beschikbaar zijn in uw bewakingsoplossing om automatisch nieuw geïmplementeerde resources in te schrijven en door waarschuwingen geactiveerde acties te configureren om het herstel te bestaken wanneer zich problemen voordoen.

  • Zelfherstel: gebruik waarschuwingen die worden gegenereerd door uw bewakingssysteem om acties te automatiseren en defecte onderdelen of taken te herstellen. Zie Aanbevelingen voor zelfherstel en zelfbehoud voor meer informatie.

  • Configuratiebeheer: gebruik indelings- en beleidshulpprogramma's om ervoor te zorgen dat al uw resources dezelfde configuratie uitvoeren en dat nalevingsvereisten worden afgedwongen in uw workload.

  • Andere beheertaken: gebruik scripts om terugkerende taken te automatiseren, zoals het bijwerken van databaserecords of DNS-records.

  • Goedkeuringen: Hiermee kunnen systemen automatisch goedkeuringsbeslissingen nemen op basis van vooraf gedefinieerde regels om de efficiëntie te verbeteren voor werkstromen met goedkeuringspoorten. Deze methode moedigt het gebruik van gestandaardiseerde formulieren en sjablonen aan, waardoor de efficiëntie van de processen wordt verhoogd. Automatische goedkeuring in omgevingen met een hoog niveau kan riskant zijn. Richt en test uw geautomatiseerde goedkeuringen nauwkeurig om ervoor te zorgen dat er specifieke criteria worden gedefinieerd om goedkeuring te verlenen.

  • Onboarding van nieuwe gebruikers en nieuwe werknemers: u kunt veel taken automatiseren die zijn gekoppeld aan het onboarden van nieuwe toepassingsgebruikers of nieuwe werknemers, zoals database-updates en het maken van referenties.

  • Bewaking en waarschuwingen: profiteer van de automatiseringsfunctionaliteit die uw waarneembaarheidsplatform biedt. Automatisch nieuwe apparaten inschrijven om afwijkingen te bewaken en te waarschuwen.

Een geschikt automatiseringsprogramma kiezen

Het ontwikkelen van uw eigen automatisering in eigen beheer is tijdrovend en kan het beheer belasten met uw ontwikkelteam. Ze moeten een interne automatiseringstool onderhouden, net zoals andere interne software. Het is raadzaam om standaard gereedschap te gebruiken wanneer ze aan uw behoeften kunnen voldoen. Er zijn veel opties beschikbaar tussen hulpprogramma's voor commercieel, open source en cloudplatform. Waarschijnlijk gebruikt u diverse hulpprogramma's om de automatisering te bouwen die u nodig hebt. Vertrouw op uw interne expertise om u te helpen bij het nemen van beslissingen bij het evalueren van hulpprogramma's. Uw team is mogelijk meer bekend met bepaalde ontwikkeltalen en frameworks. U kunt zich in eerste instantie richten op kant-en-klare hulpmiddelen die ze kunnen gebruiken zonder een hoge leercurve. Denk na over de taken die u met automatisering wilt uitvoeren en investeer in de hulpprogramma's die specifiek voor deze taken kunnen worden gebruikt. Koop geen hulpprogramma's die u over het algemeen de voorkeur geeft en overweeg de taken daarna.

Houd rekening met factoren die uw bewerkingen kunnen bemoeilijken wanneer u uw automatisering bouwt, zoals versievergrendeling en overmatig gebruik van invoegtoepassingen. Invoegtoepassingen, zoals Jenkins of Azure DevOps-invoegtoepassingen, zijn een uitstekende manier om functionaliteit toe te voegen. U moet plug-ins gebruiken wanneer dit uw automatiseringsdoelen ten goede komt. Maar wanneer u meerdere invoegtoepassingen gebruikt om één taak uit te voeren, kan dit automatiseringsupdates en het oplossen van problemen bemoeilijken. Wees verstandig in uw gebruik van plug-ins. Vermijd ook oplossingen met afhankelijkheden van frameworkversies, omdat deze een last zijn om in de loop van de tijd te onderhouden. Om het risico op dit soort problemen te minimaliseren, standaardiseert u uw selectie van automatiseringsprogramma's en invoegtoepassingen en gebruikt u broncodebeheer voor alle automatiseringsprojecten.

Automatisering integreren in uw workload

Voor elk hulpprogramma dat u gebruikt om uw automatisering te bouwen, maakt u het eenvoudig toegankelijk en beheerbaar voor uw operators. Zorg voor duidelijke en gebruiksvriendelijke interfaces voor uw workloadteam. U kunt toegang bieden tot CI/CD-pijplijnen, API's en bibliotheken. Net als de workload die de automatisering ondersteunt, moet u de automatisering holistisch beheren. Beveilig automatisering in dezelfde mate als andere workloadonderdelen. Controleer automatisering en onderwerp deze aan dezelfde testprotocollen als andere workloadonderdelen.

Overwegingen

  • Soms wegen de efficiëntie die u behalen door automatisering op tegen de beheerlast van het ontwikkelen van uw eigen oplossing als er geen standaardoplossingen aan uw vereisten voldoen. Wees in dergelijke gevallen verstandig in uw ontwikkelingsinspanningen. Richt u op het ontwikkelen van alleen wat u nodig hebt om hiaten te overbruggen die u niet kunt oplossen met kant-en-klare oplossingen en om complexiteiten zoals afhankelijkheden te minimaliseren.

  • Complexe automatisering die een hoge mate van onderhoud vereist, kan moeilijk zijn voor operationele teams om te beheren en problemen op te lossen. Houd geautomatiseerde taken strikt gericht op het uitvoeren van alleen discrete taken. Probeer afhankelijkheden van andere hulpprogramma's of onderdelen te minimaliseren.

  • Denk goed na over het gebruik van handmatige processen. Als u besluit een bewerking niet te automatiseren, documenteer dan het handmatige proces grondig door een stapsgewijze controlelijst voor operators te maken. Deze procedure vermindert de kans op menselijke fouten, zoals een operator die per ongeluk het verkeerde proces uitvoert. Deze documentatie helpt u ook bij het ontwerpen van automatisering voor dat proces in de toekomst.

  • Wanneer u een hybride handmatige en geautomatiseerde benadering gebruikt, moet u bijzonder voorzichtig zijn. Als een script het grootste deel van een proces uitvoert, maar vervolgens voor een bepaald deel of een bepaalde beslissing aan een persoon wordt uitgestelde, is het belangrijk dat u de persoon de benodigde context en informatie geeft om een weloverwogen beslissing te nemen.

Azure-facilitering

Azure biedt veel hulpprogramma's waarmee u taken voor uw workload kunt automatiseren.

IaC-hulpprogramma's: u kunt Terraform, Bicep en Azure Resource Manager gebruiken voor IaC-implementaties. Afhankelijk van uw vereisten en de bekendheid van uw team met de hulpprogramma's, kunt u een of meer van deze hulpprogramma's gebruiken voor uw implementaties en het beheer van resources.

Azure Functions: Azure Functions is een serverloos hulpprogramma dat u kunt gebruiken om taken te automatiseren met behulp van de ontwikkeltaal van uw voorkeur. Functions biedt een uitgebreide set gebeurtenisgestuurde triggers en bindingen waarmee uw functies worden verbonden met andere services. U hoeft geen extra code te schrijven.

GitHub Actions voor Azure: u kunt GitHub Actions voor Azure gebruiken om CI/CD-processen te automatiseren. GitHub Actions integreert met Azure om implementaties te vereenvoudigen. U kunt werkstromen maken die elke pull-aanvraag in uw opslagplaats bouwen en testen, of samengevoegde pull-aanvragen implementeren in productie.

GitHub Actions gaat verder dan alleen DevOps en stelt u in staat om werkstromen uit te voeren wanneer andere gebeurtenissen in uw opslagplaats plaatsvinden. U kunt bijvoorbeeld een werkstroom uitvoeren om automatisch de juiste labels toe te voegen wanneer iemand een nieuw probleem in uw opslagplaats maakt.

Azure Automation: PowerShell en Python zijn populaire programmeertalen voor het automatiseren van operationele taken. Gebruik deze talen om bewerkingen uit te voeren, zoals het opnieuw starten van services, het overdragen van logboeken tussen gegevensarchieven en het schalen van de infrastructuur om aan de vraag te voldoen. U kunt deze bewerkingen in code uitdrukken en ze op aanvraag uitvoeren. Alleen deze talen bieden geen platform voor gecentraliseerd beheer, versiebeheer of uitvoeringsgeschiedenis. De talen hebben ook geen systeemeigen mechanisme om te reageren op gebeurtenissen zoals waarschuwingen die zijn gebaseerd op bewaking. Als u deze mogelijkheden wilt bieden, hebt u een automatiseringsplatform nodig.

Automation biedt een door Azure gehost platform voor het hosten en uitvoeren van PowerShell- en Python-code in cloud- en on-premises omgevingen, zowel Azure als niet-Azure. PowerShell- en Python-code wordt opgeslagen in een Automation-runbook. Gebruik Automation voor het volgende:

  • Activeer runbooks op aanvraag, volgens een schema of via een webhook.

  • Uitvoeringsgeschiedenis en logboekregistratie.

  • Een geheimenarchief integreren.

  • Broncodebeheer integreren.

Azure Update Manager: Updatebeheer is een geïntegreerde service voor het beheren en beheren van updates voor virtuele machines. U kunt de naleving van Windows- en Linux-updates in uw hele workload bewaken. U kunt Updatebeheer ook gebruiken om realtime updates uit te voeren of deze te plannen binnen een gedefinieerd onderhoudsvenster. Updatebeheer gebruiken voor het volgende:

  • Toezicht houden op de naleving van uw hele machinepark.
  • Terugkerende updates plannen
  • Essentiële updates implementeren

Azure-implementatieomgevingen: met implementatieomgevingen kunnen ontwikkelteams snel een consistente app-infrastructuur maken met behulp van projectsjablonen. Deze sjablonen minimaliseren de installatietijd en maximaliseren de beveiliging, naleving en kostenefficiëntie. Een implementatieomgeving is een verzameling Azure-resources die worden geïmplementeerd in vooraf gedefinieerde abonnementen. Beheerders van de ontwikkelinfrastructuur kunnen beveiligingsbeleid voor ondernemingen afdwingen en een gecureerde set vooraf gedefinieerde IaC-sjablonen bieden.

Beheerders van de ontwikkelinfrastructuur definiëren implementatieomgevingen als catalogusitems. Catalogusitems worden gehost in een GitHub- of Azure DevOps-opslagplaats, een zogenaamde catalogus. Een catalogusitem bestaat uit een IaC-sjabloon en een manifest.yaml-bestand.

U kunt een script uitvoeren voor het maken van implementatieomgevingen en de omgevingen programmatisch beheren.

Azure Logic Apps en Microsoft Power Automate: wanneer u aangepaste automatisering van digitale processen (DPA) bouwt voor het afhandelen van workloadtaken, zoals goedkeuringsstromen of het bouwen van ChatOps-integraties, kunt u logic apps of Power Automate gebruiken. U kunt werkstromen maken op basis van ingebouwde connectors en sjablonen. Logic Apps en Power Automate zijn gebaseerd op dezelfde onderliggende technologie en zijn beide goed geschikt voor op triggers of op tijd gebaseerde taken.

Automatisch schalen: veel Azure-technologieën hebben ingebouwde mogelijkheden voor automatisch schalen. U kunt ook andere services programmeren om automatisch te schalen met behulp van API's. Zie Aanbevelingen voor het ontwerpen van een betrouwbare schaalstrategie voor meer informatie.

Azure Monitor-actiegroepen: als u automatisch zelfherstelbewerkingen wilt uitvoeren wanneer een waarschuwing wordt geactiveerd, gebruikt u Azure Monitor-actiegroepen. U kunt deze bewerkingen definiëren met behulp van een runbook, een Azure-functie of een webhook.

Voorbeeld

Zie Automatisering van bewerkingen met behulp van Azure Event Grid voor een voorbeeld van het gebruik van Automation in combinatie met andere Azure-services. In dit voorbeeld worden Logic Apps en Event Grid gebruikt om operationele taken te automatiseren.

Controlelijst voor operationele uitmuntendheid

Raadpleeg de volledige set aanbevelingen.