SaaS-architectuur en startup-engineering · Les

Technieken voor horizontale schaling

Ontdek methoden om belasting over meerdere servers te verdelen, waaronder load balancing, autoscaling en het ontwerpen van stateless services.

Les 1 van 412 stappen

Technieken voor horizontale schaling is een gratis SaaS-architectuur en startup-engineering-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject SaaS-architectuur en startup-engineering. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus SaaS-architectuur en startup-engineering bevat in totaal 4 lessen.

Je SaaS opschalen

Stel je voor dat je SaaS-app plotseling duizenden nieuwe gebruikers krijgt! Hoe vang je de extra vraag op zonder dat je service trager wordt of crasht?

Daar komt horizontaal schalen om de hoek kijken. Hierbij voeg je meer machines toe om de werklast te verdelen, in plaats van één machine krachtiger te maken.

Verticaal versus horizontaal schalen

Er zijn twee belangrijke manieren om je toepassing te schalen:

  • Verticaal schalen (opschalen): Verhoog de bronnen van één server (bijvoorbeeld door meer CPU of RAM toe te voegen). Dit kent beperkingen en kan duur zijn.
  • Horizontaal schalen (uitschalen): Voeg meer servers toe aan je bestaande pool en verdeel de belasting over deze servers. Dit is vaak flexibeler en kosteneffectiever voor groeiende SaaS-toepassingen.

Waarom load balancers nodig zijn

Als je meerdere servers hebt, hoe zorg je er dan voor dat binnenkomende gebruikersverzoeken naar een beschikbare server worden gestuurd en niet één server overbelasten?

Dat is de taak van een load balancer. Deze fungeert als verkeersregelaar, staat vóór je servers en verdeelt binnenkomend netwerkverkeer gelijkmatig over deze servers.

Load balancing in actie

Een load balancer zorgt ervoor dat geen enkele server een knelpunt wordt. Als een server bezet is of uitvalt, leidt de load balancer het verkeer intelligent om naar gezonde, minder drukke servers.

Dit verbetert de reactiesnelheid van de toepassing, verhoogt de beschikbaarheid en vergroot de algehele betrouwbaarheid voor je gebruikers.

Slimme verkeersverdeling

Load balancers gebruiken verschillende algoritmen om te bepalen waar ze verkeer naartoe sturen:

  • Round-robin: Stuurt verzoeken in een roulerende volgorde naar servers.
  • Minste verbindingen: Stuurt verkeer naar de server met de minste actieve verbindingen.
  • IP-hash: Koppelt het IP-adres van een client aan een specifieke server, wat handig is om sessie-affiniteit te behouden.

De stroom van verzoeken simuleren

Hier is een vereenvoudigd Python-voorbeeld dat laat zien hoe aanvragen volgens een round-robinmethode over een aantal servers kunnen worden verdeeld:

def distribute_request(servers, request_id, current_server_index):
    selected_server = servers[current_server_index % len(servers)]
    print(f"Request {request_id} routed to {selected_server}")
    return (current_server_index + 1) % len(servers)

if __name__ == "__main__":
    available_servers = ["Server A", "Server B", "Server C"]
    server_idx = 0
    print("Simulating 5 requests being distributed:")
    for i in range(1, 6):
        server_idx = distribute_request(available_servers, i, server_idx)

Schalen op aanvraag

Automatisch schalen is de mogelijkheid om het aantal computerbronnen in een servergroep automatisch aan te passen op basis van de vraag.

Bij een verkeerspiek worden er meer servers toegevoegd. Als het verkeer afneemt, worden servers verwijderd. Zo bespaar je kosten en blijft de prestatie op peil.

Wanneer schaal je op of af

Systemen voor automatisch schalen gebruiken metingen om te bepalen wanneer ze actie moeten ondernemen:

  • CPU-gebruik: Als het gemiddelde CPU-gebruik boven de 70% komt, voeg je een server toe.
  • Netwerk-I/O: Als het netwerkverkeer een bepaalde drempel overschrijdt, schaal je horizontaal op.
  • Lengte van wachtrijen: Als bij berichtenwachtrijen het aantal wachtende berichten te groot wordt, voeg je meer werkers toe.

Ontwerpen voor schaalbaarheid: statelessness

Voor effectieve horizontale schaalbaarheid moeten je services stateless zijn. Dat betekent dat elke aanvraag van een client alle informatie bevat die nodig is om de aanvraag te verwerken, en dat de server tussen aanvragen geen cliëntspecifieke gegevens opslaat.

Waarom is dit belangrijk? Omdat elke server elke aanvraag kan afhandelen. Daardoor kun je eenvoudig servers toevoegen of verwijderen zonder gebruikerssessies te verstoren.

Stateless en stateful uitgelegd

Laten we ze vergelijken:

  • Stateless: Servers verwerken aanvragen onafhankelijk van elkaar. Voorbeeld: een eenvoudige API die gegevens terugstuurt. Gegevens van gebruikerssessies worden extern opgeslagen, bijvoorbeeld in een database of cache.
  • Stateful: Servers onthouden informatie uit eerdere interacties. Voorbeeld: een server die het winkelwagentje van een gebruiker in zijn geheugen bewaart. Dit maakt schalen moeilijker, omdat een gebruiker steeds naar dezelfde server moet terugkeren.

Richt je bij horizontale schaalbaarheid altijd op stateless services.

Kennistoets over schalen

Welke van de volgende opties zijn belangrijke voordelen van het implementeren van horizontale schaalbaarheid en een stateless serviceontwerp in een SaaS-toepassing?

Samenvatting van horizontale schaalbaarheid

Goed gedaan! In deze les hebben we de belangrijkste technieken voor horizontale schaalbaarheid van SaaS verkend:

  • Horizontale schaalbaarheid: Meer servers toevoegen om de belasting te verdelen.
  • Load balancers: Essentieel om binnenkomend verkeer over meerdere servers te verdelen.
  • Automatisch schalen: Het aantal servers automatisch aanpassen op basis van de vraag.
  • Stateless ontwerp: Cruciaal om services eenvoudig horizontaal te kunnen opschalen, zodat elke server elke aanvraag kan afhandelen.

Deze technieken vormen de basis voor het bouwen van schaalbare en veerkrachtige SaaS-platforms.

Gratis beginnen

Leer SaaS-architectuur en startup-engineering 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 “Technieken voor horizontale schaling” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad SaaS-architectuur en startup-engineering, waaronder “Technieken voor horizontale schaling”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus SaaS-architectuur en startup-engineering bevat in totaal 4 lessen.

Wat leer ik in “Technieken voor horizontale schaling”?

Ontdek methoden om belasting over meerdere servers te verdelen, waaronder load balancing, autoscaling en het ontwerpen van stateless services. Je oefent met SaaS-architectuur en startup-engineering 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 SaaS-architectuur en startup-engineering te beginnen?

Ervaring vooraf is niet nodig. SaaS-architectuur en startup-engineering 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 “Technieken voor horizontale schaling”?

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 SaaS-architectuur en startup-engineering?

Ja. Elke les over SaaS-architectuur en startup-engineering 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. Technieken voor horizontale schaling
  2. Message queues en event-driven architectuur
  3. Basisprincipes van serverless architectuur
  4. Load balancing en servicediscovery
← Terug naar SaaS-architectuur en startup-engineering