Basiskennis van systeemontwerp voor backendontwikkelaars · Les

Verticaal versus horizontaal schalen

Vergelijk methoden om op te schalen (verticaal) en uit te schalen (horizontaal) om een hogere belasting aan te kunnen.

Les 1 van 411 stappen

Verticaal versus horizontaal schalen is een gratis Basiskennis van systeemontwerp voor backendontwikkelaars-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Basiskennis van systeemontwerp voor backendontwikkelaars. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Basiskennis van systeemontwerp voor backendontwikkelaars bevat in totaal 4 lessen.

Wat is systeemschaling?

Heb je je ooit afgevraagd hoe populaire apps miljoenen gebruikers aankunnen zonder vast te lopen? Daar komt systeemschaling om de hoek kijken!

Schalen betekent dat je systeem meer werk aankan, zoals meer gebruikers of gegevens, zonder trager te worden of uit te vallen.

Waarom schalen we systemen?

Stel je je favoriete onlinewinkel op Black Friday voor. Als die niet was geschaald, zou de winkel uitvallen!

  • Groei van het aantal gebruikers: Meer gebruikers betekenen meer verzoeken om te verwerken.
  • Gegevensvolume: Meer gebruikers genereren meer gegevens om op te slaan en op te halen.
  • Prestaties: Zorg ervoor dat alles snel en responsief blijft voor een goede gebruikerservaring.
  • Beschikbaarheid: Zorg ervoor dat het systeem altijd toegankelijk is, ook tijdens piekperioden.

Verticale schaalbaarheid: omhoog schalen

Verticale schaalbaarheid, ook wel "omhoog schalen" genoemd, betekent dat je de bronnen van één server uitbreidt.

Zie het als het upgraden van je eigen computer: je voegt meer RAM, een snellere CPU of een grotere harde schijf toe om die ene machine krachtiger te maken.

Voordelen van verticale schaalbaarheid

Verticale schaalbaarheid is vaak de eenvoudigste manier om bij gematigde groei meer vermogen te krijgen:

  • Eenvoud: Minder veranderingen in de architectuur en eenvoudiger beheer van één krachtige machine.
  • Gegevensconsistentie: Geen complexe problemen met gegevenssynchronisatie tussen meerdere servers, omdat alle gegevens op één server staan.
  • Kosteneffectief (in het begin): Kan goedkoper zijn dan het opzetten van een gedistribueerd systeem voor kleine tot middelgrote schaal.

Nadelen van verticale schaalbaarheid

Verticale schaalbaarheid heeft echter belangrijke beperkingen:

  • Harde grenzen: Er is een fysieke maximumhoeveelheid RAM of CPU die één machine kan bevatten.
  • Uitvaltijd: Voor upgrades moet de server meestal offline worden gehaald, waardoor de dienstverlening wordt onderbroken.
  • Single point of failure: Als die ene krachtige server uitvalt, valt je hele systeem uit.
  • Duur: Hoogwaardige, gespecialiseerde hardware kan erg duur zijn.

Horizontale schaalbaarheid: uitbreiden

Horizontale schaalbaarheid, ook wel "uitbreiden" genoemd, betekent dat je meer servers (of knooppunten) aan je systeem toevoegt.

In plaats van één server krachtiger te maken, voeg je meer identieke servers toe en verdeel je de werklast over deze servers. Denk aan extra kassa's in een drukke supermarkt om meer klanten te bedienen.

Voordelen van horizontale schaalbaarheid

Horizontale schaalbaarheid biedt belangrijke voordelen voor grote en kritieke systemen:

  • Bijna onbeperkte schaalbaarheid: Je kunt zoveel servers toevoegen als nodig is om aan de vraag te voldoen.
  • Hoge beschikbaarheid: Als één server uitvalt, kunnen andere servers het werk overnemen, zodat uitvaltijd wordt voorkomen.
  • Kosteneffectief: Gebruik goedkopere standaardhardware in plaats van dure, gespecialiseerde machines.
  • Fouttolerantie: Het systeem kan blijven werken, ook als sommige onderdelen uitvallen.

Nadelen van horizontale schaalbaarheid

Uitbreiden brengt nieuwe uitdagingen met zich mee die zorgvuldig systeemontwerp vereisen:

  • Toegenomen complexiteit: Het beheren van meerdere servers, verkeersverdeling en gegevensdistributie wordt moeilijker.
  • Gegevensconsistentie: Het kan lastig zijn om ervoor te zorgen dat gegevens consistent zijn op veel gedistribueerde machines.
  • Communicatie tussen services: Services moeten efficiënt en betrouwbaar via het netwerk met elkaar communiceren.

De juiste aanpak kiezen

De beste schaalstrategie hangt af van de specifieke behoeften en verwachte groei van je systeem:

  • Kleine tot middelgrote systemen: Verticaal schalen kan vanwege de eenvoud een goed uitgangspunt zijn.
  • Grote schaal en hoge beschikbaarheid: Horizontaal schalen is essentieel voor enorme gebruikersbestanden en kritieke diensten die zich geen uitvaltijd kunnen veroorloven.
  • Hybride: Veel systemen uit de praktijk gebruiken een combinatie: ze schalen afzonderlijke krachtige onderdelen, zoals een database, verticaal binnen een horizontaal geschaalde applicatiearchitectuur.

Kennistoets over schaalconcepten

Laten we testen of je de schaalmethoden begrijpt.

Verticaal versus horizontaal schalen: samenvatting

We hebben twee fundamentele manieren geleerd om systemen te schalen:

  • Verticaal schalen: Eén server krachtiger maken ('omhoog schalen'). Dit is eenvoudiger, maar kent fysieke grenzen en creëert één uitvalpunt.
  • Horizontaal schalen: Meer servers toevoegen ('uitbreiden'). Dit is complexer, maar biedt vrijwel onbeperkte mogelijkheden, hoge beschikbaarheid en fouttolerantie.

De juiste methode kiezen, of een hybride aanpak gebruiken, is cruciaal voor het bouwen van robuuste, goed presterende en veerkrachtige systemen!

Gratis beginnen

Leer Basiskennis van systeemontwerp voor backendontwikkelaars met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Verticaal versus horizontaal schalen” gratis?

Ja — de volledige tekst van “Verticaal versus horizontaal schalen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Basiskennis van systeemontwerp voor backendontwikkelaars wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Basiskennis van systeemontwerp voor backendontwikkelaars bevat in totaal 4 lessen.

Wat leer ik in “Verticaal versus horizontaal schalen”?

Vergelijk methoden om op te schalen (verticaal) en uit te schalen (horizontaal) om een hogere belasting aan te kunnen. Je oefent met Basiskennis van systeemontwerp voor backendontwikkelaars door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Basiskennis van systeemontwerp voor backendontwikkelaars te beginnen?

Ervaring vooraf is niet nodig. Basiskennis van systeemontwerp voor backendontwikkelaars op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Verticaal versus horizontaal schalen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Basiskennis van systeemontwerp voor backendontwikkelaars?

Ja. Elke les over Basiskennis van systeemontwerp voor backendontwikkelaars bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Verticaal versus horizontaal schalen
  2. Stateless versus stateful Services
  3. Inleiding tot gedistribueerde systemen
  4. Load-balancingstrategieën
← Terug naar Basiskennis van systeemontwerp voor backendontwikkelaars