Serverlösa applikationer blir allt mer populära. Dels är själva idén tilltalande rent ”arkitekturestetiskt”, dels går det att se reella fördelar i vissa sammanhang. Tanken är att dela upp applikationer i funktioner som körs på en molntjänst och därigenom slippa behöver planera för och hantera servrar, vare sig det handlar om fysiska eller virtuella.
Det är främst Amazons molntjänst Lambda och Microsofts Azure Functions som används för den här typen av lösningar, men även andra molnleverantörer hänger på. I takt med att användarna flockas till tjänsterna så utvecklas även verktygen kring dem, inte minst för att hålla ordning på stora mängder funktioner.
Klämmer inte skon någonstans? Jo, det är klart den gör. Det finns ett stort problem. Det gäller företag som migrerar existerande applikationer till serverlösa arkitekturer. Det är inget smart. Det är mycket smartare att bygga nya applikationer från grunden för en sådan här arkitektur.
Ett grundläggande problem är att det ännu inte finns stöd för så många programmeringsspråk på molntjänsterna för att köra serverlöst, även om många populära språk hanteras. Om man blir tvungen att konvertera en applikation från ett språk till ett annat så blir det dyrt och omständligt, och det tar tid.
Läs också: ”Ännu ett lönlöst försök med Windows på Arm”
Det är ungefär som att konvertera Cobolapplikationer som körs på stordatorer till Java eller något annat språk, för att köra dem på standardservrar. Fråga någon som har gjort det om det är besvärligt.
Men även om man inte behöver konvertera mellan språk så finns det mycket som talar emot att migrera existerande applikationer till serverlösa arkitekturer. Man behöver med största säkerhet lägga ner mycket arbete på att strukturera om en applikation som ska migreras. Frågan är om det inte ska ses som nyutveckling, utan fördelarna, som att slippa bry sig om teknikskulder.
Även om man lyckas ta sig igenom en omstrukturering för en serverlös arkitektur så är det tveksamt om man lyckas dra ordentlig nytta av den nya arkitekturen efter en migrering av en applikation. Som oftast blir den bästa arkitekturen den som anpassas efter omständigheterna från dag ett i projekten för att bygga den.
Att arkitekturlösningen blir lyckad i stora drag innebär inte att den blir problemfri. Den kan till exempel leda till svårlösta prestanda- och säkerhetsproblem. Återigen är det frågan om problem som är enklare att undvika vid nyutveckling, när man kan ta hänsyn till målmiljön redan från projektstarten.
Läs också: Trots alla larm – företagen struntar fullständigt i IPv6
Slutligen, även om man lyckas manövrera sig igenom språkkonverteringar, omstrukturering, prestanda, och säkerhetsproblem, och även om arkitekturlösningen blir lyckad, så är risken stor att investeringarna som krävts inte lönar sig. Det blir helt enkelt för dyrt att migrera till en serverlös arkitektur.
Migreringsproblem är naturligtvis inget som dykt upp i samband med serverlösa applikationer. Samma fenomen är känt från containrar, soa, client-server, etcetera i nästan all oändlighet.