Serverless is een andere manier van denken over hoe gebruik gemaakt kan worden van de cloud infrastructuur. In traditionele zin maak je gebruik van een eigen server waar de eigen software op draait, maar met een Serverless architectuur wordt de software in de cloud uitgevoerd. Enkel en alleen wanneer dit nodig is. Er hoeft geen server gereserveerd te worden en dat bespaart een hoop kosten. Maar waarom is het ineens actueel? Wij laten aan de hand voorbeelden zien hoe Serverless nu wordt ingezet.
Serverless, een wereld zonder servers?
Software wordt uitgevoerd zonder dat je je druk hoeft te maken over servers of virtuele machines. Dat klinkt gek, maar de datacenters zijn er wel, de infrastructuur vind je volledig bij de cloud provider. In een Serverless wereld neemt de cloud provider deze verantwoordelijkheid op zich. De Letterlijke vertaling van Serverless is server loos, dus zonder server. Laat je niet verwarren door deze term. Het klinkt wellicht een tikkeltje tegenstrijdig. Wat dit in de praktijk betekent is dat de ontwikkelaars geen omkijken hebben naar infrastructurele issues. Zij kunnen zich volledig focussen op hetgeen ze het leukste vinden; het schrijven van code.
De cloud centraal
Serverless op zich zelf is niet nieuw. Sterker nog, het kwam al in 2015 op. Van begin af aan werd het gezien als een interessante denkwijze. Het interessante is dat Serverless juist momenteel snel aan populariteit wint. De mogelijkheden worden namelijk steeds beter en uitgebreider. Iets wat ze in 2015 wellicht nog niet hadden voorzien.
Bij Serverless draait het om de cloud. Je kiest de cloudprovider die het best bij je past en maakt vervolgens gebruik van bijvoorbeeld AWS Lambda, Azure Functions of Google Cloud Functions. Het komt dichterbij dan je misschien door hebt. Als je een mobiele applicatie gebruikt, is de kans aanwezig dat je al kennis hebt gemaakt met een Serverless functionaliteit. Want hoe ziet dit er in de praktijk uit? Als simpel voorbeeld nemen we het versturen van een contactformulier op een willekeurige website of applicatie. Nadat jij, als bezoeker, je gegevens hebt ingevuld en klikt op verzenden, gebeurt er het volgende:
- De gegevens worden verstuurd naar de cloud, er wordt direct een Serverless functie opgestart. Dit is een stukje code, wat ervoor zorgt dat de volgende stappen uitgevoerd worden.
- Deze functie controleert of de gegevens volledig zijn en slaat deze op in een database (bijvoorbeeld een Serverless database).
- De Serverless functie zorgt dat er een bevestigingsmail gestuurd wordt.
- Het traject is voltooid. De Serverless functie zal vanzelf afgesloten worden
Dit hele proces duurt wellicht een tiende seconde en je betaalt enkel voor de tijd dat deze functie gewerkt heeft. Stel, bovenstaand formulier wordt door een grote groep mensen tegelijk ingevuld en verzonden, dan wordt de functie exact zo vaak gestart als nodig is. Dit proces speelt zich vlekkeloos naast elkaar af. Het is dus enorm schaalbaar. Hierdoor heb je geen gedoe meer met overladen servers die haperen omdat ze de vraag niet aankunnen. Wat een van de redenen is waardoor de populariteit van Serverless toeneemt.
Serverless is dichterbij dan je denkt
Serverless klinkt misschien nog een beetje futuristisch en ver weg, maar ook een grote partij als streamingdienst Netflix maakt handig gebruik van de mogelijkheden die Serverless biedt. Netflix heeft contacten met veel verschillende producers, die allen willen dat hun content perfect getoond wordt aan de kijker. De producers delen hun content in de hoogst mogelijke kwaliteit met Netflix. Je zou zeggen dat dit een grote druk geeft aan de servers. Daarom zet Netflix Serverless functies in om alle binnengekomen video’s vanuit het hoge bestand te formatteren naar verschillende kwaliteitsniveaus. Daarmee biedt Netflix de mogelijkheid om in te spelen op de verbindingssterkte van de kijker. Zo krijgt de kijker een video in de kwaliteit die het beste past bij zijn situatie.
Serverless biedt kansen. Maar niet iedereen is zo groot als Netflix, hoe verhoudt zich dat tot jouw eigen business? Serverless kan al op kleinschalig niveau. Denk bijvoorbeeld aan je testomgeving. Over het algemeen gebruik je deze omgeving ‘s nachts niet, waardoor je het logischerwijs uitzet. Als eigenaar van die infrastructuur blijven de kosten echter gewoon gelijk. Als je overstapt naar een Serverless oplossing, betaal je echter exact wat je gebruikt. Het is zo simpel als het klinkt, laat je de servers ‘s nachts niet draaien, dan verbruik je niets en betaal je dus ook niets. Oftewel, jouw kosten gaan omlaag.
Invloed van Serverless op de huidige architectuur
Overstappen naar Serverless heeft invloed op de bestaande architectuur. Traditionele (in technische termen: microservice of monolithische) applicaties draaien continu. Ze wachten tot ze hun opdracht kunnen uitvoeren. Dus ook als ze geen opdracht hebben, staan ze aan. Daarentegen starten Serverless functies, zoals geschetst in het eerder genoemde voorbeeld, als reactie op een gebeurtenis. In een Serverless architectuur is het van belang om te denken in gebeurtenissen ook wel ‘events’ genoemd. Hierdoor ontstaat de event-driven architectuur. Omdat microservices ook reageren op events kan je Serverless goed combineren met de al bekende architectuur. Een geleidelijke overgang naar Serverless is hierdoor eenvoudig mogelijk.
Bij microservices zijn er software componenten die zich richten op één specifiek onderdeel van een gebied, denk aan het domein klanten, betalingen of bestellingen. Serverless pakt dit anders aan. Hier zullen meerdere kleine functies ingezet worden die samen alle functionaliteiten binnen het domein verzorgen. Kortweg betekent dit een andere structuur in de programmacode. Kleine Serverless functies voeren elk hun eigen stap uit in het proces. Hierdoor is de software overzichtelijk en onderhoudbaar.
Geen zorgen meer over infrastructuur
Het in gebruik nemen van software wordt een stuk makkelijker met Serverless. Zorgen over je infrastructuur en servers behoren tot de verleden tijd. De cloud provider is verantwoordelijk en jij kunt je bezig houden met hetgeen echt belangrijk is. Daardoor is Serverless enorm populair geworden de afgelopen tijd. De grote voordelen zitten vooral in het automatisch opschalen en de bijkomende kostenverlaging. Hier ga ik in mijn volgende blog dieper op in.
Zie je kansen omtrent Serverless voor je eigen business of wil je meer weten over dit onderwerp? Neem contact op en ontdek wat wij voor je kunnen betekenen.