Definition: Azure Functions erlaubt Serverless Computing Was ist Azure Functions?

Azure Functions ist ein auf der Cloud-Computing-Plattform von Microsoft bereitgestellter Service. Er ist dem Servicemodell Function-as-a-Service zuzuordnen und ermöglicht es, einzelne oder miteinander verknüpfte Funktionen auszuführen, ohne sich um die zugrundeliegende IT-Infrastruktur zu kümmern.

Firmen zum Thema

Azure Functions erlaubt das Ausführen von Funktionen im Rahmen des Serverless Computing.
Azure Functions erlaubt das Ausführen von Funktionen im Rahmen des Serverless Computing.
(Bild: gemeinfrei (© Gerd Altmann) / Pixabay )

Azure Functions ist der Name für einen Cloud Service von Microsoft. Er wird auf Azure, der Cloud-Computing-Plattform von Microsoft bereitgestellt und lässt sich dem Servicemodell Function-as-a-Service (FaaS) zuordnen. Function-as-a-Service ist zwischen Backend-as-a-Service (BaaS) und Software-as-a-Service (SaaS) angesiedelt und zählt zum sogenannten Serverless Computing.

Ein zentrales Ziel der Azure Functions ist es, die Entwicklung und Bereitstellung von Anwendungen zu beschleunigen und zu vereinfachen, indem sich Programmierer keine Gedanken mehr über die zugrundeliegende IT-Infrastruktur machen müssen. Alles unterhalb der Geschäftslogik lässt sich als gegeben annehmen und wird von Microsoft über die Cloud bereitgestellt und nach Bedarf skaliert.

Bei den einzelnen Funktionen handelt es sich um Code-Elemente, die ereignisgesteuert ausgeführt werden. Sie liefern bestimmte Ergebnisse oder triggern andere Funktionen über Events. Die Funktionen lassen sich miteinander verbinden und verknüpfen. Aus der Gesamtheit der Funktionen und ihrer Verbindungen entstehen microservice-basierte Applikationen.

Weitere typische Anwendungsbereiche der Azure Functions sind die Verarbeitung großer Datenmengen oder das Sammeln von Daten und Verarbeiten von Ereignissen des Internets der Dinge (IoT). Die Azure Functions sind mit anderen Azure Services wie der Azure Cosmos DB, den Azure Mobile Apps oder dem Azure Service Bus kombinierbar. Sie stehen in Konkurrenz zu anderen FaaS-Produkten bekannter Cloud-Anbieter wie zu den Google Cloud Functions, IBM Cloud Functions, Oracle Cloud Fn oder Webbtask.io und Hook.io.

Grundsätzliches zum Serverless Computing und zu Function-as-a-Service (FaaS)

Für ein besseres Verständnis der Azure Functions zunächst einige grundlegende Informationen zum Serverless Computing und zum Servicemodell Function-as-a-Service (FaaS). Function-as-a-Service lässt sich im Cloud Computing zwischen den Servicemodellen Backend as-a-Service (BaaS) und Software-as-a-Service (SaaS) einordnen. Es zählt zum Konzept des sogenannten Serverless Computings. Grundidee dahinter ist es, die Entwicklung und Bereitstellung von Anwendungen von der zugrundeliegenden Infrastruktur zu entkoppeln. Programmierer müssen lediglich ihre Funktionen definieren und miteinander verknüpfen, ohne sich Gedanken über Server, Netzwerke, Speicher, Betriebssysteme, Laufzeitumgebungen, virtuelle Maschinen oder andere IT-Architekturkomponenten zu machen.

Alles unterhalb der Funktions- oder Programmlogik kann als vorhanden angenommen werden. Der Cloud-Anbieter kümmert sich um die Bereitstellung und den Betrieb der Infrastruktur. Programmierer erstellen den Funktionscode, laden ihn in die Cloud und definieren Bedingungen oder Ereignisse, die die Ausführung des der Funktionen triggern. Der Provider stellt die Ressourcen zur Ausführung des Codes zur Verfügung und gibt sie nach der Ausführung wieder frei. Die Leistungen für FaaS werden den Kunden in der Regel auf Basis der Ausführungszeit der Funktionen in Rechnung gestellt. Die Funktionen selbst sind in sich abgeschlossen und verhalten sich zustandslos. Sollen persistente Zustände und Daten vorgehalten werden, sind externe Datenbankmanagementsysteme oder Filesysteme einzubinden.

Die wichtigsten Merkmale der Azure Functions

Ein zentrales Merkmal der Azure Functions ist, dass sich serverlose Anwendungen mit Hilfe der in der Cloud bereitgestellten Funktionen realisieren lassen. Für die Funktionen einsetzbare Programmiersprachen sind Java und JavaScript, Python, Powershell oder C# und andere. Weitere Merkmale der Azure Functions sind:

  • ein nutzungs-basiertes Preismodell,
  • ereignisgesteuertes Triggern der Funktionen,
  • Schutz der durch HTTP-Ereignisse getriggerten Funktionen mit Hilfe der Authentifizierung über OAuth-Provider,
  • kombinierbar mit weiteren Diensten und SaaS-Produkten der Azure-Plattform,
  • Functions-Runtime frei auf GitHub verfügbar,
  • Abbildung zustandsbehafteter Abhängigkeiten über Durable Functions.

Die Kosten für Azure Functions

Für die Microsoft Azure Functions existieren drei verschiedene Tarife, die sich entsprechend der eigenen Anforderungen auswählen lassen.

Die drei Tarife sind:

  • 1. Der nutzungs-basierte Verbrauchsplan: die Azure Plattform stellt alle benötigten Ressourcen bereit und kümmert sich um die Ressourcenverwaltung. Ressourcen werden dynamisch basierend auf den Anforderungen der Funktionen hinzugefügt oder entfernt. Der Kunde zahlt abhängig von der Ausführungszeit seines Codes.
  • 2. Der App Service-Plan: Funktionen werden wie Web Apps behandelt. Funktionen lassen sich ohne weitere Kosten über einen vorhandenen App Service ausführen. Die Kosten sind im Vergleich zum Verbrauchsplan im Voraus besser abschätzbar.
  • 3. Der Premium Plan: im Premium Plan ist die Anzahl der direkt ansprechbaren Instanzen zur Ausführung der Funktionen im Voraus definiert. Azure stellt alle zusätzlichen Ressourcen zur Ausführung der Funktionen zur Verfügung. Die Abrechnung der Leistungen erfolgt auf Basis der bereitgestellten Instanzen.

Funktionskonzept und Bestandteile der Azure Functions

Im Gegensatz zu herkömmlichen Anwendungen sind mit Azure Functions und dem Serverless Computing die erstellten Anwendungsteile nicht mehr über Funktionsaufrufe miteinander verknüpft, sondern über Events. Die Ausführung der Funktionen lässt sich über verschiedene Ereignisse triggern. Mögliche Ereignisse sind beispielsweise eingehende HTTP-Requests, Veränderungen in Azure Blob Containern oder in Azure Queues oder Nachrichten des Service Bus. Über HTTP ist es zudem möglich, das Triggern über beliebige Ereignisse anderer SaaS-Produkte auszulösen.

Azure Functions unterstützt zur Programmierung von Funktionen verschiedene Sprachen wie Python, C#, Java, JavaScript, PHP und andere. Über den Open Source Packet Manager NuGet und den Node Package Manager für JavaScript lassen sich zahlreiche Libraries einbinden. Zur Verwaltung von Triggern und Ausführung von Log-Funktionen verwendet Azure Functions den Azure Storage. Hierfür ist ein Azure Storage Account mit Unterstützung von Storage-Services für Azure Blob, Queues und Tables notwendig.

Eine Besonderheit der Azure Functions sind die Durable Functions und die Durable Entities. Mit Durable Functions und Durable Entities bietet Azure Functions Stateful Services. Durable Functions haben im Gegensatz zu normalen Funktionen lange Laufzeiten von Minuten, Stunden, Tage oder länger. Der Status einer Durable Function bleibt selbst nach dem Entfernen des Funktions-Codes aus dem Speicher erhalten.

Vorteile durch den Einsatz der Azure Functions

Die Azure Functions und das Serverless Computing bieten zahlreiche Vorteile wie:

  • schnelle und einfache Entwicklung und Bereitstellung von Anwendungen,
  • Abbildung von Geschäftslogiken über die ereignisgesteuerte Verknüpfung von Funktionen möglich,
  • Entwickler müssen sich keine Gedanken über die zugrundeliegende IT-Infrastruktur machen,
  • die Abrechnung der Leistungen erfolgt nutzungs-basiert,
  • die Azure Cloud-Plattform skaliert automatisch entsprechend den Ressourcenanforderungen der Funktionen,
  • die Functions-Runtime ist Open Source und auf GitHub frei verfügbar; sie ist portierbar und überall lauffähig,
  • verschiedene Programmiersprachen sind einsetzbar,
  • einfaches Programmiermodell,
  • zusammen mit zahlreichen weiteren Azure Services und Produkten nutzbar,
  • große Auswahl an Hosting-Optionen,
  • leistungsfähige Entwicklungsumgebung mit Debugging-, Monitoring- und DevOps-Funktionen,
  • verschiedene Preismodelle verfügbar.

(ID:46965326)

Über den Autor