Identificeren van factoren voor automatisch schalen
Met autoscaling kunt u de voorwaarden opgeven waaronder een web-app moet worden uitgebreid en weer verkleind. Effectieve automatische schaalaanpassing zorgt ervoor dat er voldoende resources beschikbaar zijn voor het verwerken van grote hoeveelheden aanvragen op piekmomenten, terwijl de kosten worden beheerd wanneer de vraag afneemt.
U kunt automatisch schalen configureren om te detecteren wanneer u wilt in- en uitschalen op basis van een combinatie van factoren, op basis van resourcegebruik. U kunt automatische schaalaanpassing ook configureren volgens een schema.
In deze les leert u hoe u de factoren opgeeft die kunnen worden gebruikt om een service automatisch te schalen.
Automatisch schalen en het App Service-plan
Automatisch schalen is een functie van het App Service-plan dat wordt gebruikt door de web-app. Wanneer de web-app wordt opgeschaald, start Azure nieuwe exemplaren van de hardware volgens het App Service-plan voor de app.
Om onbeheersbare automatische schaalaanpassing te voorkomen, heeft een App Service Plan een limiet op het aantal exemplaren. Abonnementen in duurdere prijscategorieën hebben een hogere limiet. Met automatisch schalen kunnen niet meer exemplaren worden gemaakt dan deze limiet.
Notitie
Niet alle prijscategorieën van Het App Service-plan bieden ondersteuning voor automatisch schalen.
Voorwaarden voor automatisch schalen
U geeft aan hoe u automatisch schaalt door voorwaarden voor automatische schaalaanpassing te maken. Azure biedt twee opties voor automatisch schalen:
- Schalen op basis van een metrische waarde, zoals de lengte van de schijfwachtrij of het aantal HTTP-aanvragen dat wacht op verwerking.
- Schaal naar een specifiek aantal exemplaren volgens een schema. U kunt bijvoorbeeld schalen op een bepaald tijdstip van de dag of op een specifieke datum of dag van de week. U geeft ook een einddatum op en het systeem wordt op dit moment weer ingeschaald.
Door te schalen naar een specifiek aantal exemplaren kunt u alleen uitschalen naar een gedefinieerd aantal exemplaren. Als u incrementeel wilt uitschalen, kunt u automatisch schalen op basis van metrische gegevens en planning combineren in dezelfde voorwaarde voor automatische schaalaanpassing. U kunt er dus voor zorgen dat het systeem wordt uitgeschaald als het aantal HTTP-aanvragen een bepaalde drempelwaarde overschrijdt, maar alleen tussen bepaalde uren van de dag.
U kunt meerdere voorwaarden voor automatische schaalaanpassing maken om verschillende planningen en metrische gegevens af te handelen. Azure schaalt uw service automatisch wanneer een van deze voorwaarden van toepassing is. Een App Service-plan heeft ook een standaardvoorwaarde die wordt gebruikt als geen van de andere voorwaarden van toepassing is. Deze voorwaarde is altijd actief en heeft geen schema.
Metrische gegevens voor regels voor automatisch schalen
Voor automatisch schalen op basis van metrische gegevens moet u een of meer regels voor automatisch schalen definiëren. Een regel voor automatische schaalaanpassing geeft een metrische waarde op die moet worden bewaakt en hoe automatisch schalen moet reageren wanneer deze metrische waarde een gedefinieerde drempelwaarde overschrijdt. De metrische gegevens die u voor een web-app kunt bewaken, zijn:
- CPU-percentage. Deze metrische waarde is een indicatie van het CPU-gebruik voor alle exemplaren. Een hoge waarde geeft aan dat exemplaren CPU-afhankelijk worden, wat vertragingen kan veroorzaken bij het verwerken van clientaanvragen.
- geheugenpercentage. Met deze metrische waarde wordt de geheugenbezetting van de toepassing vastgelegd in alle exemplaren. Een hoge waarde geeft aan dat het vrije geheugen laag kan zijn en dat een of meer exemplaren kunnen mislukken.
- schijfwachtrijlengte. Deze metriek geeft het aantal openstaande I/O-aanvragen voor alle instanties weer. Een hoge waarde betekent dat er sprake kan zijn van schijfconflicten.
- http-wachtrijlengte. Deze metrische waarde laat zien hoeveel clientaanvragen wachten op verwerking door de web-app. Als dit aantal groot is, kunnen clientaanvragen mislukken met HTTP 408-fouten (time-out).
- Data In. Deze metrische waarde is het aantal bytes dat is ontvangen voor alle exemplaren.
- Data Out. Deze metrische waarde is het aantal bytes dat door alle exemplaren wordt verzonden.
U kunt ook schalen op basis van metrische gegevens voor andere Azure-services. Als de web-app bijvoorbeeld aanvragen verwerkt die zijn ontvangen van een Service Bus-wachtrij, kunt u meer exemplaren van een web-app instellen als het aantal items in een Azure Service Bus-wachtrij een kritieke lengte overschrijdt.
Hoe een regel voor automatisch schalen metrische gegevens analyseert
Automatisch schalen werkt door trends in metrische waarden gedurende een bepaalde periode in alle exemplaren te analyseren. Analyse is een proces met meerdere stappen.
In de eerste stap worden met een regel voor automatische schaalaanpassing de waarden geaggregeerd die zijn opgehaald voor een metriek voor alle exemplaren gedurende een bepaalde periode, ook wel de time graingenoemd. Elke metriek heeft een eigen intrinsiek tijdsinterval, maar in de meeste gevallen is deze periode 1 minuut. De geaggregeerde waarde wordt de tijdaggregatiegenoemd. De beschikbare opties zijn Gemiddelde, Minimum, Maximum, Som, Laatsteen Aantal.
Een interval van één minuut is een kort interval waarin wordt bepaald of een wijziging in metrische gegevens langdurig genoeg is om automatisch schalen de moeite waard te maken. Een regel voor automatische schaalaanpassing voert dus een tweede stap uit die een verdere aggregatie van de waarde uitvoert die wordt berekend door de tijdaggregatie gedurende een langere, door de gebruiker opgegeven periode, ook wel de Duurgenoemd. De minimale duur is 5 minuten. Als de Duur bijvoorbeeld is ingesteld op 10 minuten, aggregeert de autoschaalregel de 10 waarden die voor het tijdsgraanzijn berekend.
De aggregatieberekening voor de Duur kan verschillen van de tijdsgraan. Als de tijdaggregatie bijvoorbeeld Gemiddelde is en de verzamelde statistiek, CPU-percentage over een tijdsgraad van één minuut tijdsgraad, wordt elke minuut het gemiddelde CPU-percentagegebruik voor alle exemplaren in die minuut berekend. Als de tijdsintervalstatistiek is ingesteld op Maximumen de Duur van de regel is ingesteld op 10 minuten, is het maximum van de 10 gemiddelde waarden voor het CPU-percentagegebruik om te bepalen of de drempelwaarde voor de regel is overschreden.
Acties voor automatisch schalen
Wanneer een regel voor automatische schaalaanpassing detecteert dat een metrische waarde een drempelwaarde heeft overschreden, kan er een actie voor automatische schaalaanpassing worden uitgevoerd. Een actie voor automatisch schalen kan uitschalen of inschalenzijn. Een uitschaalactie verhoogt het aantal exemplaren en een inschaalactie vermindert het aantal exemplaren. Een actie voor automatisch schalen maakt gebruik van een operator (zoals kleiner dan, groter dan, gelijk aanenzovoort) om te bepalen hoe moet worden gereageerd op de drempelwaarde. Uitschaalacties gebruiken doorgaans de groter dan operator om de metrische waarde te vergelijken met de drempelwaarde. Met inschaalacties wordt de metrische waarde meestal vergeleken met de drempelwaarde, gebruikmakend van de operator kleiner dan. Met een actie voor automatisch schalen kunt u ook het aantal exemplaren instellen op een bepaald niveau, in plaats van het beschikbare aantal te verhogen of te verlagen.
Een actie voor automatisch schalen heeft een afkoeling periode, opgegeven in minuten. Tijdens dit interval wordt de schaalregel niet opnieuw geactiveerd. Dit is om het systeem te laten stabiliseren tussen gebeurtenissen met automatische schaalaanpassing. Houd er rekening mee dat het enige tijd kost om instanties te starten of af te sluiten, en dat de verzamelde meetgegevens gedurende enkele minuten geen significante veranderingen kunnen vertonen. De minimale afkoelperiode is vijf minuten.
Het koppelen van de regels voor autoscales
U moet plannen voor inschalen wanneer een workload afneemt. Overweeg regels voor automatisch schalen in paren te definiëren in dezelfde conditionele context. Een regel voor automatische schaalaanpassing moet aangeven hoe het systeem wordt geschaald wanneer een metriek een bovengrens overschrijdt. Vervolgens moet met andere regels worden gedefinieerd hoe het systeem weer moet worden ingeschaald wanneer dezelfde metrische gegevens onder een lagere drempelwaarde vallen.
Regels voor automatisch schalen combineren
Eén voorwaarde voor automatisch schalen kan verschillende regels voor automatisch schalen bevatten (bijvoorbeeld een uitschaalregel en de bijbehorende regel voor inschalen). De regels voor automatisch schalen in een voorwaarde voor automatisch schalen hoeven echter niet rechtstreeks gerelateerd te zijn. U kunt de volgende vier regels definiëren in dezelfde autoschaalvoorwaarde:
- Als de lengte van de HTTP-wachtrij groter is dan 10, schaalt u uit met 1
- Als het CPU-gebruik groter is dan 70%, schaalt u uit met 1
- Als de lengte van de HTTP-wachtrij nul is, schaalt u in met 1
- Als het CPU-gebruik lager is dan 50%, schaalt u in met 1
Bij het bepalen of moet worden uitgeschaald, wordt de actie voor automatisch schalen uitgevoerd als een van de uitschaalregels zijn voldaan (de lengte van de HTTP-wachtrij overschrijdt 10 of het CPU-gebruik overschrijdt 70%). Wanneer u inschaalt, wordt de actie voor automatische schaalaanpassing alleen uitgevoerd als aan alle van de regels voor inschalen wordt voldaan (http-wachtrijlengte daalt naar nul en CPU-gebruik lager is dan 50%). Als u wilt inschalen als aan slechts één van de regels voor inschalen wordt voldaan, moet u de regels definiëren in afzonderlijke voorwaarden voor automatisch schalen.