Wat is Autoscaling?

Een mechanisme dat het aantal servers of containers automatisch verhoogt of verlaagt op basis van kengetallen voor de belasting (CPU-gebruik, aantal aanvragen per seconde, lengte van een wachtrij enz.). Machines toevoegen heet uitschalen (scale-out), machines weghalen afschalen (scale-in). De HorizontalPodAutoscaler van Kubernetes berekent het benodigde aantal als ⌈huidig aantal × huidige waarde ÷ doelwaarde⌉. Nieuwe instanties hebben tijd nodig voordat ze werken; plotselinge stijgingen van de belasting worden daarom opgevangen met een doel dat ruimte overlaat, en een wachtperiode vóór het afschalen is gebruikelijk, zodat het aantal niet te vaak verandert.

Japanse benaming: オートスケーリング

“Autoscaling” komt voor in 2 oefenvragen uit 2 onderwerpen, bijv. Systeemarchitectuur en betrouwbaarheid, Basis van cloud en containers.

Vakgebied: Basis van cloud en containers

Nu oefenen: vragen over Autoscaling

Welk ontwerp is in het algemeen wenselijk voor een systeem dat met autoscaling automatisch servers toevoegt en verwijdert naar gelang de belasting?

  1. ABedrijfsgegevens die alleen die server heeft, op de lokale schijf van elke server opslaan
  2. BSessie-informatie van gebruikers niet in het geheugen van elke server opslaan, maar in een gedeelde gegevensopslag, zodat het resultaat hetzelfde is welke server een aanvraag ook verwerkt
  3. CBij het verminderen van het aantal servers een server meteen stoppen, ook als die nog aanvragen in behandeling heeft
Antwoord en toelichting tonen

Antwoord: B. Sessie-informatie van gebruikers niet in het geheugen van elke server opslaan, maar in een gedeelde gegevensopslag, zodat het resultaat hetzelfde is welke server een aanvraag ook verwerkt

Bij autoscaling is een ontwerp wenselijk waarin servers geen eigen toestand bijhouden (stateless), zodat het niet uitmaakt wanneer servers worden toegevoegd of verwijderd. Als sessie-informatie en bedrijfsgegevens in een gedeelde gegevensopslag staan, kan elke server een aanvraag op dezelfde manier verwerken, en gaan er geen gegevens verloren als servers worden verwijderd. Bij het verminderen van het aantal servers krijgt een server eerst geen nieuwe aanvragen meer en wordt hij pas gestopt als de aanvragen die hij nog behandelt, klaar zijn.

“Autoscaling” in de toelichting

Vragen met “Autoscaling” (2)

  1. Welk ontwerp is in het algemeen wenselijk voor een systeem dat met autoscaling automatisch servers toevoegt en verwijdert naar gelang de belasting?
  2. In een Deployment waarvan de containers van de Pods de bovenstaande instellingen hebben, draaien vier Pods die elk 400m (0,4 cores) CPU gebruiken. Het doel voor het CPU-gebruik van de HorizontalPodAutoscaler is 60%, en het benodigde aantal Pods wordt berekend als ⌈huidig aantal × huidig gebruik ÷ doelgebruik⌉. Hoeveel Pods zijn er nodig?

Verwante termen

Container Pod Beschikbaarheidszone (availability zone) Blue-green deployment Canary release Containerimage Docker Immutable infrastructure (onveranderlijke infrastructuur) Infrastructure as code (IaC) Kubernetes

Naar de woordenlijst