Serverloze technologie heeft veel ophef veroorzaakt in de techgemeenschap, wat veel nieuwsgierigheid heeft gewekt en tot op zekere hoogte wat tegenstand heeft opgeleverd. Het is een technologie die begon met de lancering van AWS Lambda in 2014, gevolgd door Azure Functions later in 2016.
Google volgde later met de release van Google Cloud-functies in juli 2018. Dus, wat is serverloze technologie? Om deze vraag het beste te beantwoorden, laten we teruggaan naar traditionele servergebaseerde computertechnologie.
In het traditionele IT-model was je in feite verantwoordelijk voor alles. Als bedrijfseigenaar moest je budgetteren voor servers en andere netwerkapparatuur zoals routers en switches, en rekken voor het plaatsen van de servers.
Je moest je ook zorgen maken over het verkrijgen van een onberispelijk en veilig datacenter en ervoor zorgen dat het voldoende koeling en redundante stroom- en internetdiensten kon leveren. Eenmaal opgezet, moest je vervolgens het besturingssysteem installeren en later je toepassingen implementeren. Daarnaast moest je monitoringssystemen opzetten en beveiligingsfuncties implementeren zoals firewalls en indringingspreventie- en detectiesystemen.
Zoals je misschien al hebt ingezien, is dit intensief in termen van middelen, kostbaar en uitputtend.
Toen cloud computing de technologiewereld binnenviel, veranderde het volledig de manier waarop we servers en applicaties implementeren en beheren. Het markeerde een nieuw tijdperk waarin ontwikkelaars snel cloudservers en databases konden opzetten en aan de slag konden gaan met hun applicaties. Geen zorgen meer over problemen die verband houden met traditionele IT-computing, zoals downtime, dure apparatuur en het huren van datacentra.
Hoewel cloud computing de gemak en schaalvoordelen met zich meebracht bij het inzetten van IT-middelen, kochten sommige bedrijven te veel serverruimte en middelen zoals RAM en CPU in de verwachting van een piek in netwerkverkeer of activiteit die applicaties zouden overbelasten.
Hoewel het een voorzichtige stap is, is het onbedoelde resultaat dat serverbronnen onderbenut worden en vaak verloren gaan. Zelfs met autoscaling kan een onverwachte en plotselinge piek duur uitpakken. Bovendien moet je nog steeds andere taken uitvoeren, zoals het instellen van load balancers, die ook waarschijnlijk de operationele kosten verhogen.
Het is duidelijk dat ondanks de overstap naar de cloud, sommige knelpunten nog steeds aanwezig zijn en de mogelijkheid hebben om kosten te verhogen en bronnen te verspillen. En hier komt Serverloze computing om de hoek kijken.
Wat is Serverloze Computing
Serverloos rekenen is een cloudmodel dat backend services aan gebruikers levert op basis van pay-as-you-go. In eenvoudige bewoordingen, de cloud provider wijst rekenbronnen toe en brengt alleen kosten in rekening voor de tijd dat de applicaties draaien. Dit komt overeen met overstappen van een maandelijks plan voor kabelbetaling naar betalen alleen wanneer je naar je tv-programma’s kijkt.
De term ‘serverloos’ kan een beetje misleidend zijn. Zijn er servers betrokken? Zeker, maar in dit geval worden de servers en onderliggende infrastructuur puur beheerd en onderhouden door de cloud provider. Als zodanig hoef je je daar geen zorgen over te maken. Als ontwikkelaar richt je je puur op het ontwikkelen van je applicaties en zorg je ervoor dat ze naar tevredenheid werken.
Op deze manier neemt serverloos rekenen de hoofdpijn weg van het beheren van servers en bespaart het je kostbare tijd om aan je applicaties te werken.
Backend Services Geleverd door Serverloos Rekenen
A perfect example of serverless backend service is Function-as-a-Service (FaaS) platform. FaaS is a cloud computing model that enables developers to develop, execute, and manage code in response to events without the complexity of building and managing an underlying infrastructure usually associated with the deployment of microservices.
FaaS is een subcategorie van serverloos rekenen met subtiele verschillen. Serverloos rekenen omvat een breed scala aan services, waaronder rekenen, database, opslag en API om er een paar te noemen. FaaS richt zich uitsluitend op een op gebeurtenissen gebaseerd rekenmodel waarbij applicaties on-demand worden uitgevoerd, dat wil zeggen als reactie op een verzoek.
Voorbeelden van FaaS rekenmodellen zijn onder andere:
- AWS Lambda door AWS
- Azure Functions door Microsoft
- Cloud Functions door Google
- Cloudflare Workers door Cloudflare
In samenvatting hebben we gezien dat met FaaS je alleen betaalt voor de tijd dat je applicatie draait en de cloudprovider vrijwel alles voor je regelt, inclusief het beheren van de onderliggende infrastructuur. Het beheren van servers is het minste van je zorgen.
Voordelen van Serverloos Rekenen
Je hebt nu een goed idee van enkele voordelen die serverloos rekenen met zich meebrengt. Laten we dieper ingaan op de voordelen van het omarmen van de technologie.
1. Geen Serverbeheer
Dit is misschien wel een van de grootste voordelen van het aannemen van het serverloze rekmodel. Hoewel de term ‘serverloos’ verkeerd kan worden opgevat om te impliceren dat er geen servers bij betrokken zijn, draaien applicaties nog steeds op servers. Het kernpunt is echter dat het beheer van servers volledig de verantwoordelijkheid is van de cloudleverancier, en dit geeft je meer tijd om aan je applicaties te werken.
2. Gemakkelijk en Efficiënt Schalen
Serverloze infrastructuur biedt automatische schaalbaarheid van applicaties in reactie op een toename in gebruik, vraag, of groei van de gebruikersbasis. Als de applicatie op meerdere instanties draait, zullen de servers starten en stoppen wanneer dat nodig is. In een traditionele cloudcomputingopstelling kan een piek in verkeer of activiteit gemakkelijk serverresources overbelasten, wat leidt tot inconsistenties met de uitvoering van de applicatie.
3. Ingebouwde Beschikbaarheid
Als ontwikkelaar hoef je geen speciale infrastructuur te bouwen om je applicaties zeer beschikbaar te maken. Serverloze computing biedt ingebouwde hoge beschikbaarheid om ervoor te zorgen dat je applicaties draaien wanneer dat nodig is.
4. Verminderde operationele kosten
Serverloze computing wijst middelen toe op basis van pay-as-you-use. Je applicatie heeft alleen backendfuncties nodig wanneer de code wordt uitgevoerd en schaalt automatisch op basis van de werklast.
Dit zorgt voor schaalvoordelen omdat je alleen wordt gefactureerd voor de tijd dat de applicaties draaien. In het traditionele servermodel moet je betalen voor serverruimte, databases en andere middelen, ongeacht of de applicatie draait of inactief is.
5. Snellere implementatie van applicaties
De serverloze architectuur elimineert de noodzaak voor backendconfiguratie en het handmatig uploaden van code naar servers zoals bij de traditionele setup. Het is eenvoudig voor ontwikkelaars om kleine stapels code efficiënt te uploaden en een geweldig product te lanceren.
De eenvoud van implementatie stelt ontwikkelaars ook in staat om gemakkelijk bepaalde functies van de code te patchen en bij te werken zonder de hele applicatie te wijzigen.
Nadelen van serverloze computing
Zijn er nadelen verbonden aan het serverloze model? Laten we het uitzoeken.
1. Beveiliging
Slecht geconfigureerde toepassingen vormen een van de grootste risico’s verbonden aan serverloos rekenen. Als u bijvoorbeeld kiest voor AWS, is het verstandig om verschillende machtigingen voor uw toepassing in te stellen, die op hun beurt zullen bepalen hoe ze zullen interageren met andere services binnen AWS. Waar machtigingen vaag zijn, kan een functie of een service meer machtigingen hebben dan nodig is, waardoor er voldoende ruimte overblijft voor beveiligingslekken.
2. Leveranciersafhankelijkheid
Het kiezen voor een serverloos model kan uitdagingen met zich meebrengen bij het migreren naar een andere leverancier. Dit komt voornamelijk doordat elke leverancier zijn eigen functies en workflows heeft die enigszins verschillen van de rest.
3. Moeilijkheid bij het testen en debuggen van toepassingen
Nog een uitdaging die wordt gesteld door het serverloze model is de moeilijkheid bij het reproduceren van een serverloze omgeving voor het testen en monitoren van de prestaties van code voordat deze live gaat. Dit komt voornamelijk doordat ontwikkelaars geen toegang hebben tot backend-services die voorbehouden zijn aan de Cloud-provider.
4. Moeilijkheid bij het monitoren van serverloze toepassingen
Het monitoren van serverloze toepassingen is een complexe onderneming om dezelfde redenen als waarom debuggen en testen een lastige taak is. Dit is verergerd door het ontbreken van tools met integratie naar backend-services zoals AWS Lambda.
Conclusie
Serverloos computergebruik blijft terrein winnen en wordt steeds populairder bij bedrijven en ontwikkelaars om 3 belangrijke redenen. Een daarvan is betaalbaarheid, wat lagere operationele kosten impliceert. Ten tweede maakt serverloos computergebruik automatisch en snel schalen mogelijk, en tot slot hoeven ontwikkelaars zich geen zorgen te maken over de onderliggende infrastructuur die wordt afgehandeld door de leverancier.
Ondertussen werken cloudproviders dag en nacht om enkele van de valkuilen van serverloos computergebruik aan te pakken, zoals moeilijkheden bij het debuggen en monitoren van applicaties.