Slip for VM's og containere: Serverless-arkitektur skærer alt andet end kode væk

Massive besparelser og hurtig innovation er på gevinstlisten, når selskaber tager en såkaldt serverless arkitektur i brug. Prisen er mangel på kontrol.

Serverless er som arkitektur-trend ikke specielt godt navngivet. Servere er naturligvis stadig involveret i processen. Det særlige er i stedet, at servere ikke længere er noget, som udviklerne eller driftsfolk behøver at bekymre sig om.

»Der er ingen servere at administrere,« forklarer Jeremy Edberg, stifter og CEO hos MinOps ved it-konferencen AWS Re:Invent, der tidligere på måneden fandt sted i Las Vegas.

»Servere, operativsystemer og containere er fjernet. Du opgiver noget kontrol og skal til gengæld ikke tage dig af problemerne,« fortsætter han.

Læs også: Er agil udvikling ikke nok? Så prøv total udryddelse

Tilbage er kun den kode, som en given funktion består af. Koden kører i sekunder eller minutter og kun så mange gange, som den bliver kaldt.

Og i mellemtiden har du ingen servere til at stå klar til at modtage ordrer.

»Serveless handler om at øge deployment-hastigheden ved at fjerne alt administration. Det er kun koden, du skal styre,« siger Jeremy Edberg, der tidligere har arbejdet som softwarearkitekt hos både Netflix og Reddit.

Event driven

I praksis er der flere måde at køre en serverless arkitektur på. I AWS-regi tilbydes for eksempel Lambda - en tjeneste, som understøtter såkaldte event driven applications.

Tilsvarende tjenester leveres af Google og Microsoft i form af henholdsvis Google Cloud Functions og Microsoft Azure Functions.

Et eksempel på opbygningen af en serverless applikation, der encoder nye videofiler, når de tilføjes en database. Foto: Jeremy Edberg

Det har blandt andet det danske streamingfirma Xstream taget til sig, fortalte Head of Services Loke Dupont tidligere på året.

Læs også: Dansk streamingfirma går all-in på platform-as-a-service: »Det fjerner en kompleksitet, vi ikke vidste var unødvendig«

I Xstreams tilfælde betyder det, at når en ny videofil lægges i skyen sendes en trigger til Lambda, som automatisk sender et job til en transcoder, som encoder videoen i de ønskede profiler.

Herefter markerer Lambda filen klar til at blive streamet.

»Det kan du gøre uden at drifte en eneste virtuel maskine. Du slipper for at se på, hvilket operativsystem det skal køre på, hvordan skal du proportionere det - alt det er væk,« understreger Loke Dupont og fortsætter:

»Den fjerner alt, som ikke er kode.«

Serverless på en måned

Softwarefirmaet BMC har også omdannet dele af selskabets applikationer til en serverless arkitektur.

Inspirationen kom mest af alt, da ledelsen bad et udviklingshold om at lave et system til kundevalidering på meget kort tid, fortæller softwarearkitekt Ajoy Kumar.

Visualisering af en serverless applikation til kundevalidering, som BMC Software byggede på en måned. Foto: Ajoy Kumar

»Arkitekturen blev bygget på en måned, og nu arbejder vi kontinuerligt på at udvikle den,« siger han.

Læs også: Fra monolit til microservice: Sådan genbyggede Netflix sig selv i skyen

Applikationen fungerer med flere Lambda-funktioner forbundet til forskellige databaser. En Lambda-funktion trigger på ny data i systemet, evaluerer den efter nogle forretningsregler og gemmer data i en database. Det trigger en ny Lambda-funktion, som indekserer data.

»Hele data-pipelinen er i virkeligheden en serie af Lambda-funktioner,« siger Ajoy Kumar.

Skær på omkostninger

Ifølge Ajoy Kumar er agilitet og innovationshastighed den største gevinst ved serverless, men arkitekturen gør det også muligt at spare på it-budgettet.

For det første skal du ikke betale for at have x antal virtuelle maskiner i skyen eller fysiske servere stående. Og uden servere, der skal driftes, kan man skære ned på sit driftshold, fortæller Ajoy Kumar, der dog understreger, at det er en myte, at man kan droppe driftsfolkene helt.

»Du har stadig brug for drift. Men det er alt sammen på applikationsniveau - Ikke infrastrukturniveau,« forklarer han.

Læs også: Skat samler udvikling og drift i én enhed: »Nu får vi et nyt datadrevet skattevæsen«

Med en tjeneste som Lambda betaler man desuden udelukkende for det antal gange, som koden kører.

Funktionen skalerer automatisk til det antal trigger-events, der måtte komme, men koster altså ikke en krone, når funktionen ikke kører. Betalingsmodellen betyder dog også, at man skal sørge for at undgå uendelige loops i sin kode, siger Jeremy Edberg.

»Det kan koste kassen. Hvis ikke du opdager det, kan du virkelig få problemer,« forklarer han.

Nanoservice

Serverless bliver sommetider også kaldt for funktion-as-a-service eller nanoservices med reference til microservice-arkitekturen.

Ligesom microservice-arkitekturen, der opdeler et it-system i løst forbundne mini-applikationer, lader serverless-arkitekturen udviklere arbejde i små hold og opdatere de enkelte dele af systemet uafhængigt af hinanden.

Microservice kræver dog stadig administration, som er skrællet fra med serverless, understreger Jeremy Edberg.

Læs også: Træt af it-monolitten? Prøv en microservice

»Problemet er at du skal bygge en platform, som har alle de her forskellige moving parts. Det er noget, som modne virksomheder bruger op til 25 procent af tiden på, og de bygger alle den samme ting – en microservice-platform.«

»Serverless er også en microservice arkitektur, men platformen er der i forvejen,« fortsætter han.

Lock-in

Som alle andre teknologier er der også ulemper ved en serverless strategi. Softwareudvikler Martin Fowler, der har titel af Chief Scientist ved ThoughtWorks, bemærker på sin blog, at serverless-arkitekturen gør virksomheder betydeligt afhængige af leverandøren.

I værste fald kan det lede til et decideret vendor lock-in. Særligt fordi serverless er et relativt nyt koncept, må kunder forvente, at leverandører har implementeret serverless-funktioner forskelligt. Dertil kommer, at serverless-applikationerne som oftest er bygget tæt op ad database-infrastrukturen - som i eksemplet fra BMC.

Læs også: Pas på med cloud-leverandørerne: Du kan miste data og blive lænket fast

Alt det kan gøre det sværere at skifte platform, vurderer Martin Fowler.

Netop fordi serverless er nyt, er værktøjerne til debugging og deployment endnu ikke optimerede. Ulemperne opvejer dog ikke det forhold, at serverless-arkitektur kan gøre feedback loops i softwareudvikling signifikant mindre.

'Serverless-systemer er stadig spæde. Der vil være mange fremskridt i feltet over de kommende år, og det bliver facinerende at se, hvordan de passer ind i vores arkitektur-værktøjskasse,' skriver Fowler.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (6)
Claus Juul

Du opgiver noget kontrol, og skal til gengæld ikke tage dig af problemerne,« fortsætter han.

Så hvis server eller platformen ikke virker så køre dine funktioner bare videre..... Jeg tvivler.

Og fakta boksens beskrivelse ligger op til at forskellige kunders funktioner kan køre på samme server og derved også påvirke dine funktioner. Jeg ville nok ikke behandle mission critical data eller persondata på den måde.

Henning Kristensen

Du behøver såmænd ikke at tvivle på Serverless (eller Functions-as-a-service) som nogen lobby'er for at få det omdøbt.

Det er helt rigtigt at hvis "platformen" (som er fordelt over mange servere i mange racks i flere datacentre) eller den enkelte server sku' "dø", så dør din funktion.

Den dør også når der er gået max. 4 timer, og funktionen ka' også risikere at dø hvis du ikke bruger den og andre kunder har brug for kapaciteten. Jeg kender kun noget til Amazon's implementation.

Så der kører jo ikke Sharepoint inde i sådan en funktion, vel?

Der kører en lille, afgrænset opgave som kan gentages: Ta' en stump data fra en kø og konvertér den og gem resultatet i en tabel, generér en PDF, ta' en stump data fra en database og opdatér den i ElasticSearch, kør på minut-tal 05 og 10, svar på et webservice-kald... Små, gentagbare funktioner.

Platformen er delt mellem alle Amazon's kunder - og selvfølgeligt ka' kunderne ikke se hinandens data (under forudsætning af at hypervisoren opretholder isolation - det er ikke meget anderledes end tilliden til VMWare i et traditionelt datacenter).

Cloud-leverandøren sørger så for at få funktionerne afviklet. Skaleret, parallelt hvis muligt og kunden betaler per 0.1 sekund. Så man ka' sige at Cloud-leverandøren har en vis kommerciel interesse i at sørge for at funktionerne kører når de ka'.

Hver funktion ka' ikke åbne porte. Der er lukket for UDP, den kører under IAM sikkerhedsmodellen, så man kan præcis angive hvilke cloud-ressourcer den har adgang til. Og funktionen - memory, filsystem, the lot - dør altså efter max. 4 timer.

Du memory-scrubber næppe dine servere hver 4. time, vel? Og der er jo givetvis også et filsystem, hvor der måske også godt ku' overvintre en fil eller to?

Selv er jeg dér hvor jeg faktisk nok hellere så mine mission-critical persondata i et serverless system end i en traditionel server.

Henning Kristensen

Du har ret: Der er ikke tale om en hypervisor - men i stedet en (ikke nærmere specificeret) form for container virtualisering/sandboxing ovenpå en Amazon Linux, der kører under Xen.

Det aktuelle afviklingsmiljø på AWS er kendt.

Så det skal skal man selvfølgeligt vælge at opfatte som tilstrækkeligt sikkert og tilstrækkeligt isoleret. Præcis som mange vælger at tro på at Docker er tilstrækkeligt sikkert og tilstrækkeligt isoleret.

Det spændende (eller skræmmende, afhængig af synsvinklen) er så at udviklerne og forretnings-folkene har ret nemt ved at ta' det spring og stole på platformen.

Log ind eller Opret konto for at kommentere
Pressemeddelelser

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

Affecto has the solution and the tools you need

According to GDPR, you are required to be in control of all of your personally identifiable and sensitive data. There are only a few software tools on the market to support this requirement today.
13. sep 2017