Dela via


Rekommendationer för implementering av automatisering

Gäller för den här checklistan för välarkitekterat ramverk för driftskvalitet:

OE:09 Automatisera alla uppgifter som inte drar nytta av insikten och anpassningsbarheten hos mänsklig inblandning, är mycket procedurmässiga och har en hållbarhetstid som ger avkastning på automationsinvesteringar. När det är möjligt kan du välja programvara som inte är tillgänglig för automatisering jämfört med anpassade implementeringar. Behandla all automatisering på samma sätt som arbetsbelastningskomponenter och tillämpa grundpelarna för välarkitekterat ramverk på deras design och implementering.

Den här guiden beskriver rekommendationerna för att införa automatisering i din arbetsbelastning. Du kan automatisera uppgifter som är repetitiva och utsatta för mänskliga fel för att hjälpa dina team att få effektivitet och följa standarder. Automatisera uppgifter för att göra din arbetsbelastning smidig och konsekvent. Automatisering gör det möjligt för dina drift- och ingenjörsteam att bli mer effektiva eftersom det ger dem mer tid att arbeta med andra förbättringar. Automation är ett kraftfullt verktyg i alla aspekter av arbetsbelastningshantering. Implementera automatisering eftertänksamt för att stärka din organisation.

Viktiga designstrategier

När du utvecklar din arbetsbelastning letar du efter möjligheter att dra nytta av automatisering för att minska hanteringsbördan och minimera mänskliga fel. Utvärdera dessa affärsmöjligheter och ta hänsyn till det värde som de tillför din organisation. För att maximera värdet av din investering i automatisering prioriterar du uppgifter som är enkla, procedurmässiga och har en lång hållbarhetstid. Att tillämpa automatisering är inte en all-or-nothing-taktik. Det finns arbetsströmmar som kan ha åtgärder som kräver mänsklig inblandning, till exempel beslutspunkter. Dessa arbetsströmmar kan fortfarande dra nytta av automatisering för att utföra andra uppgifter.

Utvärdera uppgifter för att automatisera

Överväg följande rekommendationer för att säkerställa att du prioriterar uppgifter som drar mest nytta av automatisering:

  • Sikta på enkla vinster. Fokusera på uppgifter som är mycket processuella och känsliga för mänskliga fel. Dessa uppgifter är mycket automatiserade. De är tydligt definierade, de är fria från variabler som ökar komplexiteten och de utförs som en del av normala åtgärder. Å andra sidan ska du inte prioritera automatisera uppgifter som kräver att du skriver komplexa skript för att ta hänsyn till varierande fenomen eller uppgifter som sällan inträffar.

    Exempel på mycket automatiserade uppgifter är att starta om servrar, skapa konton och överföra loggar till ett datalager. Dessa uppgifter kan inträffa enligt ett schema, som ett svar på en händelse- eller övervakningsavisering, eller efter behov baserat på externa faktorer.

  • Leta efter sätt att ge operatörer och frigöra dina små och medelstora företag. Du kan ha experter i din organisation som är beroende av eskaleringar som kan vara onödiga. Databasadministratörerna kan till exempel rutinmässigt få förfrågningar om att skapa nya databaser när du registrerar nya kunder till din lösning för flera klienter. Om du skapar en självbetjäningsportal för supportteamet kan du göra det möjligt för dem att skapa en tom databas på ett säkert sätt. Eller som ett mellanliggande steg kan du automatisera begäranden och de steg som SME ska utföra genom att skapa skript som ska köras.

  • Fokusera på din avkastning på investeringen. Automatisering med högt värde kräver minimala hanteringskostnader och ger en påvisbar grad av effektivitet. Om du kan spara ditt driftteam en timme varje dag genom att automatisera databasposter, till exempel, ger du dem tid att hitta andra förbättringsområden.

Områden för implementering av automatisering

Anta automatisering under hela arbetsbelastningens livscykel, från utveckling till daglig hantering. Använd följande lista med exempel som hjälper dig att ta hänsyn till de stora delar av din arbetsbelastningslivscykel som kan dra nytta av automatisering. Du kan automatisera:

  • Pipelinedefinition, körning och hantering: Använd verktyg för kontinuerlig integrering och kontinuerlig leverans (CI/CD), till exempel Azure DevOps och andra DevOps-verktyg, för att automatiskt definiera en pipeline och hur den körs. De här verktygen kan hjälpa dig att automatisera CI/CD-uppgifter eller andra uppgifter, till exempel att skapa rapporter.

  • Distributioner: Använd verktyg som Azure Resource Manager-mallar, Bicep, Terraform och Ansible för att automatisera dina arbetsbelastningsutvecklings- och lanseringsprocesser. Distribuera och uppdatera infrastrukturen med samma automatiseringsplattformar med hjälp av en IaC-metod (infrastruktur som kod).

  • Testning: Många verktyg är tillgängliga för att automatisera dina testprocesser. De här verktygen kan avlasta kvalitetssäkringsteamet avsevärt och se till att testerna är standardiserade och tillförlitliga.

  • Skalning: Använd funktioner som tillhandahålls av plattformen och andra verktyg, till exempel orkestreringsverktyg, för att automatiskt skala infrastrukturen när belastningen ökar eller minskar.

  • Övervakning och avisering: Använd verktyg som är tillgängliga i övervakningslösningen för att automatiskt registrera nyligen distribuerade resurser och konfigurera aviseringsutlösta åtgärder för att påskynda reparationen när problem uppstår.

  • Självåterställning: Använd aviseringar som genereras av övervakningssystemet för att automatisera åtgärder och återställa felaktiga komponenter eller jobb. Mer information finns i Rekommendationer för självåterställning och självbevarande.

  • Konfigurationshantering: Använd orkestrerings- och principverktyg för att säkerställa att alla dina resurser kör samma konfiguration och att efterlevnadskrav tillämpas i hela arbetsbelastningen.

  • Andra administrativa uppgifter: Använd skript för att automatisera repetitiva uppgifter som att uppdatera databasposter eller DNS-poster.

  • Godkännanden: Gör det möjligt för system att automatiskt fatta godkännandebeslut baserat på fördefinierade regler för att förbättra effektiviteten för arbetsflöden som har godkännandegrindar. Den här metoden uppmuntrar till användning av standardiserade formulär och mallar, vilket ökar effektiviteten i processerna. Automatiskt godkännande i höga miljöer kan vara riskabelt. Fokusera noga och testa dina automatiserade godkännanden för att säkerställa att specifika kriterier har definierats för att bevilja godkännande.

  • Ny användare och ny medarbetares registrering: Du kan automatisera många uppgifter som är associerade med registrering av nya programanvändare eller nya anställda, till exempel databasuppdateringar och skapande av autentiseringsuppgifter.

  • Övervakning och avisering: Dra nytta av de automatiseringsfunktioner som din observerbarhetsplattform tillhandahåller. Registrera nya enheter automatiskt för att övervaka och varna om avvikelser.

Välj ett lämpligt automatiseringsverktyg

Att utveckla din egen automatisering internt är tidsintensivt och kan medföra hanteringsbörda för utvecklingsteamet. De måste ha ett internt automatiseringsverktyg som de gör med annan intern programvara. Vi rekommenderar att du använder färdiga verktyg när de kan uppfylla dina behov. Mellan de verktyg som tillhandahålls av den kommersiella plattformen, öppen källkod och molnplattformen finns det många tillgängliga alternativ. Det är troligt att du kommer att använda en mängd olika verktyg för att skapa den automatisering som du behöver. Förlita dig på din interna expertis för att hjälpa dig att vägleda dina beslut när du utvärderar verktyg. Ditt team kanske är mer bekant med vissa utvecklingsspråk och ramverk. Du kan först fokusera på färdiga verktyg som de kan använda utan en hög inlärningskurva. Reflektera över de uppgifter som du planerar att hantera med automatisering och investera i de verktyg som specifikt kan hantera dessa uppgifter. Skaffa inte verktyg som du vanligtvis föredrar och tänk sedan på uppgifterna efteråt.

Tänk på faktorer som kan komplicera dina åtgärder när du skapar din automatisering, till exempel versionslåsning och överanvändning av plugin-program. Plugin-program, till exempel Jenkins eller Azure DevOps-plugin-program, är ett bra sätt att lägga till funktioner. Du bör använda plugin-program när det gynnar dina automatiseringsmål. Men när du använder flera plugin-program för att utföra en enda uppgift kan det göra automatiseringsuppdateringar och felsökning svåra. Var omdömesgill i din användning av plugin-program. Undvik även lösningar som har beroenden för ramverksversioner eftersom de är en börda att underhålla över tid. För att minimera risken för dessa typer av problem kan du standardisera ditt val av automatiseringsverktyg och plugin-program och använda källkontroll för alla automatiseringsprojekt.

Integrera automatisering i din arbetsbelastning

För alla verktyg som du använder för att skapa din automatisering gör du det lättillgängligt och hanterbart för dina operatörer. Ge arbetsbelastningsteamet tydliga och användarvänliga gränssnitt. Du kan ge åtkomst till CI/CD-pipelines, API:er och bibliotek. Precis som den arbetsbelastning som automatiseringen stöder måste du hantera automatiseringen holistiskt. Säker automatisering i samma utsträckning som andra arbetsbelastningskomponenter. Övervaka automatiseringen och underkasta den samma testprotokoll som andra arbetsbelastningskomponenter.

Att tänka på

  • Ibland uppväger effektiviteten du får av automatisering hanteringsbördan för att utveckla din egen lösning om inga färdiga lösningar passar dina behov. I dessa fall bör du vara omdömesgill i dina utvecklingsarbete. Fokusera på att bara utveckla det du behöver för att täcka luckor som du inte kan lösa med färdiga lösningar och minimera komplexitet som beroenden.

  • Komplex automatisering som kräver en hög grad av underhåll kan vara svårt för driftsteam att hantera och felsöka. Håll automatiserade uppgifter noga fokuserade på att endast utföra diskreta jobb. Försök att minimera beroenden för andra verktyg eller komponenter.

  • Tänk på att använda manuella processer. Om du bestämmer dig för att inte automatisera en åtgärd kan du noggrant dokumentera den manuella processen genom att skapa en stegvis checklista för operatörer. Den här metoden minskar risken för mänskliga fel, till exempel en operator som felaktigt kör fel process. Den här dokumentationen hjälper dig också att utforma automatisering för den processen i framtiden.

  • När du använder en manuell hybridmetod måste du vara särskilt försiktig. Om ett skript kör det mesta av en process men sedan defers till en människa för en viss del eller beslut, är det viktigt att du ger personen den kontext och information som krävs för att fatta ett välgrundat beslut.

Azure-underlättande

Azure erbjuder många verktyg som hjälper dig att automatisera uppgifter för din arbetsbelastning.

IaC-verktyg: Du kan använda Terraform-, Bicep- och Azure Resource Manager för IaC-distributioner. Beroende på dina krav och teamets kunskaper om verktygen kan du använda ett eller flera av dessa verktyg för dina distributioner och hantering av resurser.

Azure Functions: Azure Functions är ett serverlöst verktyg som du kan använda för att automatisera uppgifter med hjälp av önskat utvecklingsspråk. Functions tillhandahåller en omfattande uppsättning händelsedrivna utlösare och bindningar som ansluter dina funktioner till andra tjänster. Du behöver inte skriva extra kod.

GitHub Actions för Azure: Du kan använda GitHub Actions för Azure för att automatisera CI/CD-processer. GitHub Actions integreras med Azure för att förenkla distributioner. Du kan skapa arbetsflöden som skapar och testar varje pull-begäran på lagringsplatsen eller distribuera sammanfogade pull-begäranden till produktion.

GitHub Actions går utöver bara DevOps och gör att du kan köra arbetsflöden när andra händelser inträffar på din lagringsplats. Du kan till exempel köra ett arbetsflöde för att automatiskt lägga till lämpliga etiketter när någon skapar ett nytt problem på lagringsplatsen.

Azure Automation: PowerShell och Python är populära programmeringsspråk för att automatisera operativa uppgifter. Använd dessa språk för att utföra åtgärder som att starta om tjänster, överföra loggar mellan datalager och skala infrastruktur för att möta efterfrågan. Du kan uttrycka dessa åtgärder i kod och köra dem på begäran. Enbart dessa språk erbjuder inte en plattform för centraliserad hantering, versionskontroll eller körningshistorik. Språken saknar också en inbyggd mekanism för att svara på händelser som övervakningsdrivna aviseringar. För att tillhandahålla dessa funktioner behöver du en automationsplattform.

Automation tillhandahåller en Azure-värdbaserad plattform för att vara värd för och köra PowerShell- och Python-kod i molnmiljöer och lokala miljöer, både i Azure och i andra miljöer än Azure. PowerShell- och Python-kod lagras i en Automation-runbook. Använd Automation för att göra följande:

  • Utlösa runbooks på begäran, enligt ett schema eller via en webhook.

  • Körningshistorik och loggning.

  • Integrera ett hemlighetsarkiv.

  • Integrera källkontroll.

Azure Update Manager: Update Manager är en enhetlig tjänst som hjälper dig att hantera och styra uppdateringar för virtuella datorer. Du kan övervaka windows- och Linux-uppdateringsefterlevnad i din arbetsbelastning. Du kan även använda uppdateringshanterare för att göra uppdateringar i realtid eller schemalägga dem inom en definierad underhållsperiod. Använd Update Manager för att:

  • Övervaka efterlevnaden för hela din maskinpark.
  • Schemalägga återkommande uppdateringar
  • Distribuera kritiska uppdateringar

Azure-distributionsmiljöer: Distributionsmiljöer gör det möjligt för utvecklingsteam att snabbt skapa konsekvent appinfrastruktur med hjälp av projektbaserade mallar. Dessa mallar minimerar installationstiden och maximerar säkerhet, efterlevnad och kostnadseffektivitet. En distributionsmiljö är en samling Azure-resurser som distribueras i fördefinierade prenumerationer. Administratörer av utvecklingsinfrastruktur kan tillämpa företagssäkerhetsprinciper och tillhandahålla en kuraterad uppsättning fördefinierade IaC-mallar.

Administratörer för utvecklingsinfrastruktur definierar distributionsmiljöer som katalogobjekt. Katalogobjekt finns på en GitHub- eller Azure DevOps-lagringsplats som kallas katalog. Ett katalogobjekt består av en IaC-mall och en manifest.yaml-fil.

Du kan skripta skapandet av distributionsmiljöer och programmatiskt hantera miljöerna.

Azure Logic Apps och Microsoft Power Automate: När du skapar anpassad digital processautomation (DPA) för att hantera arbetsbelastningsuppgifter som godkännandeflöden eller skapa ChatOps-integreringar bör du överväga att använda Logic Apps eller Power Automate. Du kan skapa arbetsflöden från inbyggda anslutningsappar och mallar. Logic Apps och Power Automate bygger på samma underliggande teknik och passar båda bra för utlösarbaserade eller tidsbaserade uppgifter.

Automatisk skalning: Många Azure-tekniker har inbyggda funktioner för automatisk skalning. Du kan också programmera andra tjänster att automatiskt skala med hjälp av API:er. Mer information finns i Rekommendationer för att utforma en tillförlitlig skalningsstrategi.

Azure Monitor-åtgärdsgrupper: Om du vill köra självåterställningsåtgärder automatiskt när en avisering utlöses använder du Azure Monitor-åtgärdsgrupper. Du kan definiera dessa åtgärder med hjälp av en runbook, en Azure-funktion eller en webhook.

Exempel

Ett exempel på hur du använder Automation tillsammans med andra Azure-tjänster finns i Ops-automatisering med hjälp av Azure Event Grid. I det här exemplet används Logic Apps och Event Grid för att automatisera operativa uppgifter.

Checklista för driftskvalitet

Se den fullständiga uppsättningen rekommendationer.