Serverless-Funktionen erfreuen sich zunehmender Beliebtheit. Der Fokus auf den Funktionscode (und nicht auf die darunterliegende Serverinfrastruktur) sowie die dynamische Anpassung an den aktuellen Ressourcenbedarf sind einige Gründe dafür. Doch nicht selten orientieren sich erfahrene Java-Entwickler und -Architekten in diesem Zuge neu und schwenken auf alternative Programmiersprachen wie Node.js oder Python. Hintergrund ist die Abrechnung von Serverless-Funktionen basierend auf Ausführungsdauer (CPU-Zeit) und Speicherverbrauch. Java wird in diesem Zuge immer noch als speicher-hungrig und langsam (Cold starts) eingeordnet.
Der Vortrag zeigt auf, welche Stellschrauben bei Java in Verbindung mit Serverless-Anwendungen betrachtet werden sollten. Dabei werden sowohl Parameter der JVM (wie Heap Size, Garbage Collection und Tiered Compilation) betrachtet, als auch ein Überblick über Frameworks und Tools (wie GraalVM, Quarkus, Micronaut und Spring Native) gegeben. Zuletzt wird auf Möglichkeiten des CRaC (Coordinated Restore at Checkpoint) Projekts eingegangen.