Serverlösa funktioner är i dag en populär arkitekturmodell för vissa typer av tillämpningar, som enkla operationer i stor omfattning. Ett exempel är en enkel manipulation av många bildfiler.

Men i takt med att tekniken har blivit etablerad så har också invändningar dykt upp. Främst att man som användare lätt blir låst till olika leverantörers molntjänster för serverlösa funktioner. Exempel på sådana är Amazons Lambda och Microsofts Azure Functions.

Vad ska man göra åt det? En strategi kanske är att satsa på en öppen lösning, och sådana finns det några att välja mellan. Infoworld beskriver fyra stycken: Fission, Fn, Kubeless och Openwhisk.

Läs också: Därför är agila team dödsstöten för distansarbete

En av tankarna bakom de här projekten är att man ska kunna köra plattformarna där man vill, antingen på någon molnplattform eller på egna servrar. Så här beskriver Infoworld Fission och Fn:

Fission

Den här lösningen från Platform9 bygger på standardcontainrar som körs med Kubernetes. En funktion ”dras in” i en container och kan där hantera förfrågningar från en webbserver som redan körs i containern.

Skärmpdump
Ett snabbt exempel på hur en enkel funktion görs till en container via kommandoraden i Fission.

Det finns stöd för till exempel Node (Javascript), Python och Go, samt även för PHP, Dotnet, Ruby och Perl. Och det går även att använda andra språk om man anstränger sig lite. Det som krävs är att http-förfrågningar ska kunna hanteras. Fast det går även att använda andra anropsmekanismer.

Den största fördelen med Fission är att standardmässiga containrar hanteras dynamiskt på ett smidigt sätt.

Läs också: USA har återtagit ledningen – Summit är världens mest kraftfulla superdator

Fn Project

Fn Project är Oracles lösning för serverlösa funktioner. De mest populära språken hanteras, liksom standardiserade Dockercontainrar. Fn Project fungerar bäst med Java, vilket inte är så konstigt med tanke på att Oracle äger rättigheterna till den plattformen. Men som Oracle beskriver det så är det enda ”kravet” (dependency) användning av Docker.

Skärmdump
Experiment grafiskt gränssnitt i Fn. Ett antal olika funktioner har här länkats samman till ett arbetsflöde.

En intressant funktion är möjligheten att köra kod avsedd för Amazons Lambda, men det gäller bara själva koden i funktionerna. Det finns alltså inga automatiska ersättare för de Amazontjänster som ofta anropas av Lambdakod.

Det finns mallar för Go, Java, Python, Ruby och Node. De bygger på att man skriver funktioner som tar en sträng som en parameter och som returnerar en sträng. Känslan är att det är enkelt att jobba med Fn.