FaaS (Function-as-a-Service)
Schwarzer und blauer Hintergrund
Was ist FaaS (Function-as-a-Service)?

Eine Einführung in FaaS – einen Cloud-Computing-Dienst, der es Entwicklern von Cloud-Anwendungen erleichtert, Microservices-Anwendungen auszuführen und zu verwalten.

FaaS (Function-as-a-Service) ist eine Art Cloud-Computing-Dienst, mit dem Sie Code als Reaktion auf Ereignisse ausführen können, ohne die komplexe Infrastruktur, die normalerweise mit dem Erstellen und Starten von Microservices-Anwendungen verbunden ist.

Das Hosten einer Softwareanwendung im Internet erfordert typischerweise die Einrichtung und die Verwaltung eines virtuellen oder physischen Servers sowie die Verwaltung eines Betriebssystem und Web Server-Hosting Prozesse. Mit FaaS werden physische Hardware, Betriebssystem der virtuellen Maschine und Web-Server-Software-Management des Kunden automatisch von Ihrem Service-Provider ausgeführt. So können Sie sich ausschließlich auf einzelne Funktionen in Ihrem Applikationscode konzentrieren.

 

Relevante Produkte

IBM Cloud Functions

FaaS vs. Serverlos

Serverlos und Functions-as-a-Service  (FaaS) werden oft miteinander verschmolzen, aber die Wahrheit ist, dass FaaS eigentlich ein Teil von Serverless ist. Serverless ist auf jede Servicekategorie fokussiert , sei es berechnen , Speichern , Datenbank , Nachrichtenübermittlung , API-Gateways,  usw., wobei Konfiguration , Management und Abrechnung von Servern für den Endbenutzer unsichtbar sind. FaaS hingegen, obwohl vielleicht die zentralste Technologie in serverlosen Architekturen, konzentriert sich auf das ereignisgesteuerte Computing-Paradigma, bei dem Anwendungscode oder Container nur als Reaktion auf Ereignisse oder Anforderungen ausgeführt werden.

Vorteile von FaaS

FaaS ist ein wertvolles Tool wenn Sie effizient und kostenwirksam  Anwendungen auf die Punktewolke verlagern. Sie genießen u. a. diese Vorteile:

  • Konzentrieren Sie sich mehr auf Code, nicht auf Infrastruktur: Mit FaaS können Sie den Server in Funktionen unterteilen, die automatisch und unabhängig skaliert werden können, sodass Sie keine Infrastruktur betreiben müssen. So können Sie sich auf den App-Code konzentrieren und Sie können die Zeit zur Vermarktung dramatisch reduzieren.
  • Sie zahlen nur für die Ressourcen, die Sie verwenden, wenn Sie sie verwenden: Mit FaaS bezahlen Sie nur, wenn eine Maßnahme auftritt. Wenn die Maßnahme fertig ist, bleibt alles stehen – kein Code läuft, kein Server im Leerlauf, es fallen keine Kosten an. FaaS ist daher kosteneffizient, insbesondere für dynamische Workloads oder terminierte Aufgaben. FaaS bietet auch überlegene Gesamtbetriebskosten für Hochlastszenarien.
  • Führen Sie Scale-up oder Scale-down automatisch durch: Mit FaaS werden Funktionen automatisch , unabhängig und sofort nach Bedarf skaliert. Wenn die Nachfrage sinkt, führt FaaS automatisch einen Scale-down durch.
  • Holen Sie sich alle Vorteile der stabilen Cloudinfrastruktur: FaaS bietet inhärente Hochverfügbarkeit, da es über mehrere Verfügbarkeitszonen pro geografischer Region verteilt ist und ohne zusätzliche Kosten in einer beliebigen Anzahl von Regionen bereitgestellt werden kann.
Prinzipien und Best Practices

Es gibt mehrere bewährte Methoden, die Sie befolgen können, um die Verwendung von FaaS einfacher und effektiver zu gestalten:

  • Lassen Sie jede Funktion nur eine Aktion ausführen: FaaS-Funktionen sollten so konzipiert sein, dass sie eine einzelne Arbeit als Reaktion auf ein Ereignis ausführen. Machen Sie Ihren Codeumfang begrenzt, effizient und leicht, damit Funktionen schnell geladen und ausgeführt werden können.
  • Lassen Sie keine Funktion andere Funktionen aufrufen: Der Nutzen von FaaS liegt in der Isolation von Funktionen. Zu viele Funktionen erhöhen Ihre Kosten und entfernen den Nutzen der Isolation Ihrer Funktionen.
  • Verwenden Sie in Ihren Funktionen so wenig Bibliotheken wie möglich: Zu viele Bibliotheken können die Funktionen verlangsamen und machen sie schwerer zu skalieren.
Anwendungsfälle

Da es ermöglicht, Transaktionen einfach isoliert und zu skalieren, ist FaaS gut für hochvolumige und peinlich parallele Workloads geeignet. Es kann auch verwendet werden, um Backend-Systeme zu erstellen oder für Aktivitäten wie Datenverarbeitung, Formatkonvertierung, Codierung oder Datenzusammenfassung.

FaaS ist auch ein gutes Werkzeug für Web-Apps, Backends, Daten- / Stream-Verarbeitung oder zum Erstellen von Online-Chatbots oder Back-Ends für IoT-Geräte. FaaS kann Ihnen helfen, Drittdienste zu betreiben und zu verwenden. Wenn Sie beispielsweise die Entwicklung von Android-Apps in Betracht ziehen, können Sie einen FaaS-Ansatz verfolgen, um Ihre Kosten in Schach zu halten. Da Sie nur belastet werden, wenn sich Ihre App mit der Cloud verbindet, für eine besondere Funktion wie Stapelverarbeitung, können die Kosten erheblich niedriger sein als mit einem traditionellen Konzept.

FaaS kann auch die Rechenleistung dramatisch aufwerten. Zum Beispiel haben zwei Studenten kürzlich mit IBM-Ingenieuren zusammengearbeitet, um zu untersuchen, wie IBM Cloud Functions für Monte-Carlo-Simulationen  (mathematische Methoden zur Schätzung der zukünftigen Ergebnisse bestimmter schwer vorhersehbarer Ereignisse) zur Schätzung der Aktienkurse verwendet werden können. Monte-Carlo-Simulationen gelten als wichtige Hochleistungsrechnen-Arbeitslast . Die Kombination aus Monte Carlo und IBM Cloud Funktionen ermöglichte dem Team, Berechnungen auf einer massiven Skala auszuführen und erlaubte ihnen, sich auf die Geschäftslogik zu konzentrieren. Mit FaaS vollendete das Team eine ganze Monte Carlo Simulation in etwa 90 Sekunden mit 1.000 konkurrierenden Aufrufen. Im Vergleich dazu dauerte es 247 Minuten und fast 100% CPU-Auslastung, um den gleichen Fluss über einen Laptop mit vier CPU-Kernen auszuführen.

Um mehr Beispiele für FaaS- Verwendungsfälle zu sehen, lesen Sie "Eine Zusammenfassung der wichtigsten Vorteile von IBM Cloud Functions ."

FaaS vs. PaaS, Container und VMs

FaaS, PaaS (Platform-as-a-Service)Behälter, und virtuell Maschinen (VMs)  spielen alle eine kritische Rolle im serverlosen direkten Geschäftsumfeld. Da FaaS das zentralste und am meisten definierende Element des serverlosen Stacks ist, lohnt es sich zu untersuchen, wie sich FaaS von anderen gängigen Rechenmodellen auf dem heutigen Markt in Bezug auf Schlüsselattribute unterscheidet:

  • Bereitstellungszeit: Millisekunden, im Vergleich zu Minuten und Stunden bei den anderen Modellen.
  • Laufende Administration: Keine, verglichen mit einem gleitenden Maßstab von leicht bis schwer für PaaS, Container bzw. VMs.
  • Elastische Skalierung: Jede Aktion wird immer sofort und inhärent skaliert, verglichen mit den anderen Modellen, die eine automatische, aber langsame Skalierung bieten, die eine sorgfältige Abstimmung der Regeln für die automatische Skalierung erfordert.
  • .Kapazitätsplanung: Keine erforderlich, im Vergleich zu den anderen Modellen, die eine Mischung aus automatischer Skalierung und etwas Kapazitätsplanung erfordern.
  • Persistente Verbindungen und Zustand: Die eingeschränkte Fähigkeit, Verbindungen und Status beizubehalten, muss im externen Dienst/in der externen Ressource beibehalten werden. Die anderen Modelle können http nutzen, einen offenen Socket oder eine Verbindung für lange Zeiträume beibehalten und den Zustand zwischen den Aufrufen im Speicher speichern.
  • Wartung: Die gesamte Wartung wird vom FaaS- Anbieter ausgeführt. Dies ist auch wahr für PaaS; Container und VMs erfordern erhebliche Verwaltung, die Aktualisierung /managing in Betrieb Systemen, Container Images, Verbindungen usw
  • Hohe Verfügbarkeit (HA) und Notfallwiederherstellung (DR): Auch hier ist HA dem FaaS- Modell ohne zusätzlichen Aufwand oder zusätzliche Kosten inhärent. Die anderen Modelle erfordern Zusatzkosten und Management - Aufwand. Im Fall von VMs und Containern kann die Infrastruktur automatisch neu gestartet werden.
  • Ressourcennutzung: Ressourcen sind nie inaktiv – sie werden nur auf Anfrage aufgerufen. Alle anderen Modelle haben zumindest einige Grade von inaktiver Kapazität.
  • Ressourcenbeschränkungen: FaaS ist das einzige Modell, das Ressourcenbeschränkungen für Codegröße, gleichzeitige Aktivierungen, Arbeitsspeicher, Laufzeitlänge usw. aufweist
  • Granularität und Abrechnung: Pro Blöcke von 100 Millisekunden, verglichen mit der Stunde (und manchmal Minute) anderer Modelle.
Kubernetes /Knative und FaaS

Kubernetes und Knative sind eine Implementierung von " Klempnerarbeiten " hinter FaaS. Kubernetes  ist ein Open\-Source\- , Containerorchestrierung Tool, das kritisch auf die Verwaltung von Cloudanwendungen ausgelegt ist. Knative lässt Sie serverlos mit einem Kubernetes Cluster ausführen.

Die Kombination von Knative und Kubernetes bedeutet, dass Sie Kubernetes-Funktionen wie Überwachung, Sicherheit, Protokollierung und Authentifizierung nutzen und mit Knative-Vorteilen wie automatisiertem Container-Build, vollständiger Portabilität und arbeitsübergreifenden hybriden Umgebungen kombinieren können.

Entwickler dieser Technologie glaubten, dass Entwickler beim Erstellen von Cloud-Apps nicht zwischen serverlosen und Containern wählen müssen sollten. Ziel war es, die Verfügbarkeit und Konsistenz von Containern durch die leistungsstarke Skalierung und den Bedarfszugriff von serverlos zu erhöhen.

Das Video "Was ist Knative?“ bietet weitere Informationen.

FaaS und IBM

IBM Cloud Funktionen ist das FaaS- Produktangebot von IBM. IBM hat mit Kunden verschiedener Branchen zusammengearbeitet – darunter Finanzen , Automobilbau, Versicherungen, Fertigung usw., um Produktionsworkloads auf IBM Cloud Functions zu verarbeiten. ESPN Fantasy Football, das täglich mehr als 10 Millionen aktive Nutzer hat, verwendet IBM Cloud Functions für ihr Statistikdaten Dashboard und The Weather Underground (Teil of The Weather Channel) rendert alle ihre Radarkarten mit Cloudfunktionen. Diese und weitere Verwendungsfälle sind im Blogbeitrag Eine Zusammenfassung der wichtigsten Vorteile von IBM Cloud Functions." beschrieben.

IBM Cloud Functions basiert auf Apache OpenWhisk. OpenWhisks Kern ist ein open source Projekt unter den Anweisungen von der Apache Foundation, so kann jeder seinen Aktionscode als Aufbaublöcke zum Repository. Dies bedeutet, dass OpenWhisk ständig wächst und verbessert wird. OpenWhisk beschleunigt Anwendungsentwicklung , die es Ihnen ermöglicht, rasch Apps mit Aktionfolgen zu erstellen. FaaS-Angebote bieten auch einen besseren Einblick in die Leistungsdetails für Cloud-Funktionen.

IBM Cloud Functions enthält auch Zugriff auf kognitive Services wie IBM Watson APIs innerhalb des Ereignis-Trigger-Aktions- Workflows. Sie zahlen nur für das, was Sie tatsächlich nutzen. Kosten fallen nur an, wenn Sie mehr laden auf Cloudfunktionen, die Rechnungsstellung basiert auf der Zeit und dem Speicher, die erforderlich sind, um die Funktionen auszuführen.

Aufbau von Kenntnissen durch IBM Cloud Options-Kurse, wie "Deploying Function as a Service and IBM Cloud Functions", und eine Vielfalt anderer Kurse, die in den IBM Cloud Professional Developer role-based training and certification enthalten sind.

Sehen Sie sich dieses Video an, umweitere Informationen wie IBM Cloud Functions funktioniert:

Zugehörige Lösungen
IBM Cloud Functions

Hier erfahren Sie mehr über IBM Cloud Functions, eine mehrsprachige FaaS-Programmierplattform (Functions as a Service) auf Basis von Apache OpenWhisk.

Entdecken Sie IBM Cloud Functions