FaaS (Function as Service)

Lernen Sie die einzigartigen Vorteile und Herausforderungen dieses Cloud-Computing-Servicemodells kennen und bewerten Sie die Eignung von FaaS für eine Vielzahl von Anwendungsentwicklungs- und Bereitstellungsmethoden.

FaaS Überblick:

  • FaaS ist eine Form des Cloud-Computing-Dienstes, bei dem der Anbieter von Cloud-Diensten (CSP) Eigentümer und Verwalter aller Aspekte der Datenverarbeitungsumgebung ist, einschließlich der Hardware-Infrastruktur, der Middleware, des Betriebssystems und sogar der Anwendungen.

  • FaaS kann eine kostengünstige Wahl für intermittierende oder unvorhersehbare Nutzungsmodelle sein, die durch kurze Aktivitätsschübe gekennzeichnet sind, da der Nutzer nur für die Ausführungs- oder Verarbeitungszeit bezahlt, die für die Ausführung nützlicher Arbeit erforderlich ist.

  • Zu den gängigen Anwendungen von FaaS gehören Datenverarbeitung, -validierung und -sortierung sowie Backend-Unterstützung für mobile und IoT-Anwendungen.

author-image

Von

Was ist FaaS?

In den letzten Jahren haben verschiedene Arten von Cloud Computing an Popularität gewonnen, da IT-Führungskräfte den Komfort, die Skalierbarkeit und die Kostenvorteile dieses flexiblen Ansatzes für das Infrastrukturmanagement schätzen gelernt haben.

Die Anbieter von Cloud-Diensten (CSPs) haben mit einer Vielzahl unterschiedlicher Cloud-Service-Modelle reagiert, die jeweils ein eigenes Leistungsniveau aufweisen. Eines der umfassendsten Angebote ist Function as a Service (FaaS).

Beim FaaS-Modell wird der Code vom Kunden in der Cloud ausgeführt, während der CSP den gesamten Backend-Betrieb von der Infrastruktur bis zu den Anwendungen hostet und verwaltet. Kunden sind nur für die eigenen Daten und die von ihnen ausgeführten Funktionen verantwortlich.

In der Regel zahlt der FaaS-Kunde nur für die tatsächliche Laufzeit, die für die Ausführung der „Funktion“ in Function as a Service erforderlich ist. Die Durchführung kann den Bruchteil einer Sekunde dauern, und das FaaS-System kann schnell skaliert werden, um mehrere Instanzen gleichzeitig aufzunehmen. Für die Zeit, die zwischen der Ausführung einer Funktion und der nächsten verstreicht, werden dem Kunden keine laufenden Kosten in Rechnung gestellt.

Die ereignisorientierte Preisgestaltung macht dieses Cloud-Servicemodell zu einer wirtschaftlichen Wahl für Entwickler, die nur gelegentlich oder sporadisch Daten verarbeiten müssen.

Zu den gängigen Anwendungen von FaaS gehören Datenverarbeitung, -validierung und -sortierung sowie Backend-Unterstützung für mobile und IoT-Anwendungen.

„Serverless Computing“, das auf Servern ausgeführt wird

Das FaaS-Modell wird aus Sicht des Kunden als „serverlos“ betrachtet, da der CSP die Cloud-Infrastruktur, die Plattform, das Betriebssystem und die Softwareanwendungen verwaltet, die alle für den Nutzer undurchsichtig sein können.

„Serverless Computing“ ist jedoch eine falsche Bezeichnung. Obwohl die Nutzer von FaaS die Hardware nicht verwalten oder gar sehen, läuft das FaaS-Modell auf Servern. Der CSP ist Eigentümer, Betreiber und Verwalter der Hardware, so dass die Kunden die Funktionen bei Bedarf in vollem Umfang nutzen können, ohne ihre eigenen Server kaufen oder warten zu müssen.

Der „Service“, der Gegenstand des großen „S“ in „FaaS“ ist, ist der Geschäftsdienst, wie der Cloud-„Dienst“-Anbieter. Der Service/Dienst ist dort die Einheit des Verbrauchs. Sie bezahlen nicht für den Server, sondern für das, was er hostet.”1

Was sind Microservices?

Microservices sind Bestandteil einer Anwendungsarchitektur, bei der ein Teil des Anwendungscodes einigermaßen unabhängig von anderen Funktionen arbeitet. Beim Entwickeln einer komplexen Anwendung isoliert der Microservices-Ansatz verschiedene Funktionen voneinander, so dass die gesamte Anwendung auch bei Ausfall eines Dienstes weiterarbeiten kann.

Eine Microservice-basierte Softwareentwicklungsumgebung kann im Rahmen einer serviceorientierten Architektur realisiert werden. Komplizierte Anwendungen werden als eine Sammlung von einzelnen Diensten erstellt und gepflegt, die über Anwendungsprogrammierschnittstellen (APIs) lose integriert sind. Serviceorientierte Softwareanwendungen und deren Microservice-Komponenten sind einfacher zu warten und zu aktualisieren, da einzelne Dienste gepatcht oder aktualisiert werden können, ohne die gesamte Anwendung herunterzufahren.

Viele Microservice-Module können in einer FaaS-Umgebung sowohl effizient entwickelt als auch bereitgestellt werden. In vielen Fällen werden die Mikrodienste containerisiert oder weiter isoliert, um die Kontrolle über jeden einzelnen Teil der größeren Anwendung zu verbessern.

Wie funktioniert Function as a Service?

Aus Sicht des Benutzers ist Function as a Service eine vorgefertigte Umgebung für die Softwareentwicklung oder -bereitstellung. Der CSP ist Eigentümer und Verwalter des gesamten technischen Stapels, einschließlich aller Hardware, Middleware und Software.

Bei anderen Modellen von Cloud-Diensten zahlt der Nutzer über einen bestimmten Zeitraum für den ständigen Zugang zu bestimmten virtuellen Maschinen oder Containern und für die von ihnen genutzten Ressourcen. Beim FaaS-Modell zahlen die Kunden nur für die Zeit und die Ressourcen, die zur Erstellung einer Funktion erforderlich sind.

Bei der Preisstruktur eines CSP werden beispielsweise die Dauer einer Funktion und ihre Ressourcenbereitstellung in “Gigabyte-Sekunden“ gemessen, aufgerundet auf die nächste Millisekunde.2.

Vorteile von FaaS

FaaS-Benutzer profitieren von einem Pay-as-you-go-Preismodell, das diese Art von Cloud Computing von anderen „as a Service“-Modellen unterscheidet. Der CSP ist Eigentümer und Verwalter des gesamten Technologiepakets, von der Hardware über die Anwendungssoftware bis hin zu den Tools, und überlässt den Nutzern nur die Verwaltung ihrer eigenen Daten und Funktionen.

Die Benutzer zahlen nur für die Zeit, in der Funktionen oder Dienste aktiv in der FaaS-Umgebung ausgeführt werden. Diese Aktivitätsschübe werden oft in Millisekunden gemessen. Der Benutzer zahlt nicht für die Leerlaufzeit zwischen diesen Bursts.

FaaS eignet sich am besten für Arbeitslasten, die unvorhersehbar und unregelmäßig sind.

Herausforderungen von FaaS

Bei längeren, ununterbrochenen Arbeitsbelastungen könnte ein anderes „as a Service“-Modell wirtschaftlicher sein als FaaS. Da die Nutzung von FaaS oft in Millisekundenschritten gemessen und bezahlt wird und FaaS viel teurer ist als ein typischer IaaS-Cloud-Dienst, kann die ständige Nutzung unerschwinglich werden.

FaaS-Implementierungen können auch schwierig zu debuggen sein, weil der Aufbau der Entwicklungsumgebung für den Benutzer undurchsichtig ist. Wenn umfassende Tests erforderlich sind, wäre ein anderes Cloud-Computing-Modell vorzuziehen, so dass der Nutzer eine Vielzahl von Standard-Ökosystemen festlegen und kontrollieren kann. Wenn die Softwaretechnologie jedoch ausgereift und völlig plattformunabhängig ist, kann FaaS eine gute Lösung sein.

FaaS Anwendungsfälle

Die On-demand-Funktion ist ein allgemeines Nutzungsmodell, das sich gut für eine FaaS-Umgebung eignet. In einer On-Demand-Einstellung werden die Funktionen schnell und intermittierend ein- und ausgeschaltet. Der FaaS-Benutzer zahlt nur für die Zeit, in der die Funktion aktiv ist, so dass das On-Demand-Modell eine wirtschaftliche Nutzung von FaaS darstellt.

Interaktive Websites sind ein Beispiel für ein On-demand-Nutzungsmodell, insbesondere in der Back-End-Ausführung. Der FaaS wird nur aktiviert, wenn ein Endnutzer auf die Website klickt und ein kurzes Ereignis auslöst. Herausgeber von Online-Medien und E-Commerce-Websites nutzen die Vorteile des FaaS-Modells wegen seiner Flexibilität, da die Nutzer nach einem unvorhersehbaren Zeitplan auf ihre Website zugreifen. Ein Unternehmen, das Streaming-Medien anbietet, kann zum Beispiel seine primäre Website mit ihren Benutzermenüs und Empfehlungen auf dem FaaS-Plan eines CSP verwalten.

Datenverarbeitungs- und -validierungsaufgaben können erfolgreich an ein FaaS-Modell angepaßt werden. Ein Anwendungsfall wäre eine Internet-of-Things-Installation (IoT), die Sensordaten in regelmäßigen Abständen zur Analyse in die Cloud schickt.

Softwareentwicklung kann auch in einer FaaS eingesetzt werden, sofern der Entwicklungworkload intermittierend ist.

Softwarebereitstellung kann sich gut in das FaaS-Modell für die Bereitstellung von Microservices einfügen Anbieter von Software as a Service (SaaS) können in der Anfangsphase, wenn schnell neue Nutzer hinzukommen und die Software in unregelmäßigen Abständen genutzt wird, auch ihren eigenen Betrieb auf FaaS-Basis durchführen.

Typen des Cloud-Computing

Cloud-Computing-Dienste können in zwei grundlegende Kategorien unterteilt werden: öffentlich und privat. Viele Unternehmen setzen eine Kombination der beiden Cloud-Service-Modelle in hybriden oder Multicloud-Konfigurationen ein.

Public Cloud

In einem Public-Cloud-Servicemodell zahlt der Benutzer für die Nutzung der CSP’s Datenspeicher und Netzwerkressourcen. Öffentliche Cloud-Dienste sind auf Abruf verfügbar, können also schnell bereitgestellt und als Betriebskosten mit geringen Vorabinvestitionen budgetiert werden.

Private Cloud

Eine private Cloud hingegen wird im eigenen Rechenzentrum des Unternehmens betrieben, was erhebliche Vorabinvestitionen in Hardware sowie eine laufende Verwaltung erfordert. Langfristig gesehen kann eine private Cloud in manchen Fällen wirtschaftlicher sein als öffentliche Cloud-Service-Modelle.

Die Vorteile einer privaten Cloud umfassen die lokale Kontrolle über geistiges Eigentum und die Einhaltung gesetzlicher Vorschriften sowie die Unterstützung geschäftskritischer Arbeitslasten und Anwendungen, die nicht ohne weiteres in die öffentliche Cloud migriert werden können.

Hybrid-Cloud

Mit einer Hybrid-Cloud genießen Unternehmen die Vorteile von Public- und Private-Cloud-Servicemodellen. Die Hybrid Cloud verbindet die öffentliche und die private Cloud, so dass ein Unternehmen Anwendungen und Daten zwischen den beiden Umgebungen austauschen kann. Hybride Clouds bieten Flexibilität, Skalierbarkeit, Kontrolle und potenzielle Kosteneinsparungen.

Multicloud

Bei einem Multi-Cloud-Modell nutzt das Unternehmen die Vorteile von Cloud Computing-Diensten verschiedener CSPs. Der Ressourceneinsatz wird in der Regel in Software verwaltet. Eine Strategie mit mehreren Clouds ist äußerst flexibel, da das Unternehmen seine Arbeitslasten ausgleichen und die Kosten optimieren kann, ohne an das Serviceangebot oder die Technologie eines einzelnen CSP gebunden zu sein.

Viele Organisationen spezifizieren Intel® Technologie-basierte Instanzen bei jedem CSP in der Multi-Cloud-Bereitstellung, um Konsistenz und Kompatibilität zwischen den Anbietern zu ermöglichen.

IaaS, PaaS und SaaS

Zahlreiche CSPs bieten ein Spektrum von Cloud-Computing „as a Service“-Optionen an, vom einfachen Zugang zu Server-Hardware bis hin zu umfassenden Optionen wie FaaS.

Infrastructure as a Service (IaaS)

Der bekannteste und grundlegendste Cloud-Computing-Dienst ist Infrastructure as a Service (IaaS). Beim IaaS-Modell besitzt und verwaltet der CSP die gesamte Hardware, einschließlich Server, Netzwerk und Speicher. Der Benutzer ist für den Software-Stack verantwortlich, einschließlich Abonnements, Lizenzen, Upgrades und Wartung für alle Betriebssysteme und Anwendungen sowie für die Daten und Funktionen des Unternehmens.

IT-Verantwortliche entscheiden sich für IaaS als Alternative zum Kauf und zur Wartung von lokaler oder kollokierter Hardware und den damit verbundenen Investitionskosten. IaaS ist ein flexibles Modell, das mit den Bedürfnissen des Benutzers skaliert werden kann, und die Gebühren des CSP werden im Budget des Unternehmens als Betriebskosten behandelt.

Platform as a Service (PaaS)

Platform as a Service (PaaS) ist ein Cloud-Service-Modell, das eine umfassendere Entwicklungs- und Bereitstellungsumgebung bietet. PaaS-Angebote eines CSP umfassen in der Regel die gesamte Hardware-Infrastruktur von IaaS sowie Bausteine, aus denen die Software-Plattform besteht: Betriebssystem, Middleware, Entwicklungstools und einige Arten von Datenmanagement- und Analysediensten.

PaaS-Benutzer verwalten weiterhin die Anwendungsschicht des Software-Stacks sowie ihre eigenen Daten und Funktionen, genau wie bei einer IaaS-Lösung.

Software as a Service (SaaS)

SaaS (Software as a Service) ist wahrscheinlich das am weitesten verbreitete Modell für Cloud-Computing-Dienste. Es gibt Beispiele für den Einsatz von SaaS in fast jedem Unternehmen, auch in solchen, die IaaS ablehnen und stattdessen eine robuste Serverinfrastruktur vor Ort besitzen und verwalten.

Einige Anwendungen, wie z. B. E-Mail, CRM, Produktivitätssuiten und Dateispeicher, werden bequem in einem SaaS-Modell bereitgestellt. Das Unternehmen zahlt für einen bestimmten Zeitraum Lizenzgebühren, und die Anwendungen werden in der Cloud zur Verfügung gestellt. Benutzer und IT-Teams vermeiden zeitaufwändige Downloads und Installationen und müssen sich nicht um die Verwaltung von Updates kümmern.

Intel® Technik für FaaS

In den meisten FaaS-Angeboten von CSPs sind die Plattformkomponenten nicht im Detail spezifiziert. In der Regel können Benutzer keine bestimmte Hardwaretechnologie für ihre virtuellen Maschinen anfordern. Gewisse Eigenschaften der Intel® Hardware, wie z.B. Intel® AVX-512- und AVX2-Beschleuniger tragen zur Optimierung der Leistung und zur Verbesserung der Benutzerzufriedenheit bei. Daher ziehen es einige CSPs vor, ihre FaaS-Serviceangebote auf Plattformen zu betreiben, die auf Intel®-Technologie basieren.

Obwohl Softwareentwickler in einer FaaS-Umgebung keine auf Intel-Technologie basierenden virtuellen Maschinen spezifizieren können, können sie den CSP um Zugang zu Intel-optimierten Code-Bibliotheken bitten. Manche dieser Bibliotheken sind in der Suite von Intel® oneAPI Toolkits und enthalten leistungssteigernden Code zur Beschleunigung komplexer mathematischer Routinen, Komprimierung, Verschlüsselung und anderer rechenintensiver Aufgaben. Derartige Optimierungen können dem Benutzer helfen, bei FaaS-Implementierungen Laufzeit und Geld zu sparen.

FAQs

Häufig gestellte Fragen

Nein, FaaS ist kein Microservice, aber die beiden Arten von Cloud Computing-Diensten sind miteinander verwandt. Microservices sind modulare Teile von komplexeren Anwendungen, die in einer FaaS-Umgebung entwickelt oder bereitgestellt werden können.

FaaS ist eine Form des Cloud-Computing-Dienstes, bei dem der Anbieter von Cloud-Diensten (CSP) Eigentümer und Verwalter aller Aspekte der Datenverarbeitungsumgebung ist, einschließlich der Hardware-Infrastruktur, der Middleware, des Betriebssystems und sogar der Anwendungen.

Sowohl PaaS- als auch FaaS-Angebote umfassen einerseits den Zugang zur Hardware-Infrastruktur und andererseits die Basis-Softwareplattform, einschließlich Betriebssystem, Middleware und einiger Tools und Dienste.

PaaS-Benutzer verwalten weiterhin die Anwendungsschicht des Software-Stacks, während FaaS-Nutzer nur für ihre eigenen Daten und Funktionen verantwortlich sind.

Ja, das FaaS-Modell gilt als serverlos, weil der CSP den gesamten Hardware- und Software-Stack verwaltet. Zwar wird FaaS auf Servern betrieben, aber die Hardware gehört dem CSP und wird von ihm verwaltet, so dass aus Sicht des Nutzers eine serverlose Datenverarbeitung vorliegt.