Was ist Function as a Service (FaaS)?

10. Juli 2021

Was ist FaaS?

Function as a Service (FaaS) 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 dem Aufbau und Start von Microservices Anwendungen verbunden ist.

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. Diese Funktion ermöglicht es Entwicklern, sich ausschließlich auf einzelne Funktionen in ihrem Anwendungscode zu konzentrieren.

Luftaufnahme einer Autobahn

Bleiben Sie in der Cloud

Abonnieren Sie den wöchentlichen Think-Newsletter und erhalten Sie Tipps von Experten zur Optimierung von Multi-Cloud-Einstellungen in Zeiten von KI.

FaaS im Vergleich zu Serverless

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 oder API-Gateways, wo die Konfiguration, Verwaltung und Rechnungsstellung für Server für den Benutzer unsichtbar sind.

FaaS ist zwar vielleicht die zentralste Technologie in serverlosen Architekturen, konzentriert sich jedoch auf das ereignisgesteuerte Computing-Paradigma, bei dem Anwendungscode oder Container nur als Reaktion auf Ereignisse oder Anfragen ausgeführt werden.

Vorteile von FaaS

FaaS ist ein wertvolles Tool für eine effiziente und kostengünstige Anwendungsmigration in die Cloud. Hier sind einige weitere Vorteile:

  • Konzentrieren Sie sich auf Code anstatt auf die Infrastruktur: Mit FaaS können Sie den Server in Funktionen aufteilen, die automatisch und unabhängig skaliert werden können, sodass Sie sich nicht um die Verwaltung der Infrastruktur kümmern müssen. Mit dieser Funktion können Sie sich auf den App-Code konzentrieren und die Markteinführungszeit drastisch verkürzen.

  • Zahlen Sie nur für die Ressourcen, die Sie auch tatsächlich nutzen: Bei FaaS zahlen Sie nur, wenn eine Aktion stattfindet. Sobald die Aktion abgeschlossen ist, stoppt alles – es wird kein Code ausgeführt, es gibt keine Serverinaktivität, es fallen keine Kosten an. Daher ist FaaS insbesondere bei dynamischen Workload oder geplanten Aufgaben kostengünstig. FaaS bietet außerdem hervorragende Gesamtbetriebskosten für Szenarien mit hoher Auslastung.

  • Skalieren Sie automatisch nach oben oder unten: Mit FaaS werden Funktionen je nach Bedarf automatisch, unabhängig und sofort skaliert. Wenn die Nachfrage sinkt, skaliert FaaS automatisch wieder nach unten.

  • Nutzen Sie alle Vorteile einer robusten Cloud-Infrastruktur: FaaS bietet inhärente Hochverfügbarkeit, die über mehrere Verfügbarkeitszonen pro geografischer Region verteilt ist und ohne zusätzliche Kosten in beliebig vielen Regionen bereitgestellt werden kann.

FaaS-Prinzipien und Best Practices

Es gibt mehrere Best Practices, die Sie befolgen können, um die Bereitstellung von FaaS einfacher und effektiver zu gestalten:

  • Jede Funktion sollte nur eine Aktion ausführen: FaaS-Funktionen sollten so konzipiert sein, dass sie als Reaktion auf ein Ereignis nur einen einzigen Arbeitsschritt ausführen. Sorgen Sie dafür, dass sie Ihren Codeumfang begrenzt, effizient und schlank halten, damit Funktionen schnell geladen und ausgeführt werden können.

  • Funktionen sollten keine anderen Funktionen aufrufen: Der Wert von FaaS liegt in der Isolation von Funktionen. Zu viele Funktionen erhöhen Ihre Kosten und machen den Vorteil der Isolation Ihrer Funktionen zunichte.

  • Verwenden Sie in Ihren Funktionen so wenig Bibliotheken wie möglich: Die Verwendung zu vieler Bibliotheken kann Funktionen verlangsamen und ihre Skalierung erschweren.

FaaS-Anwendungsfälle

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 %.

FaaS vs. PaaS, Container und VMs

FaaS, PaaS (Platform-as-a-Service), Container und Virtual Machines (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:

  • Bereitstellungszeit: Millisekunden, im Vergleich zu Minuten und Stunden bei anderen Modellen.

  • Laufende Verwaltung: Keine, verglichen mit einer gleitenden Skala von leicht bis schwer für PaaS, Container und VMs.

  • Elastische Skalierung: Jede Aktion wird sofort und inhärent skaliert, im Gegensatz zu den anderen Modellen, die eine automatische – aber langsame – Skalierung bieten und eine sorgfältige Abstimmung der Regeln für Auto-Scaling erfordern.

  • Kapazitätsplanung: Keine erforderlich, im Gegensatz zu den anderen Modellen, für die eine Mischung aus automatischer Skalierung und Kapazitätsplanung nötig ist.

  • Persistente Verbindungen und Status: Eingeschränkte Fähigkeit, Verbindungen aufrechtzuerhalten, und der Status muss in externen Services oder Ressourcen beibehalten werden. Die anderen Modelle können http nutzen, einen Socket oder eine Verbindung über längere Zeiträume offen halten und den Status zwischen den Aufrufen im Hauptspeicher speichern.

  • Wartung: Der FaaS-Anbieter kümmert sich um die gesamte Wartung. Das gilt auch für PaaS. Container und VMs erfordern einen erheblichen Wartungsaufwand, der die Aktualisierung und Verwaltung von Betriebssystemen, Container-Images, Verbindungen und mehr umfasst.

  • Hohe Verfügbarkeit (High Availability, HA) und Disaster-Recovery (DR):  Auch hier ist die Hochverfügbarkeit im FaaS-Modell enthalten, und zwar ohne zusätzlichen Aufwand oder Kosten. Für die anderen Modelle sind mehr Kosten und Verwaltungsaufwand erforderlich. Sowohl bei VMs als auch bei Containern kann die Infrastruktur automatisch neu gestartet werden.

  • Ressourcennutzung: Ressourcen sind nicht ungenutzt – sie werden nur auf Anforderung aufgerufen. Alle anderen Modelle weisen zumindest ein gewisses Maß an ungenutzter Kapazität auf.

  • Ressourcenbeschränkungen: FaaS ist das einzige Modell mit Ressourcenbeschränkungen  für Codegröße, gleichzeitige Aktivierungen, Speicher, Lauflänge und mehr.

  • Granularität der Leistungsverrechnung und Rechnungsstellung: Pro Blöcke von 100 Millisekunden, im Vergleich zur Abrechnung pro Stunde (und manchmal Minute) bei anderen Modellen.

Kubernetes/Knative und FaaS

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.

Dank der Kombination von Knative und Kubernetes können Sie die Vorteile von Kubernetes-Funktionen wie Überwachung, Sicherheit, Protokollierung und Authentifizierung nutzen und diese mit den Leistungen von Knative wie dem automatisierten Containeraufbau, der vollständigen Portierbarkeit und der Arbeit in hybriden Umgebungen kombinieren.

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.

Weiterführende Lösungen
Cloud-Beratungsleistungen

Nutzen Sie unsere Cloud-Services, die auf unserer IBM Consulting Advantage-Plattform basieren, um Ihren Weg zur Hybrid Cloud zu beschleunigen und so die Kosteneffizienz, Produktivität und Nachhaltigkeit zu steigern und die Markteinführungszeit zu verkürzen.

Mehr über Cloud-Services
Hosting-Lösungen für dedizierte Server

Das dedizierte Server-Hosting von IBM bietet vollständige Isolierung, Kontrolle und Sicherheit für geschäftskritische Workloads mit anpassbaren Optionen.

Dedizierte Serverlösungen erkunden
IBM Cloud Virtual Server for VPC

IBM Cloud Virtual Server for VPC ist eine Familie von virtuellen Servern mit Intel x86, IBM Z und IBM LinuxONE, die auf IBM Cloud Virtual Private Cloud basieren.

Cloud Virtual Server erkunden
Machen Sie den nächsten Schritt

Stärken Sie Ihre Webpräsenz mit zuverlässigen und sicheren Webhosting-Lösungen von IBM Cloud. Von stark frequentierten Websites bis hin zu Unternehmensanwendungen bieten IBM Cloud Bare Metal Server Flexibilität, unbegrenzten Datentransfer und globale Reichweite, die auf Ihre Hosting-Anforderungen zugeschnitten sind.

Cloud-Webhosting von IBM erkunden Kostenloses IBM Cloud-Konto erstellen