Vanliga mönster för autoskalning
I den här lektionen tittar vi på mönster för automatisk skalning.
Automatisk skalning är inte en omedelbar lösning. Att bara lägga till resurser i ett system eller köra fler instanser av en process garanterar inte bättre prestanda för systemet. Tänk på följande när du utformar en strategi för automatisk skalning:
Rekommendationer
Identifiera flaskhalsar: Utskalning är inte en magisk korrigering för varje prestandaproblem. Om din serverdelsdatabas till exempel är flaskhalsen hjälper det inte att lägga till fler webbservrar. Identifiera och lösa flaskhalsarna i systemet innan du genererar fler instanser på problemet. Tillståndskänsliga delar i systemet är den mest troliga orsaken till flaskhalsar.
Dela upp arbetsbelastningar efter skalbarhetskrav: Program består ofta av flera arbetsbelastningar med olika krav för skalning. Ett program kan till exempel ha en offentlig webbplats och en separat administrationswebbplats. Den offentliga webbplatsen kan uppleva plötsliga trafiktoppar, medan administrationsplatsen har en mindre och mer förutsägbar belastning.
Avlasta resursintensiva uppgifter: Uppgifter som kräver många CPU- eller I/O-resurser bör flyttas till bakgrundsjobb när det är möjligt. Avlastning av uppgifter minimerar belastningen på klientdelen som hanterar användarbegäranden.
Använd inbyggda funktioner för automatisk skalning: Om programmet har en förutsägbar, regelbunden arbetsbelastning skalar du ut enligt ett schema. Du kan exempelvis skala ut under kontorstid. Annars, om arbetsbelastningen inte är förutsägbar, använder du prestandamått som cpu- eller begärandekölängd för att utlösa autoskalning.
Överväg aggressiv autoskalning för viktiga arbetsbelastningar: För viktiga arbetsbelastningar vill du ligga steget före efterfrågan. Det är bättre att lägga till nya instanser snabbt under tung belastning för att hantera den andra trafiken och sedan gradvis skala tillbaka.
Design för minskning: Kom ihåg att med elastisk skalning har ett program perioder av nedskalning, när instanser tas bort. Programmet måste hantera borttagning av instanser på ett smidigt sätt. Här är några sätt att hantera inskalning:
- Lyssna efter avstängningshändelser när de är tillgängliga och stäng av rent.
- Stöd för tillfällig felhantering och återförsök.
- Överväg att dela upp arbetet för långvariga uppgifter.
- Placera arbetsobjekt i en kö så att en annan instans kan hämta arbetet om en instans tas bort mitt under bearbetningen.
Meddelanden
- Alla autoskalningsfel loggas i aktivitetsloggen. Du kan sedan konfigurera en aktivitetsloggavisering som meddelar dig via e-post, Sms (Short Message Service) eller webhooks när det uppstår ett autoskalningsfel.
- På samma sätt publiceras alla lyckade skalningsåtgärder i aktivitetsloggen. Du kan sedan konfigurera en aktivitetsloggavisering så att du kan meddelas via e-post, SMS eller webhooks när det finns en lyckad autoskalningsåtgärd. Du kan också konfigurera e-post- eller webhook-meddelanden så att de meddelas om lyckade skalningsåtgärder via fliken Meddelanden i autoskalningsinställningen.
Vanliga mönster för att skala resursen i Azure
Skala baserat på efterfrågan
Du kan automatiskt skala ut antalet tjänstinstanser i början av arbetsdagen när kundernas efterfrågan ökar. I slutet av arbetsdagen skalar du automatiskt in antalet programinstanser för att minimera resurskostnaderna över natten när programanvändningen är låg.
Skala annorlunda på vardagar jämfört med helger
På en kväll eller helg kan du ha lägre efterfrågan på program. Om den här belastningen är konsekvent under en viss tidsperiod kan du konfigurera regler för autoskalning för att minska antalet tjänstinstanser i skalningsuppsättningen. Om du vidtar den här inskalningsåtgärden minskar kostnaden för att köra skalningsuppsättningen eftersom du bara kör det antal instanser som krävs för att möta den aktuella efterfrågan.
Skala på olika sätt under helgdagar
Om du har hög användning för en tjänst i vissa delar av månaden eller räkenskapscykeln kan du automatiskt skala antalet tjänstinstanser för att tillgodose deras extra krav. När det finns ett marknadsföringsevenemang, en kampanj eller en semesterförsäljning kan du automatiskt skala antalet tjänstinstanser före förväntad kundefterfrågan.
Skala baserat på anpassat mått
Slutligen är det bäst att definiera reglerna för automatisk skalning noggrant. Till exempel kommer en DoS-attack (Denial of Service) sannolikt att leda till en storskalig tillströmning av inkommande trafik. Det vore både lönlöst och dyrt att försöka hantera en ökning av begäranden som kommer från en DoS-attack. Begärandena är inte äkta och bör tas bort snarare än att bearbetas. En bättre lösning är att implementera identifiering och filtrering av begäranden som uppstår under sådana angrepp innan de når tjänsten.
När du har konfigurerat reglerna för automatisk skalning övervakar du programmets prestanda över tid. Använd resultatet av den här övervakningen för att justera mönstret där systemet skalar om det behövs.