© Andrey Yurlov/shutterstock.com
Long-Running-Workflows als Serverless Functions in Azure

Durchhaltevermögen


Azure Functions bringen viele Eigenschaften mit, die einem die Arbeit erleichtern. Für länger laufende Prozesse sind sie allerdings weniger gut geeignet. Hier helfen Durable und Entity Functions weiter.

Serverless Functions [1] sind aus meiner Sicht eine großartige Erweiterung von Microsoft Azure, die sich nicht umsonst zunehmend größerer Beliebtheit erfreut. Die Gründe: Man muss sich weder um die Auswahl der richtigen Anzahl und Größe von Servern kümmern noch um die Konfiguration des Autoscalings. Schon gar nicht ist man damit beschäftigt, virtuelle Maschinen aktuell zu halten. APIs in der Cloud kommen durch die Serverless-Technologie wie der sprichwörtliche Strom aus der Steckdose. Auch dort steckt eine gewaltige Ingenieursleistung dahinter, immer die richtige Menge Strom zum richtigen Zeitpunkt anzubieten. So ist es auch mit Serverless Functions. Man verpackt seinen Code, übergibt ihn Microsoft und lässt es deren Problem sein, die notwendige Infrastruktur für die gerade anstehende Last bereitzustellen. Nach dem sogenannten Consumption Plan zahlt der Nutzer für das, was er tatsächlich verbraucht, und die Kosten fallen sogar auf null, wenn gerade niemand die Cloud-Software nutzt [2].

Die zweite Besonderheit von Azure Functions ist das Programmiermodell: Es ist Event-getrieben. Events können dabei einerseits die üblichen HTTP Requests sein, falls das zu entwickelnde API ein Web-API sein soll. Es gibt aber auch eine große Anzahl anderer Events, auf die man reagieren kann [3]. Hier einige Beispiele:

  • Eine Datei wird auf den Blob Storage hochgeladen.

  • Eine Datenänderung geschieht in Cosmos DB.

  • Eine Nachricht kommt von einem IoT-Gerät.

  • Über den Service-Bus kommt eine Nachricht von einem anderen Microservice.

  • Ein Timer informiert darüber, dass ein eingestellter Zeitpunkt erreicht wurde.

Das Konzept von Azure Functions passt daher perfekt, wenn man eine Software in Form lose gekoppelter Microservices aufbauen möchte.

Wozu Durable Functions?

Die klassischen Azure Functions haben zwei Eigenschaften, die man beim Design berücksichtigen muss. Erstens müssen sie ihre Aufgabe in relativ kurzer Zeit erledigen. Das Standard-Timeout sind fünf Minuten (Functions mit HTTP-Trigger müssen sogar in knapp vier Minuten antworten), bei Bedarf kann es auf bis zu zehn Minuten erhöht werden [4]. Zweitens sind Serverless Azure Functions stateless. Der Entwickler muss sich selbst um das Speichern von State kümmern, beispielsweise in anderen Azure-PaaS- oder Serverless-Diensten wie A...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang