Dela via


Hälsomodellering för arbetsbelastningar

Molnprogram genererar stora mängder driftdata, vilket gör det svårt att hitta och lösa problem snabbt. En vanlig orsak till den här utmaningen är avsaknaden av en hälsobaslinje som är anpassad till arbetsbelastningens funktioner och oförmågan att identifiera avdrift från baslinjen.

Hälsomodellering är en observerbarhetsövning som kombinerar affärskontext med rådata för att kvantifiera den övergripande hälsan för en arbetsbelastning. Det hjälper dig att ange en baslinje som du kan övervaka arbetsbelastningen mot. Du bör överväga data som telemetri från infrastruktur- och programkomponenter. Hälsomodellering kan också innehålla annan information som är nödvändig för att uppnå arbetsbelastningens kvalitetsmål.

Prestandaproblem eller driftsförsämring kan orsaka driftavdrift från det förväntade drifttillståndet. Genom att modellera hälsotillståndet för en arbetsbelastning kan du identifiera drift och fatta välgrundade operativa beslut som tar hänsyn till affärspåverkan.

Hälsomodellering överbryggar klyftan mellan kunskap om stamdrift och användbara insikter. Det hjälper dig att hantera kritiska problem effektivt. Konceptet är viktigt för att maximera tillförlitligheten och driftseffektiviteten.

Den här guiden ger praktisk vägledning om hälsomodellering, inklusive hur du skapar en modell som utvärderar körningshälsan för en arbetsbelastning och alla dess undersystem.

Terminologi Definition
Hälsomodellering En observerbarhetsövning som använder affärskontext för att tolka övervakningsdata som hälsotillstånd.
Hälsomodell En grafisk representation av logiska entiteter och deras relationer för ett visst omfång. Varje nod har en hälsotillståndsdefinition för att rationalisera övervakningsdata i modellen.
Hälsoentitet En logisk komponent som representerar en enskild enhet i ett system, en logisk kombination av flera relaterade entiteter eller det övergripande systemet.
Hälsotillstånd En definierad och mätbar status som ger meningsfulla operativa insikter om hälsotillståndet för en entitet.
Hälsosignal Enskilda dataströmmar som ger insikter om driftbeteendet för en entitet.
Modell av modeller Ett aggregerat modelleringsomfång där entiteter representerar distinkta hälsomodeller för komponentsystem.

Vi rekommenderar att du tittar på den här videon för att få en övergripande förståelse för hälsomodellering.

Vad är hälsa, hälsomodellering och en hälsomodell?

Termen hälsa refererar till driftstatusen för en entitet och dess beroenden. Den entiteten kan vara en enskild enhet i ett system, en logisk kombination av flera relaterade entiteter eller det övergripande systemet.

Vi rekommenderar att du representerar hälsotillståndet i något av tre tillstånd:

  • Felfri: Fungerar optimalt och uppfyller kvalitetsförväntningarna

  • Degraderad: Uppvisar mindre än ett felfritt beteende, vilket indikerar potentiella problem

  • Inte felfri: I ett kritiskt tillstånd och kräver omedelbar uppmärksamhet

Kommentar

Du kan representera hälsa med en poäng i stället för tillstånd för att ge mer datakornighet.

Hälsotillstånd härleds genom att övervakningsdata kombineras med domäninformation. Varje tillstånd måste definieras och måste vara mätbart. Hälsotillstånd beräknas med hjälp av hälsosignaler, som är enskilda dataströmmar som ger insikter om en entitets driftsbeteende. Signaler kan vara mått, loggar, spårningar eller andra kvalitetsegenskaper. Till exempel kan en hälsosignal för en virtuell dator (VM) spåra måttet cpu-användning. Andra signaler för den här entiteten kan vara minnesanvändning, nätverksfördröjning eller felfrekvenser.

När du definierar hälsosignaler tar du hänsyn till de icke-funktionella kraven för arbetsbelastningen. I exemplet med CPU-användning inkluderar du de förväntade tröskelvärdena för varje hälsotillstånd. Om användningen överskrider det tolererade tröskelvärdet i enlighet med arbetsbelastningskraven övergår systemet från Felfri till Degraderad eller Inte felfri. Dessa tillståndsändringar utlöser lämpliga aviseringar eller åtgärder.

Hälsomodellering kräver att entiteter har väldefinierade tillstånd som härleds från flera hälsosignaler och kontextualiseras för arbetsbelastningen. Hälsodefinitionen för en virtuell dator kan till exempel vara:

  • Felfri: Viktiga icke-funktionella krav och mål, till exempel svarstid, resursanvändning och övergripande systemprestanda, är helt uppfyllda. Till exempel bearbetas 95 % av begäranden inom 500 millisekunder. Arbetsbelastningen använder virtuella datorresurser som CPU, minne och lagring optimalt och upprätthåller en balans mellan arbetsbelastningskrav och tillgänglig kapacitet. Användarupplevelsen är på förväntade nivåer.

  • Degraderad: Resurserna fungerar inte optimalt men fungerar fortfarande. Lagringsdisken har till exempel problem med begränsningen. Användarna kan få långsamma svar.

  • Ej felfri: Nedbrytningen ligger utanför de tolererade gränserna. Resurserna är inte längre dynamiska eller tillgängliga och systemet uppfyller inte längre godtagbara prestandanivåer. Användarupplevelsen påverkas allvarligt.

Resultatet av hälsomodellering är en modell eller en grafisk representation av logiska entiteter och deras relationer för en arbetsbelastningsarkitektur. Varje nod har en hälsotillståndsdefinition.

Viktigt!

Hälsomodellering är ett abstrakt begrepp som du kan implementera och tillämpa i olika omfång om du har en god förståelse för affärsscenarierna.

Ett diagram som visar hälsomodelldefinitionen.

I bilden:

  • Entiteter är logiska komponenter i arbetsbelastningen som representerar aspekter av systemet. De kan vara infrastrukturkomponenter som servrar, databaser och nätverk. De kan också vara specifika programmoduler, poddar, tjänster eller mikrotjänster. Entiteter kan också samla in användarinteraktioner och systemflöden i arbetsbelastningen.

    Kommentar

    Användar- och systemflöden sammanfattar icke-funktionella krav i affärsscenarier som omfattar program- och infrastrukturkomponenter. Den här sammanfattningen visar affärsvärdet för programmet.

  • Relationer mellan entiteter speglar beroendekedjorna i systemet. En programmodul kan till exempel anropa specifika infrastrukturkomponenter som utgör en relation.

Tänk dig ett scenario där en e-handelsarbetsbelastning upplever en topp i misslyckade meddelanden i en Azure Service Bus-kö, vilket gör att betalningar misslyckas. Det här problemet är viktigt för organisationen på grund av den underförstådda intäktsförlusten. Även om en programutvecklare kanske förstår effekten av den här måtttopparna på betalningar delas inte den här stamkunskapen ofta i driftteamet.

En hälsomodell kan ge operatörerna omedelbar insyn i problemet och dess effekter. Betalningsflödet beror på Service Bus, som är en av arbetsbelastningskomponenterna. Den visuella representationen visar det försämrade tillståndet för Service Bus-instansen och dess effekt på betalningsflödet. Operatörer kan förstå problemets betydelse och fokusera sina reparationsåtgärder på den specifika komponenten.

Hälsomodellering var viktigt i föregående scenario på följande sätt:

  • Det förbättrade tiden att identifiera (TTD) och tid att minimera (TTM) genom att aktivera snabbare problemisolering, vilket ledde till snabbare identifiering av problem och potentiella korrigeringar.

  • Operatörerna fick aviseringar baserat på hälsotillstånd, vilket minskade onödigt brus. Operatörerna fick meddelanden som gav ett specifikt sammanhang om företagets inverkan på betalningarna.

  • Beroendekedjor hjälpte operatörerna att fullt ut förstå omfattningen av operativa problem. Den här kunskapen påskyndade konsekvensbedömningar och ledde till prioriterade svar. Operatörerna kan också enkelt identifiera sammanhängande eller korrelerade problem.

  • Operatörerna utförde aktiviteter efter incident med noggrannhet eftersom hälsomodellen gav insikter om de bakomliggande orsakerna till avvikelser och de specifika hälsosignaler som var inblandade.

  • Det gjorde övervakningsdata meningsfulla för alla teammedlemmar. Det överbryggade klyftan mellan stamkunskap och delade insikter.

  • Organisationen använde hälsomodellen som baslinje för framtida investeringar i AI-drivna åtgärder för att härleda intelligenta insikter.

Schema för hälsomodell

Hälsomodeller ger ett distinkt dataschema som är optimerat för användningsfall med observerbarhet. Det här schemat tar hälsomodellering från ett abstrakt begrepp till en mätbar lösning. Genom att modellera dina specifika krav, mål och arkitekturkontext kan du anpassa hälsodata till ditt unika scenario.

Ett diagram som visar hälsotillståndsdefinition.

Hälsa är ett relativt datakoncept. Varje modell representerar hälsodata som är unika och prioriterade för dess kontextuella omfång, även om de använder samma uppsättning entiteter. Vad som utgör felfritt i ett specifikt scenario kan skilja sig avsevärt i andra sammanhang.

Du kan till exempel överväga Azure-resurser av samma typ i din arbetsbelastning.

  • Virtuell dator A kör ett CPU-känsligt program.
  • Den virtuella datorn B hanterar en minnesintensiv tjänst.

Hälsodefinitionerna för dessa datorer är olika. Cpu-användningsmått påverkar sannolikt den virtuella datorn A:s hälsostatus och vm B kan prioritera minnesrelaterade mått.

Viktigt!

En hälsomodell ska inte behandla alla fel på samma sätt. Den bör tydligt skilja mellan förväntade eller tillfälliga men återställningsbara fel och ett verkligt katastroftillstånd.

Skapa en hälsomodell

Det första steget för att skapa en hälsomodell är en logisk designövning, som vanligtvis omfattar de aktiviteter som beskrivs i följande avsnitt.

Ett diagram som visar aktiviteter för hälsomodellering.

Utvärdera din arbetsbelastningsdesign

Påbörja den här logiska designövningen genom att utvärdera följande komponenter i din arbetsbelastningsdesign.

  • Infrastrukturkomponenter som beräkningskluster och databaser

  • Programkomponenter som körs på beräkning och deras relevanta komponenter

  • Logiska eller fysiska beroenden mellan komponenter

  • Användar- och systemflöden

Hälsomodellen för ett e-handelsprogram bör till exempel representera det aktuella tillståndet för kritiska processer som användarinloggning, utcheckning och betalningar.

Kontextualisera med affärskrav

Utvärdera den relativa betydelsen och den övergripande effekten av varje flöde på din organisation. Tänk på faktorer som användarupplevelse, säkerhet och driftseffektivitet. I de flesta fall är till exempel misslyckandet med en betalningsprocess sannolikt mer betydande än misslyckandet med en rapporteringsprocess.

Identifiera eskaleringsvägar för hantering av problem som rör varje flöde. Mer information finns i Optimera arbetsbelastningsdesign med hjälp av flöden.

Kommentar

Du inser bara värdet av hälsomodellering när du införlivar dina affärsscenarier och kontext. Sedan kan du rationalisera affärspåverkan från driftsproblem.

Mappa till tillförlitlighetsmått

Leta efter relevanta tillförlitlighetsmått i programdesignen.

Överväg att definiera servicenivåindikatorer (SLO: er) och servicenivåmål (SLO) för hela programmet och dess enskilda affärsprocesser. Dessa SLO:er och SLO:er bör överensstämma med de specifika hälsosignaler som beaktas för din hälsomodell. Genom att göra det skapar du en omfattande definition av hälsa som korrekt återspeglar uppnåendet av en acceptabel tjänstnivå för programmet.

Viktigt!

SLO:er och SLO:er är kritiska hälsosignaler. De skapar en meningsfull definition av hälsa som återspeglar den tjänstnivå som du vill ha tillsammans med andra kvalitetsattribut. Du kan också definiera tjänsthälsomål (SHOs) för att samla in den hälsa som du vill uppnå över ett aggregerat tidsintervall.

Identifiera hälsosignaler

Om du vill skapa en omfattande hälsomodell korrelerar du olika typer av övervakningsdata, inklusive mått, loggar och spårningar. Genom att göra det ser du till att hälsobegreppet korrekt återspeglar körningstillståndet för en viss entitet eller hela arbetsbelastningen.

Använda plattformsmått och loggar

När det gäller hälsomodellering är det viktigt att samla in mått och loggar på plattformsnivå från underliggande Azure-resurser. Dessa mått omfattar cpu-procent, nätverk in och nätverk ut och diskåtgärder per sekund. Du kan använda dessa data i din hälsomodell för att identifiera och förutsäga potentiella problem samtidigt som du upprätthåller en tillförlitlig miljö.

Dessutom hjälper den här metoden dig att skilja mellan tillfälliga fel, tillfälliga störningar och icke-övergående fel eller beständiga problem.

Kommentar

Vi rekommenderar att du konfigurerar alla programresurser för att dirigera diagnostikloggar och mått till den valda loggaggregeringstekniken. Skapa skyddsräcken med hjälp av Azure Policy för att säkerställa konsekventa diagnostikinställningar i hela programmet och framtvinga den valda konfigurationen för varje Azure-tjänst.

Lägga till programloggar

Programloggar är en viktig källa till diagnostikdata för din hälsomodell. Här följer några metodtips för programloggning:

  • Använd semantisk eller strukturerad loggning. Strukturerade loggar underlättar automatisk förbrukning och analys av loggdata i stor skala.

    Överväg att lagra Azure-resursmått och diagnostikdata på en Azure Monitor Logs-arbetsyta i stället för ett lagringskonto. Med den här metoden kan du skapa hälsosignaler med hjälp av Kusto-frågor för effektiv utvärdering.

  • Logga data i produktionsmiljön. Samla in omfattande data medan programmet körs i produktionsmiljön. Tillräcklig information är nödvändig för hälsobedömning och för att diagnostisera eventuella identifierade produktionsproblem.

  • Logga händelser vid tjänstgränser. Inkludera ett korrelations-ID som passerar tjänstgränser. Om en transaktion omfattar flera tjänster och en av dem misslyckas hjälper korrelations-ID:t dig att spåra begäranden i hela programmet och fastställa orsaken till felet.

  • Använd asynkron loggning. Undvik synkrona loggningsåtgärder som kan blockera programkod. Asynkron loggning säkerställer tillgänglighet genom att förhindra kvarvarande begäranden under loggskrivningar.

  • Separera programloggning från granskning. Underhålla granskningsloggar separat från diagnostikloggar. Även om granskningsposter uppfyller efterlevnads- eller regelkrav förhindrar att de hålls distinkta att transaktioner tas bort.

Implementera distribuerad spårning

Implementera distribuerad spårning genom att korrelera telemetri mellan kritiska systemflöden. Korrelerad telemetri ger insikter om transaktioner från slutpunkt till slutpunkt och är viktigt för effektiv rotorsaksanalys (RCA) när fel inträffar.

Använda hälsoavsökningar

Implementera och köra hälsoavsökningar utanför programmet för att uttryckligen kontrollera programmets hälsa och svarstider. Använd avsökningssvar som signaler i din hälsomodell.

Du kan implementera hälsoavsökningar genom att mäta svarstiden från programmet som helhet eller från dess enskilda komponenter. Avsökningar kan köra processer för att mäta svarstid och kontrollera tillgänglighet eller extrahera information från programmet. Mer information finns i Hälsoslutpunktsövervakningsmönster.

De flesta lastbalanserare stöder körning av hälsoavsökningar som pingar programslutpunkter med konfigurerade intervall. Du kan också använda en extern övervakningstjänst. En övervakningstjänst aggregerar hälsokontroller från flera komponenter i arbetsbelastningen. Vakthundar kan också vara värdar för kod som omedelbart åtgärdar kända hälsotillstånd.

Anta strukturella och funktionella övervakningstekniker

Strukturell övervakning omfattar att utrusta programmet med semantiska loggar och mått. Programmet samlar in dessa mått direkt, som omfattar aktuell minnesförbrukning, svarstid för begäranden och andra relevanta data på programnivå.

Stärka dina övervakningsprocesser med hjälp av funktionell övervakning. Den här metoden fokuserar på att mäta plattformstjänster och deras effekt på den övergripande användarupplevelsen. Till skillnad från strukturell övervakning kräver funktionell övervakning inte detaljerad kunskap om systemet. Den testar programmets externt synliga beteende. Den här metoden är användbar för att utvärdera SLO:er och SLO:er.

Modellera designen

Representerar den identifierade programdesignen som entiteter och relationer. Mappa hälsosignaler till specifika komponenter för att kvantifiera hälsotillstånd på en entitetsnivå. Överväg kritiska komponenter för att avgöra hur hälsotillstånd ska spridas via modellen. Rapporteringskomponenter kanske till exempel inte är lika kritiska som andra komponenter, vilket resulterar i olika effekter på den övergripande arbetsbelastningens hälsa.

Ange åtgärdsbara aviseringar

Använd de utvärderade hälsotillstånden för att utlösa aviseringar och automatiserade åtgärder. Hälsa bör integreras i befintliga operativa runbooks som en grundläggande grundsats för observerbarhetsdata.

Vanligtvis finns det en en-till-en-mappning mellan övervakningsdata och aviseringsregler, vilket kan leda till oönskade resultat, till exempel aviseringsstormar och omgivande aviseringsbrus. I ett beräkningskluster kan till exempel stora volymer av aviseringar på VM-nivå baserat på CPU-användning och felantal överbelasta operatorer under fel och orsaka fördröjningar i lösningen. På samma sätt, när det finns ett stort antal konfigurerade aviseringar, resulterar omgivande aviseringsbrus ofta i aviseringar som förbises eller ignoreras.

En hälsomodell introducerar separation mellan övervakningsdata och aviseringsregler. En hälsodefinition aggregerar många signaler i ett enda hälsotillstånd, vilket minskar antalet aviseringar så att operatörerna endast kan fokusera på aviseringar med högt värde som är kritiska för organisationen. Tänk på e-handelsscenariot. Du kan konfigurera en avisering för att skicka meddelanden om ändringar i processens betalningsflödeshälsa i stället för ändringar i underliggande resurser som Service Bus-kön.

Kommentar

Möjligheten att avisera över alla lager i hälsomodellen ger flexibilitet för de olika arbetsbelastningspersonerna. Programägare och produktansvariga kan varnas för hälsotillståndsändringar i viktiga affärsscenarier eller i hela arbetsbelastningen. Operatörer kan aviseras baserat på hälsotillståndet för infrastruktur- eller programkomponenter.

Visualisera modellen

Skapa visuella representationer, till exempel tabeller eller grafer, för att effektivt förmedla hälsomodellens aktuella tillstånd och historik. Se till att visualiseringen överensstämmer med affärskontexten och ger användbara insikter.

När du visualiserar din hälsomodell bör du överväga att använda en trafiklätt metod för att göra hälsotillstånd omedelbart insiktsfulla i beroendekedjor.

Tilldela grönt för felfri, bärnsten för degraderad och röd för felfritt. Genom att snabbt identifiera de färgkodade tillstånden kan du effektivt hitta rotorsaken till programförsämring.

Diagrammet visar en hälsomodell som använder en trafikljusmetod.

Kommentar

Vi rekommenderar att du överväger tillgänglighetskrav för personer som har nedsatt syn när du skapar en instrumentpanel för din hälsomodell. Metodtips för diagram finns i Designdiagram för arkitektur.

Anta din hälsomodell

När du har skapat en hälsomodell bör du överväga följande användningsfall för att skapa identifiering och tolkning av fel eller driftproblem.

Tillämplighet för olika roller

Hälsomodellering kan ge information som är specifik för jobbfunktioner eller roller inom samma kontext för arbetsbelastningen. En DevOps-roll kan till exempel behöva information om drifthälsa. En säkerhetsvakt kan vara mer oroad över intrångssignaler och säkerhetsexponering. En databasadministratör är förmodligen bara intresserad av en delmängd av programmodellen via databasresurserna.

Skräddarsy hälsoinsikter för olika intressenter. Överväg att skapa separata modeller från överlappande datauppsättningar.

Kontinuerlig validering

Använd din hälsomodell för att optimera testnings- och valideringsprocesser, till exempel belastningstestning och kaostestning. Du kan verifiera körningens drifttillstånd under testningen och utvärdera modellens effektivitet i skalnings- och felscenarier genom att införliva hälsomodeller i din tekniska livscykel.

Organisationshälsa

Även om hälsomodellering ofta är associerad med kvantifiering av hälsotillstånd för enskilda program, sträcker sig dess tillämplighet utanför det omfånget.

På en enskild arbetsbelastningsnivå utgör hälsomodeller en grund för programobservabilitet och driftinsikter. Varje program kan ha en egen hälsomodell som registrerar vad varje hälsotillstånd innebär i sitt sammanhang.

Du kan kombinera flera hälsomodeller till en konstruktion på hög nivå genom att skapa en modell av modeller. Du kan till exempel skapa ett observerbarhetsavtryck för en affärsenhet eller en hel molnegendom genom att använda hälsomodeller som komponenter i en större modell. Hälsomodeller representerar arbetsbelastningar inom egendomen som noder i diagrammet på den översta nivån. Använd relationerna i den här modellen för att samla in beroenden mellan program, inklusive dataflöden, tjänstinteraktioner och delad infrastruktur.

Överväg ett detaljhandelsföretag som har olika program för e-handel, betalningar och orderbearbetning. Du kan definiera vart och ett av dessa program som en oberoende hälsomodell för att kvantifiera vad hälsa innebär för den arbetsbelastningen. Du kan sedan använda en överordnad modell för att mappa alla dessa komponenthälsomodeller som entiteter och samla in driftspåverkan mellan program via beroendekedjor. Om t.ex. e-handelsprogrammet blir felfritt har det en sammanhängande effekt på betalningsprogrammet.

Hälsomodellering ger en kvantifierad operativ baslinje som är anpassad till en specifik affärskontext. AI för IT-åtgärder (AIOps) är ett populärt sätt att förbättra drifteffektiviteten. Hälsodata är en grundläggande indata för maskininlärningsmodeller för att analysera hälsotrender. Maskininlärningsmodeller kan till exempel:

  • Extrahera fler insikter från tillståndsändringar och rekommendera åtgärder.

  • Analysera hälsotrender över tid för att driva problemförutsägelse och modellförfining.

Underhålla din hälsomodell

Att underhålla en heath-modell är en kontinuerlig teknisk aktivitet som överensstämmer med programmets utveckling och drift. När programmet utvecklas ser du till att din hälsomodell utvecklas parallellt.

Behandla även hälsomodeller som arbetsbelastningsartefakter som ska integreras i utvecklingslivscykeln. Anta infrastruktur som kod (IaC) för konsekvent, versionskontrollerad hantering av din hälsomodell. Använd automatisering så att modellen håller sig uppdaterad när du lägger till eller tar bort infrastruktur- och programkomponenter från arbetsbelastningen.

Hälsodata minskar gradvis i värde över tid. För att optimera driftseffektiviteten och minimera kostnaderna bör du undvika att behålla hälsodata längre än 30 dagar. Om det behövs kan du arkivera data för att uppfylla granskningskrav eller i scenarier som omfattar långsiktig mönsteranalys i AI för IT-åtgärder.

Kommentar

När du arkiverar hälsodata måste du koppla dem till modellens konfigurationstillstånd. Det kan vara svårt att tolka tillståndsändringar utan den här kontexten.

Gå vidare