FaaS oder Function-as-a-Service ist ein Cloud-Computing-Service, mit dem Kunden Code als Reaktion auf Ereignisse ausführen können, ohne die komplexe Infrastruktur verwalten zu müssen, die normalerweise mit der Entwicklung und Einführung von Microservice-Anwendungen einhergeht.
Das Hosten einer Softwareanwendung im Internet erfordert in der Regel die Bereitstellung und Verwaltung eines virtuellen oder physischen Servers sowie die Verwaltung eines Betriebssystems und von Webserver-Hosting-Prozessen. Im Fall von FaaS wird die Verwaltung der physischen Hardware, des Betriebssystems der virtuellen Maschine und der Webserver-Software automatisch vom Cloud-Service-Provider übernommen. Somit können sich Entwicklungsteams ausschließlich auf einzelne Funktionen in ihrem Anwendungscode konzentrieren.
Serverless und Function-as-a-Service (FaaS) werden oft miteinander verwechselt. Tatsächlich lässt sich FaaS als Untergruppe von Serverless definieren.
Serverless hat jede Servicekategorie zum Fokus, sei es Rechenleistung, Speicherung, Datenbank, Messaging, API-Gateways usw., wo Konfiguration, Verwaltung und Rechnungsstellung für Server für den Endbenutzer unsichtbar sind.
FaaS hingegen ist zwar vielleicht die zentralste Technologie in serverlosen Architekturen, hat jedoch das ereignisgesteuerte Computing-Paradigma zum Fokus, bei dem Anwendungscode oder Container nur als Reaktion auf Ereignisse oder Anforderungen ausgeführt werden.
FaaS ist ein wertvolles Tool für die effiziente und kostengünstige Migration von Anwendungen in die Cloud. Im Folgenden sind einige Vorteile aufgeführt, die FaaS unverzichtbar machen:
Es gibt mehrere Best Practices, die Sie befolgen können, um die Bereitstellung von FaaS einfacher und effektiver zu gestalten:
Da Transaktionen einfach isoliert und skaliert werden können, eignet sich FaaS für hochgradig parallele Workloads mit hohem Volumen. Die Lösung kann auch zur Erstellung von Backend-Systemen oder für Aktivitäten wie Datenverarbeitung, Formatkonvertierung, Codierung oder Datenaggregation verwendet werden.
FaaS ist auch ein gut geeignetes Tool für Webanwendungen, Backends, Daten-/Stromverarbeitung sowie für die Erstellung von Online-Chatbots oder -Backends für IoT-Geräte. FaaS kann Ihnen bei der Verwaltung und Nutzung von Services anderer Anbieter helfen. Wenn Sie beispielsweise über die Entwicklung einer Android-App nachdenken, können Sie einen FaaS-Ansatz wählen, um Ihre Kosten im Rahmen zu halten. Da Ihnen nur Kosten berechnet werden, wenn Ihre App für eine bestimmte Funktion wie die Stapelverarbeitung eine Verbindung mit der Cloud herstellt, kann dies im Vergleich zu einem herkömmlichen Ansatz die erheblich günstigere Vorgehensweise sein.
FaaS kann auch die Rechenleistung erheblich steigern. So haben zwei Studenten kürzlich gemeinsam mit IBM Ingenieuren erforscht, wie sich IBM Cloud-Funktionen für Monte-Carlo-Simulationen (mathematische Methoden zur Abschätzung der zukünftigen Ergebnisse bestimmter schwer vorhersehbarer Ereignisse) nutzen lassen, um Aktienkurse abzuschätzen. Monte-Carlo-Simulationen gelten als wichtiger leistungsfähiger Computing-Workload. Die Kombination aus Monte Carlo und IBM® Cloud Functions ermöglichte es dem Team, Berechnungen in großem Umfang durchzuführen und die Geschäftslogik in den Fokus zu stellen. Mit FaaS konnte das Team eine komplette Monte-Carlo-Simulation mit 1.000 gleichzeitigen Aufrufen in etwa 90 Sekunden abschließen. Im Vergleich dazu dauerte derselbe Ablauf auf einem Laptop mit vier CPU-Kernen 247 Minuten bei einer CPU-Auslastung von fast 100 %.
Weitere Beispiele für FaaS-Anwendungsfälle finden Sie unter „A Recap of the Key Advantages Offered by IBM Cloud Functions“ (Zusammenfassung der wichtigsten Vorteile von IBM® Cloud Functions).
FaaS, PaaS (Platform-as-a-Service), Container und virtuelle Maschinen (VMs) spielen alle eine entscheidende Rolle im serverlosen Ökosystem. Da FaaS das zentralste und in höchstem Maße definitorische Element des Serverless-Stacks ist, lohnt es sich zu untersuchen, wie sich FaaS in den wichtigsten Merkmalen von anderen aktuell gängigen Rechenmodellen auf dem Markt unterscheidet:
Kubernetes und Knative sind eine Implementierung der „Klempnerarbeit“ hinter FaaS. Kubernetes ist eine Open-Source-Plattform für die Containerorchestrierung, die für die Verwaltung von Cloudanwendungen von entscheidender Bedeutung ist. Knative macht das serverlose Arbeiten innerhalb eines Kubernetes-Clusters möglich.
Die Begründer dieser Technologie waren davon überzeugt, dass Entwicklungsteams bei der Erstellung von Cloud-Anwendungen nicht zwischen Serverless und Containern wählen müssen. Das Ziel bestand darin, die Verfügbarkeit und Konsistenz von Containern mit der leistungsstarken Skalierung und dem On-Demand-Zugriff von Serverless zu erweitern.
Sehen Sie sich dieses Video an, um mehr über Knative zu erfahren:
Führen Sie Container-Images, Stapeljobs oder Quellcode als serverlose Workloads aus – ohne Größenanpassung, Bereitstellung, Vernetzung oder Skalierung.
Nutzen Sie diese FaaS-Programmierplattform (Functions-as-a-Service), um schlanken Code zu entwickeln, der bei Bedarf skalierbar ausgeführt wird.
Serverless ist ein Modell für die Entwicklung und Ausführung von Cloud-Anwendungen, mit dem Entwicklungsteams Anwendungscode erstellen und ausführen können, ohne Server oder Backend-Infrastruktur bereitstellen oder verwalten zu müssen.
Container sind ausführbare Softwareeinheiten, die Anwendungscode zusammen mit seinen Bibliotheksabhängigkeiten als Paket enthalten und überall ausgeführt werden können, sei es auf dem Desktop, auf herkömmlicher IT oder in der Cloud.
PaaS oder Platform-as-a-Service bietet eine vollständige, flexible und kostenwirksame Cloud-Plattform für die Entwicklung, Ausführung und Verwaltung von Anwendungen.