Update #10: To cloud or not to cloud | I amsterdam

Hallo daar!

Vandaag duiken we de techniek in.

Ergens op deze planeet staat Wolf Maps op een servertje te pruttelen. Deze server staat 24/7 te wachten totdat iemand via een browser een kaart opent. Als dat verzoek binnenkomt, genereert deze server zo snel mogelijk de opgevraagde kaart. 

Servers zoals deze staan tegenwoordig bijna altijd in de cloud.

Wat is de cloud?

Met de cloud bedoelen we computerdiensten — zoals servers en opslag — geleverd via het internet zonder dat je zelf de fysieke hardware beheert. Dit is de rol van de cloudprovider.

De diensten van cloudproviders variëren enorm. Aan de ene kant van het spectrum staan cloudservers, een virtuele server die je net als een fysieke server helemaal zelf moet inrichten en onderhouden. 

Aan de andere kant van het spectrum staat zogenaamde serverless infrastructuur: je uploadt enkel applicatiecode. Hoe dat precies in de webbrowser van je klant verschijnt, is niet jouw zorg. Of het nu 1 of 1 miljoen bezoekers zijn? Niet jouw zorg.

Cloudproviders als Amazon Web Services (AWS), Microsoft Azure en Google Cloud hebben een eenvoudige propositie: makkelijk, goedkoop en schaalbaar. Zeg maar de IKEA van het web.

De cloud is goedkoop omdat de schaal groot is. De cloud is eenvoudig door web interfaces en handleidingen waarmee je niet in schroef schroef, maar in klik klik, klaar bent.

Toch verschijnen er steeds vaker berichten: de cloud is helemaal niet zo goedkoop. De cloud is helemaal niet zo eenvoudig. Hoe zit dat?

De cloud en goedkoop 

De cloud is zowel goedkoop als duur. Een eenvoudige server is vaak heel goedkoop (vanaf een paar euro per maand). Daarvoor krijg je opslag, geheugen en processorkracht. Deze kun je inrichten zoals je zelf wilt. Afhankelijk van de behoefte/populariteit van je applicatie schaal je de server. Het nadeel is dat je de servers zelf softwarematig moet onderhouden en handmatig moet schalen.

Maak je gebruik van de serverless infrastructuur, dan is het verhaal iets complexer. Je betaalt vaak voor het aantal gebruikte diensten plus het gebruik ervan. Wolf Maps — dat nog relatief klein is — zou nu al zo’n 12 diensten afnemen. Dat kan in beginsel bijna kosteloos zijn, maar naarmate je applicatie groeit, groeien de kosten vaak flink mee. Omdat bij elke cloudprovider de serverless infrastructuur net iets anders is, is overstappen vaak moeilijk.

Er zijn voorbeelden van organisaties waar de rekening zo uit de hand loopt dat het rendabel is om de cloud volledig te verlaten.

De cloud en eenvoud

Is de cloud net als IKEA, klik klik klaar? David Heinemeier Hanson, oprichter van Basecamp en Hey, legt dat haarfijn uit:

"The cloud is so much simpler! The savings will all be there in labor costs! Except no. Anyone who thinks running a major service like HEY or Basecamp in the cloud is "simple" has clearly never tried. Some things are simpler, others more complex, but on the whole, I've yet to hear of organizations at our scale being able to materially shrink their operations team just because they moved to the cloud."

Het beheren van clouddiensten is een vak apart. Per aanbieder is unieke kennis nodig. Het beheren van eigen servers is uiteraard ook complex. Echter, omdat servers al zo lang bestaan, is er een enorme hoeveelheid kennis en ervaring beschikbaar. Dat maakt je een stuk minder afhankelijk van één partij. Daarnaast kun je met moderne tooling (zoals Dokku) in de buurt komen van het serverless gevoel.

Hoe doen we dat bij Wolf Maps?

Wij maken gebruik van cloudservers en niet van serverless infrastructuur om één simpele reden: de (toekomstige) prijs. Als zelf gefinancierd bedrijf wordt onze dienst enkel en alleen betaald door onze klanten.

Dat heeft voordelen: we zijn niet overgeleverd aan de grillen van investeerders (wel aan onze eigen grillen helaas). Maar ook een nadeel: je moet zorgvuldig omgaan met je centen. Eigen servers zijn daarin de meest economische optie.

Een cloudserver geeft ons de mogelijkheid om meerdere diensten op één server te draaien. Daarnaast willen we dat de kaarten van onze klanten snel laden. Dat betekent voor elke kaartweergave een hele korte, maar stevige piek qua rekenkracht. Een kaart verbruikt relatief veel data, en ook die tarieven liggen bij eigen servers een stuk lager dan bij serverless infrastructuur.

Zouden we kiezen voor serverless, dan zou het onderhoud mogelijk iets eenvoudiger zijn. Echter, de kosten zullen vanwege het type applicatie al snel oplopen, waarbij tienduizenden euro’s per jaar geen uitzondering is.

Onze cloudrekening

Op dit moment draait Wolf Maps op 3 servers in Amsterdam bij DigitalOcean. Eén webserver die alle kaarten serveert, één managed database server en één analytics server. Daarnaast gebruiken we nog een CDN (Content Delivery Network) voor het serveren van de kaartlagen. De rekening:

  • Totaal per jaar: $864. 
  • Onderhoud per jaar: 12 uur.
  • Capaciteit: 25.000 kaartweergaven per uur. 
  • Laadtijd per kaart: 0,2 seconden. 

De grens van onze eenvoudige cloudservers is nog niet in zicht, en dat is maar goed ook. Vanaf volgende maand komen de eerste kaarten van Amsterdam & Partners, de marketingorganisatie achter de metropoolregio Amsterdam en het merk I amsterdam, online 🎉. Dat belooft best een aardig volume te worden.

Tot slot: to cloud or not to cloud? Dat hangt natuurlijk af van je situatie. Ons advies is om te beginnen met een simpele cloudserver voordat je jezelf vastzet in het web van managed en/of serverless clouddiensten.

Voor de rest van de zomer willen we vooral wat minder cloud en wat meer zon ☀️.

Fijn weekend!

Tim en Aljan

Je ontvangt deze e-mail omdat je je hebt aangemeld voor onze nieuwsbrief · Afmelden · Bekijk in de browser · Volg ons op LinkedIn