Insights
In de afgelopen jaren heeft serverless computing voor een paradigm shift gezorgd in de manier waarop we applicaties ontwikkelen en implementeren. Serverless architectuur biedt schaalbaarheid, flexibiliteit en kosteneffectiviteit en is de go-to-oplossing geworden voor bedrijven die hun activiteiten willen optimaliseren. Dit artikel gaat in op de essentie van serverless computergebruik, de voordelen, use cases en de potentiële impact op de toekomst van technologie.
Wat is serverless computing?
In tegenstelling tot de naam betekent serverless computing niet het volledig elimineren van servers. Uw applicatie serverless laten draaien wil zeggen dat je gebruik gaat maken van een service die alle server gerelateerde taken voor zich neemt. Het maakt het infrastructuurbeheer gemakkelijker, waardoor ontwikkelaars zich uitsluitend kunnen concentreren op het schrijven en implementeren van code voor hun applicatie. Voorbeelden van deze services zijn: AWS Lambda, Google cloud, Azure, Vercel en Netlify.
We zouden de analogie kunnen leggen naar bijvoorbeeld elektriciteit. I.p.v. zelf een windturbine te gaan zetten en zelf te zorgen voor opslag en transport. Gaan we eigenlijk al deze taken overlaten aan een energiemaatschappij. Wij sluiten met hen een contract en we betalen enkel wat we gaan verbruiken. Dit zelfde principe wordt toegepast bij serverless computing. Hier hoeven ontwikkelaars zich niet langer bezig te houden met server-inrichting, schaalvergroting of onderhoud. In plaats daarvan kunnen ze zich richten op het bouwen en leveren van applicaties, terwijl ze de operationele overhead kunnen overlaten aan een saas- of een cloudprovider.
Voordelen
De 3 grote voordelen van serverless computing zijn de schaalbaarheid, de kosteffectiviteit en het feit dat men zelf geen infrastructuur moet gaan opzetten voor het in productie plaatsen van uw applicatie.
Serverloze architectuur zorgt voor automatisch schalen, waardoor applicaties verschillende workloads efficiënt kunnen afhandelen. De infrastructuur wijst op een dynamische manier resources toe. Hierdoor blijft de applicatie beschikbaar, ongeacht hoeveel mensen die op een gegeven moment aan het gebruiken zijn.
In termen van kosteneffectiviteit zit je met serverless computing ook goed. Bedrijven betalen alleen voor de daadwerkelijke verbruik van hun applicaties. Aangezien de cloudprovider de infrastructuur beheert, is er geen noodzaak voor investeringen vooraf in servers of de hierdoor volgende onderhoudskosten. Dit pay-as-you-go-model maakt serverless computing zeer kosteneffectief, vooral voor applicaties met zeer variabele trafiek.
Last but not least, doordat men zelf geen infrastructuur moet gaan opzetten gaat de productiviteit van de developer de hoogte in. Door serverbeheer-taken weg te nemen, vermindert het de tijd en moeite die moet worden besteed aan het inrichten en onderhouden van server-infrastructuur. Hierdoor kunnen developers zich meer kunnen focussen op het product dat ze aan het ontwikkelen zijn.
Challenges
Hoewel het gebruik van een serverless computerarchitectuur verschillende voordelen heeft, moet u ook rekening houden met de uitdagingen die gepaard gaan met deze technologie. Dan hebben we het vooral over het gebrek aan controle en performance.
Door dat je gebruik maakt van een externe service krijg je wel een gebrek aan controle. Je bent geen eigenaar van en hebt geen controle over de server-infrastructuur. Dit betekent dat hardware-fouten, softwarefouten of andere problemen die op de server gebeuren, uw activiteiten drastisch kunnen beïnvloeden. Je hebt meestal ook geen toegang tot alle infrastructuur en data waardoor ook het debuggen van deze problemen in uw applicatie complexer kan zijn dan bij een traditionele opzet. Ook voor monitoring en security van uw applicatie ben je volledig afhankelijk van uw cloudprovider. Het feit dat je enkel betaald voor de capaciteit van de server die je gebruikt, betaal je steeds een correcte prijs. Maar wat die prijs juist is, is ook vaak onvoorspelbaar. Terwijl bij een meer traditionele server dit niet het geval is.
Een begrip dat ook vaak terugkomt bij serverless computing is severless functions. Heel simpel uitgelegd is dit een bepaalde feature binnenin uw applicatie die gebruik maakt van uw serverless infrastructuur. Serverless functions worden on-demand geïnstantieerd, wat betekent dat ze naar behoefte worden gemaakt en vernietigd. Hoewel deze manier van werken schaalbaarheid biedt, kan dit vertraging introduceren in de vorm van cold starts. Dit fenomeen gebeurt wanneer, een functionaliteit opnieuw moet worden geïnitialiseerd vanwege inactiviteit, of tijdens de eerste implementatie. Dit is niet altijd het geval maar het kan langere response-tijden als gevolg hebben. Deze hebben een negatieve invloed heeft op de gebruikerservaring, vooral voor tijd-gevoelige of real-time toepassingen.
Nog iets anders wat we best nog aanraken is het feit dat de verschillende cloudproviders verschillende soorten serverless services aanbieden. Deze zijn ten eerste vaak niet compatible met elkaar. En ten tweede zijn deze vaak anders opgebouwd waardoor het veranderen van provider niet altijd evident is. Dit heeft als gevolg dat het risico bestaat dat je locked-in bent bij een bepaalde cloud-provider. Waardoor, als je niet goed oplet, je afhankelijk kan worden van een van deze services. Databases kan hier een voorbeeld van zijn. Vaak hebben deze verschillende features of manieren om data te gaan opvragen. Mocht je willen veranderen van provider, dan mag je vaak heel de code en/of heel de structuur van uw applicatie omgooien.
Slot
Is uw applicatie een giga succes of groeit het aantal gebruikers langzaam maar gestaag? Zolang je er niet mee inzit dat uw data op een externe server staat lijkt serverless computing vrijwel altijd de juiste keuze. Zowel voor grote als kleine bedrijven, start-ups of gevestigde waarden in de it-wereld. De nadelen van serverless computing lijken niet te kunnen opwegen t.o.v. alle voordelen. Onder het motto: ‘focus on code, not infrastructure’ lijkt serverless computing het over te nemen in de it-wereld. En daar zullen weinig developers rouwig om zijn. Zij kunnen met een gerust hart werken aan hun applicatie, terwijl de cloudproviders zorgen voor de juiste ondersteuning bij het in productie plaatsen van hun producten. En dit aan (meestal) een correcte prijs.
Pieter
Insights
Meer inzichten
📦 Headless CMS,🧐 Research,For dummies 🍼
Voor dummies #3: Headless CMS
Je bent net thuis van een zware dag op het werk. Het was een dag vol met meetings waaronder eentje over de nieuwe website van jouw bedrijf. De developer van dienst was goed op dreef en liet een aantal keer het woord ‘headless CMS’ vallen. Je wou niet door de mand vallen, maar eigenlijk verstond je er geen kleurpotloden van. Geen probleem, I got your back! In de wereld van content management systemen (CMS) is een term headless CMS eentje die de laatste tijd veel furore maakt. Maar wat is een headless CMS precies en waarom wint het zo aan populariteit?
🤖 AI,🧐 Research,For dummies 🍼
Voor dummies #2: ChatGPT
ChatGPT is één van de grootste hete hangijzers van het moment. De chatbot had één week na release al meer dan één miljoen gebruikers. De recensies van de gebruikers zijn grotendeels enthousiast. En nu dat ook Microsoft miljarden in deze technology gaat investeren wil ik toch eens met mijn eigen ogen zien waarvan alle hype komt. Ik ga een test doen. Ik ga eerst zelf research gedaan over een aantal vragen, en dan de tool die zelfde vragen stellen om dat te kunnen vergelijken. Let’s go!
🛠 Frontend development,For dummies 🍼
Voor dummies #1: Web 3
Web 3 is de volgende stap in de evolutie van het web. Het streeft vooral om het internet slimmer te maken. Maar om echt te begrijpen wat web 3 nu daadwerkelijk is, bekijken we eerst even de evolutie tot hiertoe. Want over de laatste aantal jaren heeft het web al een aantal veranderingen ondergaan. Belangrijk om te weten is dat er geen exacte definitie is voor web 1, web 2 of web 3. Maar dat het verzamelnamen zijn voor ideeën, strategieën en principes die men gebruikt op het internet.