Udvikler: Mange penge at spare med serverless, lambda'er og tjenester

Reduktion i omkostninger på 20 gange kan opnås med tjenester, hvor der bliver betalt pr. afviklet funktion. Men så er man også lænket til leverandøren.

Serverless og lambda'er - systemer, som bygger på enkelte funktioner - er ikke bare det rene hype, men også en håndfast måde at skære udgifter til driften ned. I hvert fald hvis ens system passer til arkitekturen.

Det er holdningen hos Gojko Adzic, som er konsulent og udvikler. På den nyligt afholdte Goto-konference i København fortalte han om sine erfaringer ved at flytte app'en Mindmup.com, en såkaldt 'mindmap', over på serverless-arkitektur, tidens modeord.

Serverless er en dårlig betegnelse, for naturligvis er der servere involveret. Det burde snarere hedde 'betal for, hvad du bruger,' siger Gojko Adzic.

For Gojko Adzic og Mindmup har det betydet, at omkostninger i forhold til virtualiserede servere er reduceret til en tyvendedel.

Læs også: Cloud-ekspert om serverless: »Drift, som vi kender det, vil forsvinde«

Lambda'er, hvis navn er lånt fra funktionsprogrammering, refererer til Amazons tjeneste AWS Lambda, hvor kunderne kun betaler, når en kodestump afvikles.

Leverandør-håndjern er et forretningsmæssigt valg

Udover lambda'er benytter han Cognito, som er Amazons brugerstyringssystem, og det kan skære to måneder af udviklingstiden, lyder det glade budskab

Men bliver man ikke låst fast til en bestemt leverandør?

»Jo jo, men det er et forretningsmæssigt valg. Vi besluttede, at det var bedre med fastlåst leverandør, fordi vi kunne gøre det hurtigere, end hvis vi skrev vores eget system. En anderledes brugeradministration vil ikke give mig en konkurrencemæssig fordel i min app. Det gør forretningslogikken til gengæld. Vi er kun to på projektet, så at blive fastlåst til en leverandør, vi stoler på, er en fornuftig forretningsmæssig beslutning,« forklarer Gojko Adzic i et rivende tempo.

Der er dog også ulemper ved lambda'er. I sit foredrag på konferencen fortæller han, at han »kan snakke en halv time om ulemperne ved serverless og lambda«.

Version2 beder Gojko Adzic om at uddybe de vigtigste ulemper:

»I dag er der ingen tjenesteaftaler (SLA’er), så der er ingen garanti for noget som helst, når man bruger AWS Lambda. Efter vores erfaring fungerer det rimeligt godt, men der er altså ingen garantier. Jeg gætter på, at Amazon vil tilbyde det på et tidspunkt. Det er stadig en forholdsvis ny tjeneste, den har været her i omkring to et halvt år.«

Han peger også på, at der begynder at komme 'compliance', opfyldelse af regulativer, på lambda-fronten, ligesom med andre Amazon-tjenester.

Lad browseren snakke med backend

Men hvad kan serverless og lambda'er egentlig bruges til?

»Lambda er bygget med henblik på throughput og ikke på latency,« mener Gojko Adzic. Throughput er mængden af data, der kan processeres, og latency er i denne forbindelse hastigheden, som den udføres med.

»Amazon offentliggør ikke tal på ydelsen, men vores erfaring er, at når man går fra en webklient i USA til Amazons gateway og tilbage igen, tager det 50 millisekunder og 100 fra Europa. Hvis man arbejder med opgaver, som kan løses indenfor denne tid, er lambda’er perfekte. Hvis man har behov for garanterede maksimumstal for latency, så er lambda’er ikke helt der endnu, selvom udviklingen går hurtigt.«

Nogle mennesker, såsom Version2's udsendte medarbejder, synes, at det er svært at dreje hovedet omkring den tanke, at mange applikationer håndterer komplekse tilstande, og hvordan det klares med lambdaer og serverless. Men det synes Gojko Adzic ikke.

»Der er forskellig slags tilstande - brugertilstande, sessionstilstande og datatilstande. Hvis du for eksempel anvender et CMS-system, så afhænger en given artikel ikke af en given bruger. Du har en artikel med billeder og en titel, og det skal alligevel ned i en database eller et filsystem, ligesom det gjorde tidligere. Den slags blev ikke håndteret på applikationsserveren, for servere kan dø.«

»Brugertilstand blev før håndteret i hukommelsen, men ved at bruge autorisation på det lave niveau og ved at bruge Cognito kan det tillades slutbrugeren at kommunikere direkte fra browseren til backend-resurserne. Det er interessant.«

Og lidt uhyggeligt?

»Det er lidt uhyggeligt, men folk tænker, at det er deres egen database, og det er det ikke - det er Amazons. Det er dine data - men de er beskyttet af Amazons sikkerhedsmekanismer, uanset om en klient snakker med dem, om din app snakker med dem, eller en anden app, eller en angriber snakker med dem - det er de samme autoriseringsmekanismer. Hvis du ikke stoler på at lade Amazon opbevare dine data, så skal du ikke placere dem der.«

Det giver god mening at tænke på lambda ikke som en serverproces, men som lim mellem forskellige tjenester, synes Gojko Adzic, som spår, at vi kommer til se mere af den slags i de kommende år:

»Jeg tror, at de forretningsmæssige fordele ved lambda er så vanvittige (det handler om penge), så når compliance, latency og SLA’er er på plads - som allerede eksisterer for andre af Amazons tjenester - vil det nedsætte barrieren for mange. Besparelsen ved at køre lambda i modsætning til almindelig virtualisering vil gøre, at indenfor fem til ti år vil alt, hvad der kan køre som lambda, køre lambda.«

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (7)
René Løhde

Citat: "Besparelsen ved at køre lambda i modsætning til almindelig virtualisering vil gøre, at indenfor fem til ti år vil alt, hvad der kan køre som lambda, køre lambda."

Ovenstående synspunkt beror på den antagelse at prisen på serverless (AWS Lambda, Azure Functions etc.) er statisk (og væsentlig billigere) ifht andre teknologier.
Jeg er ret sikker på at Amazon vil hæve prisen på serverless hvis alle kunder med potentielle Lambda workloads skifter fra EC2 instancer (AWS cash cow) til Lambda, i morgen.

Der ligger en økonomisk gevinst i at være 'first mover', men jeg tror ikke man skal spå om priserne på serverless i fremtiden.

Ivo Santos

Jeg kan da godt se at det er billigere at leje en bil på minut basis i forhold til at lease en på måneds basis til en fast pris.
Kan det tænkes at prisen for at lease en virtuel server efterhånden er blevet så dyrt at det næsten er billigere hvis man selv ejer hardwaren, og for at holde på kunderne har de nu udviklet en forretnings model hvor man åbenbart betaler per micro sekund i stedet for en fast pris per måned.

Omvendt kan jeg da godt se at det er smart i forhold til iværksættere da deres udgifter til hardware vil være en del lavere i opstarts perioden.

Michael Fjeldsted

Hvis man nu kørte med Azure Functions istedet for Lamda, så havde man valgt en platform, som både kan køre i Cloud betalt pr sekund, men ikke mere låst end at man selv kan installere runtimen et andet sted (onpremise eller anden udbyder).

Så kan man også køre en kombi hvor det normale load er onpremise, hvis man nu allerede har købt en masse dyrt jern og så nøjes med at bruge cloud når man skal skalere med peak.

Local debug og local tests osv er selvfølgelig heller ikke dårligt at kunne gøre på den "rigtige" runtime.

https://docs.microsoft.com/en-us/azure/azure-functions/functions-runtime...
https://github.com/Azure/Azure-Functions

Jacob Christian Munch-Andersen

Mon ikke den omtalte omkostningsreduktion først og fremmest opstår fordi de omtalte lambdaer ikke slæber rundt på en stor bunke overhead? En gammeldags PHP + SQL bruger let 99% af tiden på at starte nye instanser og rode rundt i en alt for kompliceret datastruktur.

Man behøver ikke at binde sig til Amazon eller lambdaer for at komme af med en væsentlig del af det skidt, eksempelvis kan Node.js fint køre med langlivede instanser, og man kan let cache data så man ikke skal vente på databasen for hver eneste forespørgsel.

Log ind eller Opret konto for at kommentere
Pressemeddelelser

Welcome to the Cloud Integration Enablement Day (Bring your own laptop)

On this track, we will give you the chance to become a "Cloud First" data integration specialist.
15. nov 2017

Silicom i Søborg har fået stærk vind i sejlene…

Silicom Denmark arbejder med cutting-edge teknologier og er helt fremme hvad angår FPGA teknologien, som har eksisteret i over 20 år.
22. sep 2017

Conference: How AI and Machine Learning can accelerate your business growth

Can Artificial Intelligence (AI) and Machine Learning bring actual value to your business? Will it supercharge growth? How do other businesses leverage AI and Machine Learning?
13. sep 2017