Is serverloos worden de moeite waard? Voors en tegens van serverless

Het proces is als een kind dat met een vormsorteerder speelt, hoewel je soms aanpassingen moet doen aan de vorm of aan het gat dat bij die vorm past. Als DevOps-professional is het dus belangrijk om elke technologie persoonlijk te evalueren. Zonder verder oponthoud, hier zijn mijn gedachten over serverless.

Wat betekent serverloos?

Serverless computing (of Function as a Service, ook wel Lambda Functions genoemd) bestaat al een tijdje. Tijd voor verrassing als je het nog niet wist: serverloze technologieën draaien eigenlijk op een server! Maar wat serverloos eigenlijk betekent, is dat deze server wordt weggenomen – het wordt als een service voor u geleverd. Een beetje zoals een virtuele machine de hardware abstraheert.

De meest volwassen serverloze technologieën bevinden zich in de openbare cloud. Google App Engine, Amazon Lambda en Azure Functions zijn zeer krachtige tools. Van de open source-kant is Apache OpenWhisk de meest populaire oplossing.

Hoe werkt serverloze architectuur?

Met serverless krijgt u een raamwerk voor het bouwen van een applicatie van de leverancier. Wanneer u een applicatie met dat framework bouwt, zorgt de leverancier ervoor dat die applicatie voor u draait in een volledig beheerde omgeving, vandaar de naam serverless.

En dit is waarom het serverloos wordt genoemd: uw applicatie werkt niet als niemand het gebruikt! Dit leidt natuurlijk tot kostenbesparingen en een beetje vereenvoudigde operaties, aangezien u niet meer verantwoordelijk bent voor het daadwerkelijk uitvoeren van uw code.

Omdat de cloud vaak de beste keuze is als het gaat om het besparen van bronnen, draaien ze uw applicatie alleen op aanvraag. De volgende illustratie legt uit wat er gebeurt:

Moet je serverloos gaan? Enkele zaken om te overwegen

Zoals elke technologie heeft serverless een paar kanttekeningen. Ik denk graag dat elk technisch probleem slechts een verkapte kans is. Laten we eens kijken naar een paar problemen die serverloos zijn en hoe we die problemen kunnen omzetten in kansen.

Feit 1: breng uw monolieten niet in een serverloze wereld!

Dit werkt gewoon niet en slaat nergens op. Een gouden ding over serverless is dat het je dwingt om cloud-native software te maken. U moet er rekening mee houden dat deze applicatie plotseling kan worden afgesloten.

Probeer dus niet om je stateful applicatie serverloos te maken, tenzij je klaar bent om echt de cloud-native wereld binnen te gaan. Deze wijziging is niet alleen technisch, maar verandert ook de manier waarop u software ontwikkelt.

Feit 2: het wordt langzamer

Serverless is niet bedoeld om zo performant mogelijk te zijn. Wanneer het eerste verzoek binnenkomt, moet de code in het geheugen of de virtuele server worden geladen die naar verwachting aan uw verzoek zal voldoen, die moet worden opgestart. Dit alles kan uw aanvraag vertragen.

De oplossing? Gebruik serverless niet voor applicaties die snelle latenties vereisen. Als uw reactietijden langzamer zijn vanwege serverloos, dan zijn serverloze technologieën waarschijnlijk iets dat u niet wilt gebruiken.

Feit 3: Monitoring en logboekregistratie is een probleem

De aard van serverless is dat uw toepassingsinstanties van korte duur zijn. Wat als er een probleem is met uw aanvraag? Misschien heb je de juiste logboekregistratie toegevoegd, maar toch, aangezien gevallen zo kort duren, zijn logboeken al lang verdwenen als je een klacht van je gebruiker krijgt.

Dit biedt nog een andere mogelijkheid: investeer in cloud-native logging. Verzend uw logboeken onmiddellijk naar een platform als AWS CloudWatch of Google Stackdriver dat precies daarvoor is bedoeld.

Feit 4: Serverless wordt geleverd met vendor lock-in

Vendor lock-in is over het algemeen iets waar u rekening mee moet houden wanneer u uw bedrijf opbouwt op een cloudplatform. Hoe meer u investeert in serverloze technologieën van de openbare cloudleverancier, hoe meer u lock-in voor uzelf creëert.

Er is geen wondermiddel voor vendor lock-in. In zekere zin zit u altijd in een of andere vorm van lock-in. Het selecteren van een raamwerk voor uw applicatie of besturingssysteem creëert in zekere zin al een lock-in.

Het belangrijkste is dat je weet dat je vastzit en als je dat als een probleem beschouwt, beperk het dan dienovereenkomstig. Bij serverless zou een optie kunnen zijn om cloud-agnostische oplossingen te gebruiken, zoals Apache OpenWhisk.

Feit 5: u moet nog steeds voor de beveiliging zorgen

Beveiliging is geen zwarte doos die je gewoon van de plank kunt kopen (ik wou dat het zo was!). Dit geldt ook voor serverless.

Als je serverloze applicatie cloud-goodies zoals blob-opslag gaat gebruiken, wees dan heel voorzichtig bij het bepalen welke rechten applicaties hebben voor je bronnen. Zorg er ook voor dat u begrijpt hoe uw serverloze implementaties worden uitgevoerd, zodat slechte code echt wordt vervangen door uw fixes.

Vertrouw ook niet op de cloudleverancier als het om beveiliging gaat. Naar mijn mening mag niemand dat voor je doen.

Serverloos: gewoon een andere optie om waarde te leveren aan klanten

Al met al is serverless nog een ander hulpmiddel. Het is niet bedoeld om iets te vervangen.

Het is geen vervanging voor containers. Het is geen vervanging voor microservices. Het is gewoon een andere benadering van hoe u uw klanten een geweldige ervaring zou bieden.

Het aanvullen van bestaande cloudinfrastructuur met slimme serverloze technologieën is een potentieel winnende gok bij het bouwen van uw services voor uw klanten. Of, als u een greenfield-project bouwt, denk dan na over het grote geheel en kom erachter: past serverless in onze visie?

Volg ons op Twitter 🐦 en Facebook 👥 en word lid van onze Facebook-groep 💬.

Om lid te worden van onze community Slack 🗣️ en lees onze wekelijkse Faun-onderwerpen 🗞️, klik hier⬇

Als dit bericht nuttig was, klik dan een paar keer op de klap 👏 knop hieronder om je steun voor de auteur te tonen! ⬇