Serverlösa applikationer är en av de starkaste trenderna inom systemutveckling just nu. Den går ut på att skriva programkod i korta funktioner som körs var för sig på en molntjänst, i stället för stora applikationer som innehåller all kod.
Amazon var först ut med serverlösa applikationer, med molntjänsten Lambda. Men Microsoft har hängt på med molntjänsten Azure Functions. Och nu breddar Microsoft begreppet ”serverlöst” rejält. Det gör med ett tillägg som kallas orkestreringsfunktioner (orchestrator functions). Det är en nyhet som har funnits i förhandsversion sedan i somras. Nu berättar Infoworld att den ingår i den senaste uppdateringen av Azure Functions.
Läs också: Serverlöst blir lätt vettlöst om du inte tänker till
Man kan beskriva orkestreringsfunktioner översiktligt på, åtminstone, två sätt. För det första tillför de hantering av tillstånd (states) i en miljö som till sin natur är tillståndslös. För det andra gör orkestreringsfunktioner att man kan skapa lösningar på Azure Functions som mer påminner om traditionella applikationer. De två aspekterna hänger naturligtvis ihop.
Rent konkret handlar det om att koppla ihop flera funktioner i ett arbetsflöde. Man kanske skulle kunna kalla det för en transaktion. Det går att pausa körningen, med bibehållen tillståndsinformation, till och med om instansen (den virtuella maskinen) som en funktion körs på startas om.
Det går att anropa andra funktioner, både synkront och asynkront. Utdata från en orkestreringsfunktion kan sparas i lokala variabler. Microsoft framhäver att det inte behövs några scheman, till exempel definierade med Json, för att definiera arbetsflöden som en fördel. Allt skrivs med vanlig kod.
En allmän beskrivning av användningsområdet för orkestreringsfunktioner är att ”förenkla komplexa tillståndsberoende koordineringsproblem i serverlösa applikationer”.
Läs också: Nu kommer Java till Microsofts molntjänst för serverlösa appar
Orkestreringsfunktioner ger så klart väldigt många nya möjligheter vad gäller att bygga serverlösa applikationer. Frågan är om det fortfarande handlar om samma typ av arkitektur som avsikten var från början med den här typen av lösningar.
För närvarande är orkestreringsfunktioner tillgängliga i språket C#. Man får anta att stödet kommer att utökas till de språk som hanteras på Azure Functions.