Moet je als startup beginnen met een schaalbare infrastructuur?

Joost

Geschreven door Joost Saanen op 18-5-2017
4 minuten leestijd

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.

schaalbaarheid en startups

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:

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..

Joost

Joost Saanen

Gepassioneerde all-rounder met brede interesses; van serverbeheer en cloudhosting tot (UI)design en (web)development. Hardloopt en schrijft het liefst tegelijk.