SysteemarchitectuurDevOps инженер

Hoe implementeer je horizontale en verticale schaalvergroting van applicaties en welke criteria beïnvloeden de keuze van de aanpak?

Slaag voor sollicitatiegesprekken met de Hintsage AI-assistent

Antwoord.

Horizontale schaalvergroting houdt in dat er nieuwe instanties van de applicatie worden toegevoegd (bijvoorbeeld nieuwe servers of containers) om de belasting over hen te verdelen. Verticale schaalvergroting is het verhogen van de middelen op één server (toevoegen van CPU, RAM, schijven).

Bij het kiezen van een aanpak worden de volgende criteria in overweging genomen:

  • Mogelijkheden van de applicatie (stateless applicaties zijn gemakkelijker horizontaal schaalbaar);
  • Beperkingen van de infrastructuur (is het mogelijk om snel servers toe te voegen);
  • Economische aspecten (horizontaal is duurder bij een groot aantal knooppunten, verticaal loopt tegen de grenzen van hardware aan).

Voorbeeld van horizontale schaalvergroting via Kubernetes:

apiVersion: apps/v1 kind: Deployment metadata: name: my-app spec: replicas: 5 # aantal pods - horizontale schaal selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - name: my-app image: myimage:v1

Belangrijke kenmerken:

  • Horizontale schaalvergroting biedt veerkracht en flexibiliteit
  • Verticale schaalvergroting is gemakkelijker te implementeren, maar is beperkt door hardwaregrenzen
  • Niet zelden wordt een hybride aanpak gebruikt: kritische componenten worden horizontaal geschaald, stateful componenten verticaal

Misleidende vragen.

Is horizontale schaalvergroting altijd beter dan verticale?

Nee. Voor bepaalde taken (bijvoorbeeld voor monolithische of stateful services) kan verticale schaalvergroting eenvoudiger en efficiënter zijn.

Vereist horizontale schaalvergroting geen enkele aanpassing van de applicatie?

Nee. De applicatie moet stateless zijn, session sharing ondersteunen (bijvoorbeeld met een externe cache) en correct reageren op schaalvergroting.

Wordt database-schaalvergroting altijd horizontaal uitgevoerd?

Nee. Niet alle DBMS'en zijn gemakkelijk horizontaal schaalbaar. Klassieke relationele databases worden vaak verticaal geschaald (scale-up) of gebruiken sharding/replika.