Funktionen als Dienstleistung (FaaS): Ein Anfängerleitfaden

Funktionen als Dienstleistung (FaaS): Ein Anfängerleitfaden

  • Cloud
6 Minuten Lesezeit Aktualisiert Dec 3, 2020

Auf einen Blick: Functions as a Service (FaaS) befähigt Entwickler, unabhängige Cloud-Funktionen zu erstellen und bereitzustellen, was die Skalierbarkeit und Flexibilität erhöht. Diese serverlose Architektur unterstützt verschiedene Programmiersprachen und kann durch Ereignisse ausgelöst werden, was die Kosteneffizienz fördert.

  • FaaS ermöglicht eine On-Demand-Ausführung ohne Hardwareabhängigkeit.
  • Zu den wichtigsten Vorteilen zählen Skalierbarkeit und Flexibilität der Entwickler.

Computer sind ziemlich einfach. Mit ihnen kann man Informationen speichern, Informationen verschieben und Dinge mit diesen Informationen tun. Dienste sind entstanden, um Menschen dabei zu helfen, alle drei Aktivitäten zu verwalten durch:

  • Rechenzentren
  • Netzwerksicherheit
  • Softwareanwendungen

Functions as a Service (FaaS) sind die Boutique-Bekleidungsgeschäfte der Softwarewelt. Jede Funktion führt eine sehr spezifische Operation aus. Hier erfahren Sie, was Sie über FaaS wissen müssen – und wie Sie sie nutzen können.

Was sind Funktionen?

Zunächst sollten wir Funktionen verstehen. Eine Funktion definiert ein Verfahren, wie ein Element in ein anderes umgewandelt werden kann. Die Funktion bleibt statisch, während die Variablen, die durch sie hindurchgehen, variieren können.

Das Aufkommen von Cloud-Diensten hat Functions as a Service ermöglicht – eines von vielen as-a-Service-Angeboten, die die Cloud ermöglicht hat.

Was sind Funktionen als Service?

Funktionen als Dienstleistung bieten Ihnen (und Ihrer Organisation) die Möglichkeit:

  • Erstellen Sie hochwertige, hochwertige Funktionen, die die Leute nicht selbst schreiben können.
  • Machen Sie diese Funktion oder Funktionsmenge zu einem Dienst, den die Menschen nutzen können.

Functions as a Service legt eine Funktion auf eine Cloud-Instanz, sodass sie für Entwickler, Anwendungen und andere Funktionen zur Verfügung steht. Wenn Sie eine Funktion in eine Cloud-Instanz schreiben, kann diese Funktion dann an jedem Computer bereitgestellt werden, ohne auf die Systemhardware oder -software des Nutzers angewiesen zu sein, damit der Dienst funktioniert.

Es ist, als würde man Essen aus einem Restaurant bestellen: Sie müssen sich nicht auf die Werkzeuge in Ihrer Küche verlassen, um ein köstliches Essen zuzubereiten.

Cloud-Funktionen ermöglichen:

  • Die Funktion, an den Ressourcen der Cloud zu arbeiten – nicht am Computer einer Person
  • Der Code, der in jeder beliebigen Sprache geschrieben werden sollte
  • Der Dienst ist überall mit Netzwerkverbindung zugänglich

Diese Funktionen werden im maschinellen Lernen immer häufiger, wo Zeit, Entwicklungsressourcen und Talente für ML-Modellierung sehr wertvoll sind und das Ergebnis ihrer Bemühungen zu einer Funktion führt, die sowohl schwer nachzubilden als auch für Menschen nützlich ist. Ein Beispiel für ein ML-FaaS ist Open-AIs GPT-3 – man kann darüber über eine REST-API zugreifen.

Wie FaaS funktioniert

Funktionen können über einen von mehreren Triggern zugänglich sein, die Sie beim Erstellen der Funktion definieren. Für die Verwendung in einer App können Funktionen bei Ereignissen in der Datenbank auftreten. Zum Beispiel kann eine Funktion ausgelöst werden, wenn ein neues Element in eine Datenbank geschrieben, geändert oder gelöscht wird.

Eine "On-Event"-Funktion kann eine E-Mail an einen Benutzer senden, wenn dessen Konto erstellt wird. Eine Funktion kann auch geschrieben werden, um eine Benachrichtigung an einen Benutzer oder eine Gruppe von Benutzern in einem Chatroom zu senden, wenn eine neue Nachricht in den Raum geschrieben wurde (äquivalent zu einem neuen Schreiben in der Datenbank).

Eine Funktion nimmt einige Eingaben auf und gibt eine Ausgabe zurück, daher müssen Sie, um die Funktion zu verwenden, wissen:

  1. Das Datenschema der Eingabe, damit die Funktion korrekt ausgeführt wurde, verarbeitet die Eingabedaten.
  2. Das Datenschema der Ausgabe, damit du weißt, worauf du von den Daten achten musst.

Funktionen variieren komplett je nach Anwendungsfall. Hier sind einige Beispiele:

  • Eine Funktion konnte eine Eingabe eines Bildes nehmen und ein Etikett mit Katze oder Hund ausgeben.
  • Eine Funktion könnte ein Thema eingeben und eine Wortfolge ausgeben.
  • Eine Funktion könnte eine YouTube-Video-URL aufnehmen und ein JSON mit allen Statistiken des Videos ausgeben.
  • Eine Funktion könnte als Eingabe ein Word-Dokument nehmen und ein formatiertes PDF ausgeben.

Die größeren Cloud-Anbieter verfügen über Softwareentwicklungskits (SDKs), die mit ihren Funktionen interagieren. Wenn Sie eine Funktion schreiben und anderen Unternehmen erlauben möchten, sie zu nutzen, können Sie die Funktion über einen Endpunkt bereitstellen, üblicherweise eine REST-API oder einfach eine URL.

Vorteile von FaaS

Die beiden größten Vorteile von FaaS sind die Gesamtskalierbarkeit und die Flexibilität für den Entwickler.

Skalierbarkeit

Eine Funktion in der Cloud (insbesondere mit Kubernetes-Architektur) kann so skalieren, dass sie so viele Nutzer anpasst, wie sie braucht. Sie skaliert auch unabhängig von anderen Diensten.

Wenn eine Suchfunktion plötzlich beliebter wird als eine Alphabetizer-Funktion, kann die Suchfunktion unabhängig vom Alphabetizer skalieren, wodurch der Dienst den Kunden angeboten werden kann und Kosten gespart werden, indem nur die Ressourcen der Suchfunktion selbst bezahlt werden.

Diese Skalierbarkeit bedeutet:

  • Du wirst nicht für ungenutzte Ressourcen bezahlen.
  • Es gibt weniger Logistik, wenn Cloud-Ressourcen Server verwalten.

Wahl des Entwicklers

FaaS erlaubt es Entwicklern , in jeder Programmiersprache zu arbeiten, die ihnen vertraut ist. Aufgrund des Container-Frameworks, in dem die meisten Entwickler arbeiten, musst du nicht das primäre Betriebssystem deines Zielkunden bestimmen und deine Entwicklerfähigkeiten darauf anpassen.

Das öffnet deinen Dienst auch für viel mehr Menschen, weil die Kommunikation nicht von OS zu Betriebssystem übersetzt wird.

Nachteile von FaaS

Nachteile von Funktionen als Service sind mangelnde Transparenz im Code und die Organisation der Codebasis.

Codierungstransparenz

Code in der Cloud zu testen ist noch nicht vollständig entwickelt. Fehler sind oft schwerer zu entdecken als das Schreiben und lokalen Ausführen von Code.

In den meisten Cloud-Systemen heute gibt es keine gute Möglichkeit, die Betriebsfähigkeit einer Funktion zu testen, bevor sie bereitgestellt ist. Dafür ist entweder:

  • Mehr Testzeit
  • Erfahrenere Entwickler, um Fehler vor der Bereitstellung zu erkennen

Codebasis-Organisation

Das Einrichten von Funktionen als Service schafft einen neuen Bedarf: Funktionen modular zu organisieren. Es kann schwierig sein, den Überblick über die Funktionen zu behalten, wenn man viele bereitgestellt hat.

Google hat kürzlich die Firebase Local Emulator Suite veröffentlicht, um Entwicklern zu helfen, ihre Apps lokal zu testen. Andere haben das wahrscheinlich auch getan. Das zeigt nur, dass sie versuchen, die Schnittstellen zu verbessern, in denen Entwickler mit dem Cloud-Computing-Framework interagieren.

Wie man FaaS erstellt und verwaltet

Funktionen können bei allen großen Cloud-Dienstleistern bereitgestellt werden. Da die Nutzer die Funktion anpingen müssen, kann der Dienstleister:

  • Erstelle Zugriffsbeschränkungen für die Funktion
  • Gebühr für seine Nutzung
  • Misse die Aktivität eines Nutzers (d. h. 20 Nutzungen pro Tag)
  • Haben Sie eine gute Vorstellung von den Kosten der Veranstaltung

Erstellung einer Funktion

Sie können eine Funktion aus der GUI erstellen oder eine über die Kommandozeile bereitstellen. Jeder der großen Cloud-Anbieter verbessert ihre GUI-Schnittstellen, um Nicht-Entwicklern Zugang zum Prozess zu ermöglichen.

Beim Erstellen einer Funktion haben Sie in der Regel fünf Optionen zur Auswahl und Definition:

  1. Funktionsname
  2. Region
  3. Abzugstyp
  4. Speicherzuweisung
  5. Auszeitwert

Dann benötigt die Instanz nur noch den Code. Hier ist er in GCP:

Verwaltung einer Funktion

Nachdem sie bereitgestellt wurde, kannst du eine Funktion aus einer Liste wie diese verwalten:

Sobald sie bereitgestellt ist, liefern Googles Überwachungstools viele Informationen über den Container der Funktion:

  • Anzahl der Invokationen
  • Hinrichtungszeit
  • Speichernutzung
  • Aktive Instanzen
  • Fehler
  • Protokolle
(Ein Funktionsaufrufdiagramm in GCP)

Und so sieht das Funktions-Dashboard in GCP aus:

Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.

Mehr aus Cloud

Abonnieren Sie The Brief

Mit der Registrierung für dieses Angebot bestätigen Sie, dass Sie die Datenschutzrichtlinie von BMC gelesen und zugestimmt haben.

Danke

Sie haben The Brief abonniert
Das Briefing umfasst die Mainframe- und Enterprise-Orchestrierung – BMC AMI und Control-M – sowie die Analystenforschung, Kundeneinsätze und Events in beiden Bereichen.