Laravel Vapor: de volgende stap in de cloud

Jeroen Groenendijk
Jeroen Groenendijk

26 april 2022

In het verleden gaven we al tips voor een succesvolle cloud migratie. Maar ook redenen om juist niet naar de cloud te gaan. En we legden uit waarom we bij Enrise fan zijn van Kubernetes als cloud platform. Sinds een tijdje is er echter een new kid on the block: Laravel Vapor. In dit blog leg ik uit wat Vapor anders maakt en waarom het geschikt is voor je volgende project.

Vapor is serverless

‘Serverless’ is een ietwat verwarrende term omdat er wel degelijk servers aan te pas komen bij een serverless hosting van je site of applicatie. Het verschil is dat bij een klassieke hosting je een (of een paar) vaste servers hebt. Als je host in de cloud op Kubernetes, heb je een set aan servers. Bij serverless draaien er alleen servers als er mensen gebruik maken van je website.

In de wereld van JavaScript development is serverless al een wijdverbreid begrip met diensten zoals Netlify, Vercel en Cloudflare workers. In de wereld van PHP development hebben de makers van Laravel het met hun dienst Vapor nu mogelijk gemaakt om ook PHP applicaties serverless te hosten.

Vapor versus Kubernetes

Als je een duidelijk beeld wilt van wat Kubernetes is dan raad ik dit blog aan. In dit blog wordt een orkest met dirigent gebruikt als metafoor. Met diezelfde metafoor kan ik ook het verschil tussen Vapor en Kubernetes uitleggen. Stel je hebt een gigantisch orkest in het theater klaar staan, maar er is geen publiek. Kubernetes kan het orkest misschien wel afschalen en de helft van de violisten wegsturen, maar een minimale bezetting moet blijven. En de instrumenten, podium en de dirigent moeten continu onderhouden blijven.

Met Vapor is er standaard geen orkest en geen dirigent. Pas als er een bezoeker binnenkomt verschijnt er een (klein) orkest. Gaat de bezoeker weer weg? Dan gaat het orkest ook naar huis. Komen er meer bezoekers? Dan vergroot het orkest ook.

In de kern heb je dus met Vapor minder kosten voor overhead en onderhoud, terwijl je wel dezelfde voordelen hebt als met Kubernetes: het is betrouwbaar, configureerbaar en je kan (onbeperkt) opschalen als het aantal bezoekers toeneemt.

Nadelen van Vapor

In de inleiding verwees ik al naar een blog met redenen om niet naar de cloud te gaan. Twee van die redenen zijn ook zeker van toepassing voor Vapor. Als eerste heb je met Vapor een vendor lock-in op niet alleen Vapor zelf, maar ook op AWS van Amazon. Als je dus liever een andere omgeving (Google of Azure bijvoorbeeld) wilt gebruiken dan is Vapor nog geen optie. Ten tweede moet je website, shop of applicatie wel cloud-ready zijn, er zijn namelijk een aantal hele technische knelpunten als je van een klassieke server overstapt naar de cloud (of dat nou Kubernetes is of Vapor). Omdat we bij Enrise al veel met de cloud werken kunnen we dit gelukkig snel zien en zelfs helpen om die knelpunten uit de weg te ruimen.

Voordelen voor Laravel

Bij Enrise maken we graag gebruik van het open source Laravel om snel en goed sites, shops en applicaties te ontwikkelen. Omdat Vapor is ontwikkeld door het team achter Laravel is het daarom dus geen verrassing dat Vapor het beste in je Laravel project naar boven haalt.

Wat doet Vapor precies? We gebruiken als voorbeeld Amazon AWS. Zij bieden veel verschillende diensten aan voor dingen als DNS, opslag, caching en databases. Dit is echter niet altijd gebruiksvriendelijk om op te zetten of te configureren. Al helemaal niet in het geval van serverless, waar je een handvol van deze diensten nodig hebt en ze met elkaar moet laten samenwerken. Vapor is een soort vriendelijke schil om alle AWS diensten heen die nodig is om je Laravel applicatie serverless te hosten. Je hoeft alleen maar aan te geven dát je een database, cache en opslag wilt, Vapor regelt de rest.

Omdat Vapor een dienst is die je inkoopt heb je geen onderhoudskosten en zijn je beheerkosten beperkt tot het vaste bedrag dat Vapor rekent. Daar komen dan nog wel de kosten van het gebruik van AWS bij, maar die kunnen dankzij de flexibiliteit van Vapor veel lager liggen dan bij Kubernetes.

Wil je meer weten over Laravel of Laravel Vapor? Neem gerust contact met ons op. Voor meer informatie over Laravel tools die ons helpen MVP’s te realiseren attenderen we je graag op dit blog van Daan Houweling.