Geschreven door Joost Saanen op 18-5-2017
Bij het bouwen van maatwerksoftware is toewerken naar een MVP (Minimal Viable Product) vaak een succesvolle aanpak. Zeker in het geval van startups waarbij nog niet helemaal zeker is wat de software precies moet kunnen doen — waar de waarde zit. Wanneer een webapplicatie is ontwikkeld zal deze worden gehost op een server. Nu zou je hier ook kunnen beginnen met een minimale en simpele opzet maar uit ervaring blijkt dat er een betere aanpak is. Namelijk de basis leggen voor een technische schaalbare infrastructuur.
De eerste sprint van het project is bezig, de hostingomgeving wordt opgezet en er wordt gekozen voor een simpele opzet in de vorm van een lichte server of VPS. Want wanneer de applicatie een succes wordt kan er altijd nog voor een betere en snellere omgeving worden gekozen. Niet waar? Dit is niet helemaal juist. Het klopt dat je de capaciteit en resources van een server kan vergroten wanneer blijkt dat het aantal gebruikers van je applicatie toeneemt, maar deze vorm van schalen is beperkt. Ik zal je uitleggen waarom.

Verticale en horizontale schaalbaarheid
De situatie die ik hierboven heb geschetst is een typisch voorbeeld van verticaal schalen: Het uitbreiden van je server door het toekennen van een grotere harddisk, processor of meer geheugen. Door de komst van hypovisor en cloud hosting oplossingen is dit al een stuk makkelijker geworden — het uitbreiden van een systeem is vaak niet meer dan een druk op een paar knoppen. Deze vorm van schalen is snel en kost weinig moeite. Echter zijn de mogelijkheden beperkt, omdat een server vaak een limiet heeft. Een ander nadeel: het is lastig om te schalen zonder downtime omdat een herstart van een server vaak noodzakelijk is.
Bij horizontaal schalen zijn de componenten opgedeeld in blokjes (of containers) die bepaalde taken kunnen uitvoeren. Deze blokjes worden ingedeeld in één of meerdere servers. Wanneer de applicatie meer resources nodig heeft, kan er een blokje bij worden geplaatst. Wanneer er geen ruimte meer is op de servers, kan er een server worden toegevoegd aan de stack. Een loadbalancer kan er voor zorgen dat het verkeer naar de juiste onderdelen wordt geleid. Valt er een blokje weg, dan zal de loadbalancer deze niet langer meer benaderen. Een gebruiker zal hier niets van merken.
High-availablity
Naast de schaalbaarheid, is er nog een ander voordeel: High-availability van je omgeving. Ook bij een startup wil je geen teleurgestelde gebruikers. Je webapplicatie moet een betrouwbaar gevoel geven en beschikbaar zijn waar nodig. Een minimale infrastructuur op een simpele server is doorgaans minder betrouwbaar dan een schaalbare en high-available cloudoplossing.
Kosten
Allemaal leuk en aardig, hoor ik je denken, maar een schaalbare cloud oplossing is toch veel duurder dan een simpel servertje? Toch hoeft dat vaak niet zo te zijn. Ja, de eenmalige kosten en investering van een schaalbare oplossing zullen in het begin misschien hoger zijn. Maar uiteindelijk valt het vaak goedkoper uit en zul je kosten besparen.
Naast dat schaalbaarheid kan zorgen voor extra resources of servers wanneer het gebruik toeneemt, werkt dit natuurlijk ook de andere kant op. Wanneer een applicatie niet wordt gebruikt (neem als voorbeeld een Nederlandstalige webshop in de nachtelijke uren), dan wordt er ook teruggeschaald. Bij Kabisa maken wij vaak gebruik van de cloud hostingprovider Amazon AWS. Bij Amazon worden servers — genaamd instances — per uur afgerekend. Het zou zomaar kunnen dat jouw webapplicatie op bepaalde tijdstippen helemaal niet wordt gebruikt. Op zo’n moment kunnen er servers worden uitgeschakeld. Dit levert direct een besparing op. Met deze besparing heb je binnen een mum van tijd de eenmalige investering van zojuist terugverdiend. Bij Kabisa hebben wij de infrastructuur zo geconfigureerd dat deze automatisch terug- of opschaalt. Hier komt geen DevOps engineer aan te pas.
Tegenwoordig worden servers niet meer handmatig geïnstalleerd. Hiervoor worden IT automation Tools gebruikt. Deze tools zijn in staat om binnen enkele minuten een volledige schaalbare omgeving op te kunnen zetten in de Cloud. De setup kosten worden hierdoor ook beperkt, mits je ICT leverancier natuurlijk vaker met dit bijltje heeft gehakt.
Conclusie
Samengevat zijn er dus een aantal redenen die pleiten om in een vroeg stadium al te kiezen voor een schaalbare, high-available infrastructuur:
- Omdat bij een schaalbare oplossing je infrastructuur is opgedeeld in verschillende onderdelen kun je veel breder schalen. Bij verticale schaalbaarheid is de maximale uitrusting van de server de beperking,
- Een schaalbare oplossing is betrouwbaarder dan de ‘single’ server variant,
- Eenmalige kosten voor het opzetten zijn misschien iets hoger maar kunnen al snel worden terugverdient omdat er meer optimaal gebruik wordt gemaakt van de servers. En wanneer een applicatie niet of weinig wordt gebruikt zal er automatisch worden teruggeschaald.
Ben je geïnteresseerd in een schaalbare infrastructuur? Bij Kabisa hebben we een speciale afdeling Managed Services met beheer- en cloudspecialisten, die zich hier dagelijks mee bezighouden. Neem gerust eens contact met ons op..
Vragen?
Heb je vragen naar aanleiding van dit artikel? Neem gerust contact met ons op!
(of stuur een bericht)+31 495 430 798
Joost Saanenstuur bericht