Kwantitatieve schaalbaarheid
- Hoe goed een webdienst grote volumes aankan, hangt af van een driehoek van factoren: capaciteit, snelheid, en effectiviteit.
Capaciteit
De capaciteit van een trein is het aantal beschikbare zitplaatsen. Een langere trein met meer zitplaatsen kan meer passagiers in één rit naar hun bestemming vervoeren.
Bij software projecten vormen de servers waarop de software draait de capaciteit. Projecten die hun eerste schaalbaarheidsproblemen ondervinden, zijn soms gebaat bij een migratie naar één grotere server. Bij meer geavanceerde projecten is het noodzakelijk de software op te splitsen in verschillende services volgens een verstandige indeling.
Eenmaal gesplitst is het mogelijk om de capaciteit per service nauwkeurig af te stemmen. Uiteindelijk kan autoscaling worden toegepast, waarbij de capaciteit dynamisch wordt aangepast aan de continu veranderende vraag: opschalen om de beschikbaarheid tijdens piekperiodes te garanderen; afschalen om de kosten tijdens dalperiodes te beperken.
Snelheid
Hoe sneller een trein rijdt, hoe meer ritten hij kan maken. De trein kan dus meer passagiers op een dag vervoeren.
Performance bottlenecks ‒ segmenten die veel meer rekenkracht vergen dan hun omliggende segmenten ‒ zijn er altijd in software. Men optimaliseert een bottleneck door de implementatie te vervangen door een snellere die hetzelfde functioneert.
De mate waarin een bottleneck kan worden geoptimaliseerd is sterk uiteenlopend. Bepaalde bottlenecks laten slechts een bescheiden 2× of 10× optimalisatie toe, en die zijn doorgaans niet de moeite waard. Andere bieden daarentegen lucratievere mogelijkheden en laten 100× of 1000× optimalisaties toe, waardoor ze rendabeler zijn.
Effectiviteit
Een trein die een meer oversteekt met een brug bereikt sneller de overkant dan een trein die de alternatieve, langere weg om het meer volgt.
In het licht van schaalproblemen is de neiging groot om je uitsluitend te richten op capaciteit en snelheid. Toch is het de moeite waard te overwegen of er manieren zijn om hetzelfde resultaat met minder inspanning te bereiken. Less is more.
Minder inspanning komt in vele vormen: het introduceren van cache-lagen; het vooraf opbouwen van documentbrokken die minder veranderlijk van aard zijn; het invoegen van debounce-poorten; het strategisch verplaatsen van verwante resources in elkaars nabijheid; enzovoort.
Geen wondermiddelen
Als het gaat om kwantitatieve schaalbaarheid van webdiensten is er geen universeel toepasbare of gestandaardiseerde oplossing die in elk scenario past. Elk project heeft zijn eigen behoeften en bijzonderheden.
De strategie die wij door de jaren heen het meest productief hebben gevonden, is projecten vanaf de grond opbouwen met kwantitatieve schaalbaarheid in gedachten; maar de ontwikkeling van schaalbaarheidsfuncties uitstellen tot ze noodzakelijk worden.
Nullhouse is een agency gespecialiseerd in kwalitatieve en kwantitatieve schaalbaarheid. Wij kunnen jou helpen de meest gunstige koers voor jouw project te vinden. Of je nu een bestaande webdienst wilt optimaliseren of een nieuwe wilt ontwikkelen, wij kunnen je deskundige begeleiding en ondersteuning bieden om ervoor te zorgen dat schaal nooit een probleem is.
Neem contact op