Entscheiden, ob das serverlose Computing für Ihr Unternehmen geeignet ist

Abgeschlossen

Um Ihnen die Entscheidung zu erleichtern, ob serverloses Computing das Richtige für Sie ist, möchten wir zunächst erläutern, worum es bei serverlosem Computing eigentlich geht.

Was ist serverloses Computing?

Sie können sich serverloses Computing als Function as a Service (FaaS) oder einen Microservice vorstellen, der auf einer Cloudplattform gehostet wird. Ihre Geschäftslogik wird in Form von Funktionen ausgeführt, sodass Sie die Infrastruktur nicht manuell bereitstellen oder skalieren müssen. Der Cloudanbieter verwaltet die Infrastruktur. Ihre App wird automatisch je nach Last horizontal hoch- oder herunterskaliert. Azure bietet mehrere Möglichkeiten, diese Art von Architektur zu erstellen. Die beiden gängigsten Ansätze sind Azure Logic Apps und Azure Functions, die im Fokus dieses Moduls stehen.

Was ist Azure Functions?

Azure Functions ist eine serverlose Anwendungsplattform. Sie ermöglicht Entwicklern, Geschäftslogik zu hosten, die ohne Bereitstellung von Infrastruktur ausgeführt werden kann. Azure Functions bietet systeminterne Skalierbarkeit, und Ihnen werden nur die verwendeten Ressourcen in Rechnung gestellt. Sie können Ihren Funktionscode in der Sprache Ihrer Wahl schreiben, z. B. in C#, Java, JavaScript, Python und PowerShell. Paket-Manager wie NuGet und npm werden ebenfalls unterstützt, sodass Sie beliebte Bibliotheken in Ihrer Geschäftslogik verwenden können.

Vorteile einer serverlosen Computinglösung

Serverloses Computing ist eine hervorragende Möglichkeit zum Hosten von Geschäftslogikcode in der Cloud. Mit serverlosen Lösungen wie Azure Functions können Sie Ihre Geschäftslogik in der Sprache Ihrer Wahl gestalten. Sie erhalten eine automatische Skalierung, müssen keine Server verwalten, und die Abrechnung erfolgt nach Verbrauch und nicht nach reservierter Zeit. Es folgen einige andere Merkmale einer serverlosen Lösung, die Sie beachten sollten.

Vermeiden von übermäßiger Zuteilung von Infrastruktur

Nehmen wir an, Sie haben VM-Server (virtueller Computer) bereitgestellt und mit genügend Ressourcen zur Bewältigung Ihrer Spitzenlastzeiten konfiguriert. Bei geringer Last zahlen Sie möglicherweise für Infrastruktur, die Sie gar nicht nutzen. Serverloses Computing löst das Problem der übermäßigen Zuteilung durch automatisches zentrales Hochskalieren oder Herunterskalieren, und Ihnen wird nur die Nutzung in Rechnung gestellt, wenn Ihre Funktion Aufgaben verarbeitet.

Zustandslose Logik

Zustandslose Funktionen sind gute Kandidaten für serverloses Computing. Funktionsinstanzen werden bei Bedarf erstellt und zerstört. Wenn der Zustand erforderlich ist, kann er in einem zugeordneten Speicherdienst gespeichert werden.

Ereignisgesteuert

Funktionen sind ereignisgesteuert. Sie werden nur als Reaktion auf ein (Trigger genanntes) Ereignis ausgeführt, z. B. beim Empfang einer HTTP-Anforderung oder beim Hinzufügen einer Nachricht zu einer Warteschlange. Sie konfigurieren einen Trigger im Rahmen der Funktionsdefinition. Dieser Ansatz vereinfacht Ihren Code, weil Sie die Quelle der Daten (Trigger/Eingabebindung) und das Ziel (Ausgabebindung) deklarieren können. Sie müssen keinen Code zur Überwachung von Warteschlangen, Blobs, Hubs usw. schreiben. Sie können sich ausschließlich auf die Geschäftslogik konzentrieren.

Funktionen können in herkömmlichen Compute-Umgebungen verwendet werden.

Funktionen sind eine zentrale Komponente des serverlosen Computing, aber auch eine allgemeine Computeplattform für die Ausführung jeglicher Art von Code. Sollten sich die Anforderungen Ihrer App ändern, können Sie Ihr Projekt in einer Umgebung mit Server bereitstellen. Dies gibt Ihnen die Flexibilität, Skalierungen vorzunehmen, in virtuellen Netzwerken zu arbeiten und die Funktionen sogar vollständig zu isolieren.

Nachteile einer serverlosen Computinglösung

Serverloses Computing, wie es von Azure Functions im Verbrauchsplan angeboten wird, ist nicht immer die geeignete Lösung für das Hosting Ihrer Geschäftslogik. Nachstehend sind einige Merkmale von Funktionen aufgeführt, die Ihre Entscheidung zum Hosten Ihrer Dienste mit serverlosem Computing beeinflussen könnten.

Ausführungszeit

Standardmäßig beträgt das Zeitlimit von Funktionen fünf (5) Minuten. Dieser Wert kann mit maximal 10 Minuten konfiguriert werden. Wenn die Ausführung der Funktion mehr als 10 Minuten benötigt, können Sie sie auf einem virtuellen Computer hosten. Wenn Ihr Dienst darüber hinaus über eine HTTP-Anforderung ausgelöst wird, und Sie diesen Wert als HTTP-Antwort erwarten, wird das Timeout noch weiter auf 2,5 Minuten beschränkt. Es gibt jedoch auch eine Option namens Durable Functions, mit der Sie die Ausführung mehrerer Funktionen ohne Timeout orchestrieren können.

Ausführungshäufigkeit

Ein weiteres Merkmal ist die Ausführungshäufigkeit. Wenn Sie erwarten, dass Kunden Ihre Funktion fortlaufend ausführen, ist es ratsam, den Verbrauch zu schätzen und die Kosten für das Verwenden von Funktionen entsprechend zu berechnen. Es kann kostengünstiger sein, Ihren Dienst auf einem virtuellen Computer zu hosten.

Wenn Ihre Funktion skaliert kann nur eine Instanz einer Funktions-App alle 10 Sekunden erstellt werden, bis zu insgesamt 200 Instanzen. Denken Sie daran, dass jede Instanz mehrere gleichzeitige Ausführungen unterstützt. Es gibt also keine Beschränkung des Datenverkehrs, den eine einzelne Instanz verarbeiten kann. Da verschiedene Arten von Triggern unterschiedliche Anforderungen an die Skalierung haben, ermitteln Sie den Trigger Ihrer Wahl, und untersuchen Sie seine Grenzen.