Aanbevelingen voor het implementeren van automatisering
Is van toepassing op deze goed ontworpen Framework Operational Excellence-controlelijstaanbeveling:
OE:09 | Automatiseer alle taken die niet profiteren van het inzicht en de aanpassingsvermogen van menselijke interventie, zijn zeer procedureel en hebben een houdbaarheid die een rendement op automatiseringsinvesteringen oplevert. Kies indien mogelijk off-the-shelf software voor automatisering versus aangepaste implementaties. Behandel alle automatisering hetzelfde als workloadonderdelen en pas de goed ontworpen frameworkpijlers 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 herhaaldelijk en gevoelig zijn voor menselijke fouten, zodat uw teams efficiënter kunnen worden en aan normen kunnen voldoen. Automatiseer taken om uw workload gestroomlijnd en consistent te maken. Met Automation kunnen uw operationele en technische teams efficiënter werken, omdat ze meer tijd hebben om aan andere verbeteringen te werken. Automatisering is een krachtig hulpprogramma in alle aspecten van workloadbeheer. Implementeer zorgvuldig automatisering om uw organisatie in staat te stellen.
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 overweeg de waarde die ze aan uw organisatie bieden. Om de waarde van uw investering in automatisering te maximaliseren, geeft u prioriteit aan taken die eenvoudig, procedureel zijn en een lange houdbaarheid hebben. Automatisering toepassen is geen all-or-nothing tactiek. Er zijn werkstromen met bewerkingen die menselijke tussenkomst vereisen, zoals besluitvormingspunten. Deze werkstromen kunnen nog steeds profiteren van automatisering om andere taken uit te voeren.
Taken evalueren om te automatiseren
Houd rekening met de volgende aanbevelingen om ervoor te zorgen dat u prioriteit geeft aan taken die het meeste profiteren van automatisering:
Doel voor eenvoudige overwinningen. Richt u op taken die zeer procedureel en gevoelig zijn voor menselijke fouten. Deze taken zijn zeer automatiseren. 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 plaatsvinden volgens een planning, als reactie op een gebeurtenis- of bewakingswaarschuwing, of indien nodig op basis van externe factoren.
Zoek naar manieren om operators 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 voor uw helpdeskteam bouwt, kunt u deze inschakelen om een lege database zelf te maken. Of als tussenliggende stap kunt u de aanvragen en de stappen voor het MKB automatiseren om uit te voeren door scripts te maken die moeten worden uitgevoerd.
Richt u op uw rendement op investeringen. Hoogwaardige automatisering vereist minimale beheeroverhead en voegt een demonstrabele mate van efficiëntie toe. Als u uw operations-team een uur per dag kunt opslaan door databasevermeldingen te automatiseren, geeft u ze bijvoorbeeld tijd om andere gebieden voor verbetering te vinden.
Gebieden voor het implementeren van automatisering
Gebruik automatisering gedurende de hele levenscyclus van workloads, van ontwikkeling tot dagelijks beheer. Gebruik de volgende lijst met voorbeelden om u te helpen rekening te houden met de brede gebieden van uw workloadlevenscyclus 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. Met deze hulpprogramma's kunt u CI/CD-taken of andere taken automatiseren, zoals het maken van rapporten.
Implementaties: Gebruik hulpprogramma's zoals Azure Resource Manager-sjablonen, Bicep, Terraform en Ansible om uw workloadontwikkelings- en releaseprocessen 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 kwaliteitsgarantieteam verlichten en ervoor zorgen dat tests worden gestandaardiseerd en betrouwbaar zijn.
Schalen: Gebruik platformfuncties en andere hulpprogramma's, zoals indelingshulpprogramma's, om uw infrastructuur automatisch te schalen wanneer de belasting toeneemt 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 herstel te helpen bij het oplossen van problemen.
Zelfherstel: gebruik waarschuwingen die door uw bewakingssysteem worden gegenereerd 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: Schakel systemen in om automatisch goedkeuringsbeslissingen te nemen op basis van vooraf gedefinieerde regels om de efficiëntie voor werkstromen met goedkeuringspoorten te verbeteren. Deze methode moedigt het gebruik van gestandaardiseerde formulieren en sjablonen aan, waardoor de efficiëntie van de processen wordt verhoogd. Automatische goedkeuring in hoge omgevingen kan riskant zijn. Richt u nauwkeurig op uw geautomatiseerde goedkeuringen en test deze om ervoor te zorgen dat specifieke criteria worden gedefinieerd om goedkeuring te verlenen.
Nieuwe gebruikers en nieuwe werknemers onboarding: 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 huis is tijdrovend en kan leiden tot beheerlast voor uw ontwikkelteam. Ze moeten een intern automatiseringsprogramma onderhouden, net als andere interne software. Het is raadzaam dat u off-the-shelf tools gebruikt wanneer ze aan uw behoeften kunnen voldoen. Er zijn veel opties beschikbaar tussen hulpprogramma's voor commerciële, open source- en cloudplatforms. Waarschijnlijk gebruikt u verschillende hulpprogramma's om de automatisering te bouwen die u nodig hebt. Vertrouw op uw interne expertise om uw beslissingen te helpen bij het evalueren van hulpprogramma's. Uw team kan meer vertrouwd zijn 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 wilt aanpakken met automatisering en investeer in de hulpprogramma's waarmee deze taken specifiek kunnen worden aangepakt. U hoeft geen hulpprogramma's aan te schaffen die u over het algemeen liever gebruikt en houd daarna rekening met de taken.
Houd rekening met factoren die uw bewerkingen kunnen bemoeilijken wanneer u uw automatisering bouwt, zoals versievergrendeling en overgebruik van invoegtoepassingen. Invoegtoepassingen, zoals Jenkins of Azure DevOps-invoegtoepassingen, zijn een uitstekende manier om functionaliteit toe te voegen. U moet plug-ins gebruiken wanneer het uw automatiseringsdoelen oplevert. Maar wanneer u meerdere invoegtoepassingen gebruikt om één taak uit te voeren, kan dit automatiseringsupdates en probleemoplossing lastig maken. Wees verstandig in uw gebruik van plug-ins. Vermijd ook oplossingen met frameworkversieafhankelijkheden omdat ze in de loop van de tijd last hebben om te onderhouden. Om het risico van dit soort problemen te minimaliseren, kunt u uw selectie van automatiseringshulpprogramma's en invoegtoepassingen standaardiseren en broncodebeheer gebruiken voor alle automatiseringsprojecten.
Automatisering integreren in uw workload
Voor elk hulpprogramma dat u gebruikt om uw automatisering te bouwen, maakt u deze eenvoudig toegankelijk en beheerbaar voor uw operators. Bied duidelijke en gebruiksvriendelijke interfaces voor uw workloadteam. U kunt toegang bieden tot CI/CD-pijplijnen, API's en bibliotheken. Net als de workload die door de automatisering wordt ondersteund, moet u de automatisering holistisch beheren. Beveilig automatisering in dezelfde mate als andere workloadonderdelen. Controleer automatisering en bewaak deze onder dezelfde testprotocollen als andere workloadonderdelen.
Overwegingen
Soms wegen de efficiëntie die u krijgt door automatisering op tegen de beheerlast van het ontwikkelen van uw eigen oplossing als er geen oplossingen buiten de plank passen aan uw vereisten. In dergelijke gevallen moet u goed zijn in uw ontwikkelingsinspanningen. Richt u beperkt tot het ontwikkelen van alleen wat u nodig hebt om hiaten te behandelen die u niet kunt oplossen met kant-en-klare oplossingen en complexiteiten zoals afhankelijkheden te minimaliseren.
Complexe automatisering waarvoor een hoge mate van onderhoud is vereist, kan lastig zijn voor operationele teams om problemen te beheren en op te lossen. Houd geautomatiseerde taken nauw gericht op het uitvoeren van afzonderlijke taken. Probeer afhankelijkheden van andere hulpprogramma's of onderdelen te minimaliseren.
Wees voorzichtig met 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 praktijk 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 vooral voorzichtig zijn. Als een script het grootste deel van een proces uitvoert, maar vervolgens uitstellen aan een persoon voor een bepaald deel of een bepaalde beslissing, 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 uw favoriete ontwikkeltaal. Functions biedt een uitgebreide set gebeurtenisgestuurde triggers en bindingen die uw functies verbinden 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 kan worden geïntegreerd 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 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 opstarten van services, het overdragen van logboeken tussen gegevensarchieven en het schalen van infrastructuur om te voldoen aan de vraag. U kunt deze bewerkingen in code uitdrukken en op aanvraag uitvoeren. Alleen deze talen bieden geen platform voor gecentraliseerd beheer, versiebeheer of uitvoeringsgeschiedenis. De talen hebben ook geen systeemeigen mechanisme voor het reageren op gebeurtenissen zoals bewakingsgestuurde waarschuwingen. 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:
Runbooks op aanvraag activeren, volgens een planning of via een webhook.
Uitvoeringsgeschiedenis en logboekregistratie.
Integreer een geheimenarchief.
Broncodebeheer integreren.
Azure Update Manager: Update Manager is een geïntegreerde service voor het beheren en beheren van updates voor virtuele machines. U kunt de naleving van Windows- en Linux-updates bewaken in uw workload. U kunt Update Manager ook gebruiken om realtime updates uit te voeren of om ze in te plannen binnen een gedefinieerd onderhoudsvenster. Updatebeheer gebruiken om het volgende te doen:
- Toezicht houden op naleving van uw hele vloot machines.
- Terugkerende updates plannen
- Essentiële updates implementeren
Azure Deployment Environments: Met implementatieomgevingen kunnen ontwikkelteams snel 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 zijn geïmplementeerd in vooraf gedefinieerde abonnementen. Beheerders van ontwikkelingsinfrastructuur kunnen beveiligingsbeleid voor ondernemingen afdwingen en een gecureerde set vooraf gedefinieerde IaC-sjablonen bieden.
Beheerders van ontwikkelingsinfrastructuur definiëren implementatieomgevingen als catalogusitems. Catalogusitems worden gehost in een GitHub- of Azure DevOps-opslagplaats, een catalogus genoemd. Een catalogusitem bestaat uit een IaC-sjabloon en een manifest.yaml-bestand.
U kunt het maken van implementatieomgevingen uitvoeren en de omgevingen programmatisch beheren.
Azure Logic Apps en Microsoft Power Automate: wanneer u aangepaste digitale procesautomatisering (DPA) bouwt voor het afhandelen van workloadtaken zoals goedkeuringsstromen of het bouwen van ChatOps-integraties, kunt u overwegen Logic Apps of Power Automate te 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 geschikt voor taken op basis van triggers of tijd.
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.
Opmerking
Zie Ops-automatisering 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.
Verwante koppelingen
- Automation
- Azure Update Manager
- Azure Functions
- Azure Monitor-actiegroepen
- Implementatieomgevingen
- GitHub Actions voor Azure
- Logic-apps
- Automatisering van ops met behulp van Event Grid
- Power Automate
- Aanbevelingen voor het ontwerpen van een strategie voor betrouwbaarheidstests
- Aanbevelingen voor het ontwerpen van een betrouwbare schaalstrategie
- Aanbevelingen voor zelfherstel en zelfbehoud
Controlelijst voor operationele uitmuntendheid
Raadpleeg de volledige set aanbevelingen.