Översikt över autoskalning i Azure
I den här artikeln beskrivs funktionen för autoskalning i Azure Monitor och dess fördelar.
Autoskalning stöder många resurstyper. Mer information om resurser som stöds finns i Autoskalning av resurser som stöds.
Kommentar
Tillgänglighetsuppsättningar är en äldre skalningsfunktion för virtuella datorer med begränsat stöd. Vi rekommenderar att du migrerar till Skalningsuppsättningar för virtuella Azure-datorer för snabbare och mer tillförlitligt autoskalningsstöd.
Vad är autoskalning
Autoskalning är en tjänst som du kan använda för att automatiskt lägga till och ta bort resurser enligt belastningen på ditt program.
När programmet har högre belastning lägger autoskalning till resurser för att hantera den ökade belastningen. När belastningen är låg minskar autoskalningen antalet resurser, vilket sänker dina kostnader. Du kan skala ditt program baserat på mått som CPU-användning, kölängd och tillgängligt minne. Du kan också skala baserat på ett schema. Mått och scheman konfigureras i regler. Reglerna innehåller en miniminivå av resurser som du behöver för att köra programmet och en maximal resursnivå som inte överskrids.
Skala till exempel ut ditt program genom att lägga till virtuella datorer när den genomsnittliga CPU-användningen per virtuell dator är över 70 %. Skala tillbaka genom att ta bort virtuella datorer när CPU-användningen sjunker till 40 %.
När villkoren i reglerna uppfylls utlöses en eller flera autoskalningsåtgärder, vilket lägger till eller tar bort virtuella datorer. Du kan också utföra andra åtgärder som att skicka e-post, meddelanden eller webhooks för att utlösa processer i andra system.
Vågrät kontra lodrät skalning
Autoskalning skalar in och ut, eller vågrätt. Horisontell skalning är en ökning eller minskning av antalet resursinstanser. För en VM-skalningsuppsättning innebär utskalning till exempel att fler virtuella datorer läggs till. Att skala in innebär att ta bort virtuella datorer. Horisontell skalning är flexibel i en molnsituation eftersom du kan använda den för att köra ett stort antal virtuella datorer för att hantera belastningen.
Autoskalning stöder inte vertikal skalning. Skalning upp och ned, eller vertikal skalning, håller däremot samma antal resursinstanser konstanta men ger dem mer kapacitet när det gäller minne, CPU-hastighet, diskutrymme och nätverk. Vertikal skalning begränsas av tillgängligheten för större maskinvara, som så småningom når en övre gräns. Tillgängligheten för maskinvarustorlek varierar i Azure efter region. Vertikal skalning kan också kräva en omstart av den virtuella datorn under skalningsprocessen.
När villkoren i reglerna uppfylls utlöses en eller flera autoskalningsåtgärder, vilket lägger till eller tar bort virtuella datorer. Du kan också utföra andra åtgärder som att skicka e-post, meddelanden eller webhooks för att utlösa processer i andra system.
Förutsägande autoskalning
Förutsägelsebaserad autoskalning använder maskininlärning för att hantera och skala vm-skalningsuppsättningar med cykliska arbetsbelastningsmönster. Den beräknar den totala CPU-belastningen på vm-skalningsuppsättningen baserat på historiska cpu-användningsmönster. Skalningsuppsättningen kan sedan skalas ut i tid för att möta den förväntade efterfrågan.
Autoskalningskonfiguration
Du kan konfigurera autoskalning via:
- Azure-portalen
- PowerShell
- Plattformsoberoende kommandoradsgränssnitt (CLI)
- REST-API:et för Azure Monitor
Resursmått
Resurser genererar mått som används i autoskalningsregler för att utlösa skalningshändelser. Vm-skalningsuppsättningar använder telemetridata från Azure-diagnostikagenter för att generera mått. Telemetri för funktionen Web Apps i Azure App Service och Azure Cloud Services kommer direkt från Azure-infrastrukturen. Några vanliga mått är CPU-användning, minnesanvändning, antal trådar, kölängd och diskanvändning. En lista över tillgängliga mått finns i Autoskala vanliga mått.
Anpassade mått
Använd dina egna anpassade mått som ditt program genererar. Konfigurera ditt program för att skicka mått till Application Insights så att du kan använda dessa mått för att bestämma när du ska skala.
Tid
Konfigurera schemabaserade regler för att utlösa skalningshändelser. Använd schemabaserade regler när du ser tidsmönster i belastningen och vill skala innan en förväntad belastningsändring inträffar.
Regler
Regler definierar de villkor som krävs för att utlösa en skalningshändelse, skalningens riktning och mängden som ska skalas efter. Kombinera flera regler med hjälp av olika mått som CPU-användning och kölängd. Definiera upp till 10 regler per profil.
Regler kan vara:
- Måttbaserad: Utlösare baserat på ett måttvärde, till exempel när CPU-användningen är över 50 %.
- Tidsbaserad: Utlösare baserat på ett schema, till exempel varje lördag kl. 08.00.
Autoskalning skalas ut om någon av reglerna uppfylls. Autoskalning skalas bara in om alla regler är uppfyllda. När det gäller logikoperatorer används OR-operatorn för att skala ut med flera regler. OPERATORN AND används för att skala in med flera regler.
Åtgärder och automatisering
Regler kan utlösa en eller flera åtgärder. Åtgärderna omfattar:
- Skala: Skala in eller ut resurser.
- E-post: Skicka ett e-postmeddelande till prenumerationsadministratörer, medadministratörer och/eller någon annan e-postadress.
- Webhooks: Anropa webhooks för att utlösa flera komplexa åtgärder i eller utanför Azure. I Azure kan du:
- Starta en Azure Automation-runbook.
- Anropa en Azure-funktion.
- Utlösa en Azure-logikapp.
Autoskalningsinställningar
Autoskalningsinställningar innehåller skalningsvillkor som definierar regler, gränser och scheman och meddelanden. Definiera ett eller flera skalningsvillkor i inställningarna och en meddelandekonfiguration.
Autoskalning använder följande terminologi och struktur.
UI | JSON/CLI | beskrivning |
---|---|---|
Skalningsvillkor | Profiler | En samling regler, instansgränser och scheman baserat på ett mått eller en tid. Du kan definiera ett eller flera skalningsvillkor eller profiler. Definiera upp till 20 profiler per autoskalningsinställning. |
Regler | regler | En uppsättning villkor baserat på tid eller mått som utlöser en skalningsåtgärd. Du kan definiera en eller flera regler för både in- och utskalningsåtgärder. Definiera upp till totalt 10 regler per profil. |
Instansgränser | capacity | Varje skalningsvillkor eller profil definierar standard, högsta och minsta antal instanser som kan köras under den profilen. |
Schema | recurrence | Anger när autoskalning sätter det här skalningsvillkoret eller profilen i kraft. Du kan ha flera skalningsvillkor som gör att du kan hantera olika och överlappande krav. Du kan till exempel ha olika skalningsvillkor för olika tider på dagen eller dagar i veckan. |
Notify | avisering | Definierar de meddelanden som ska skickas när en autoskalningshändelse inträffar. Autoskalning kan meddela en eller flera e-postadresser eller ringa ett anrop med hjälp av en eller flera webhooks. Du kan konfigurera flera webhooks i JSON men bara en i användargränssnittet. |
Den fullständiga listan över konfigurerbara fält och beskrivningar finns i REST-API:et för autoskalning.
Kodexempel finns i:
- Självstudie: Skala automatiskt en VM-skalningsuppsättning med Azure CLI
- Självstudie: Skala automatiskt en VM-skalningsuppsättning med en Azure-mall
Tjänster som stöds för autoskalning
Autoskalning stöder följande tjänster.
Tjänst | Schema och dokumentation |
---|---|
Skalningsuppsättningar för virtuella Azure-datorer | Översikt över autoskalning med VM-skalningsuppsättningar i Azure |
Funktionen Web Apps i Azure App Service | Skala webbappar |
Azure API Management-tjänsten | Skala en Azure API Management-instans automatiskt |
Azure Data Explorer-kluster | Hantera skalning av Azure Data Explorer-kluster för att hantera föränderlig efterfrågan |
Azure Stream Analytics | Enheter för automatisk skalning av strömning (förhandsversion) |
Azure SignalR Service (Premium-nivå) | Skala enheter automatiskt för en Azure SignalR-tjänst |
Azure Machine Learning-arbetsyta | Autoskalning av en onlineslutpunkt |
Azure Spring Apps | Konfigurera autoskalning för program |
Azure Media Services | Autoskalning i Media Services |
Azure Service Bus | Uppdatera meddelandeenheter i ett Azure Service Bus-namnområde automatiskt |
Nästa steg
Mer information om autoskalning finns i följande resurser:
- Vanliga mått för autoskalning i Azure Monitor
- Använda autoskalningsåtgärder för att skicka e-post- och webhook-aviseringsaviseringar
- Självstudie: Skala automatiskt en VM-skalningsuppsättning med Azure CLI
- Självstudie: Skala automatiskt en VM-skalningsuppsättning med Azure PowerShell
- Cli-referens för autoskalning
- Resursdefinition för ARM-mall
- PowerShell Az.Monitor-referens
- REST API-referens: Autoskalningsinställningar