SlideShare ist ein Scribd-Unternehmen logo
1 von 1
Downloaden Sie, um offline zu lesen
Function as a Service
Die Evolution hin zu Serverless-Architekturen Inhaltliche Entwicklung: Prof. Dr. Nane Kratzke, Technische Hochschule Lübeck, Mönkhofer Weg 239, 23562 Lübeck
Dr. Josef Adersberger, QAware
Serverless Architektur
Center of Excellence
FaaS – Function-as-a-Service
• FaaS ermöglicht es Backend-Code auszuführen, ohne sich über
Infrastruktur/Dimensionierung Gedanken machen zu müssen.
• FaaS Funktionen können in vielen Sprachen wie JavaScript,
Python, Java, Clojure und Scala entwickelt werden.
• Funktionen werden von Events getriggered (z. B. Dateiänderungen,
Zeitereignisse, Messages, HTTP Requests).
• Eine horizontale Skalierung der Funktionsinstanzen erfolgt
vollautomatisch durch den Provider.
• Funktionen sind zustandslos. Wird ein Zustand benötigt, muss
dies mittels Stateful Services realisiert werden (z. B. Redis).
• Funktionen haben Timeouts. Läuft ein Timeout ab, wird die Funk-
tionsausführung abgebrochen (bei AWS z. B. nach max. 5 Minuten).
• Antwortzeiten hängen von diversen Faktoren ab. Z. B. muss
der Provider bei seltenen Events oder Sudden Spikes weitere
Instanzen starten.
­
Vorteile
Timesharing der Infrastruktur ermöglicht Kostenvorteile
Vereinfachter Betrieb
Automatische Skalierung auf Basis des Request-Aufkommens
Reduzierung von Entwicklungs- und Deployment-Aufwänden
Verbessertes Time-to-Market
Einfaches Unit-Testing
Ggf. sogar „grüneres“ Computing durch bessere
Ressourcenauslastung
­
Nachteile
FaaS Dienste anfällig für Vendor Lock-In
FaaS ist (noch) nicht standardisiert
Sicherheitsbedenken (u.a. keine gut abgrenzbare Server-side
Applikation; dadurch größere Angriffsoberfläche)
Fehlender In-Server-State
Begrenzte und ggf. variierende Ausführungsdauern
Ungeeignet für lang laufende Berechnungen und bei sehr
hohen Echtzeitanforderungen
Aufwändigeres Integration-Testing
Use Cases
FaaS Frameworks
Beispielhafte Einsatzszenarien für Function-as-a-Service:
Event Handler
Eine Funktion reagiert auf ein bestimmtes Ereignis, oft aus einem IoT-Szenario.
Beispiel: Die Funktion wird ausgeführt, wenn ein bestimmter Sprachbefehl von
Amazon Alexa erkannt wird.
Integration Layer
Eine Funktion übersetzt einen API-Aufruf von außen in eine Reihe an Backend-
Aufrufen im Hintergrund. Das ist im Prinzip die Cloud-native Variante eines
ESBs (Enterprise Service Bus).
Beispiel: Die Funktion nimmt einen REST-Aufruf entgegen, holt Daten aus einem
SAP- und DB-System und gibt die Ergebnisse zurück.
Dekomposition bis auf Funktionsebene
Eine Anwendung soll nicht nur bis auf Komponentenebene (Microservices)
sondern bis auf Funktionsebene (Nanoservices) in Laufzeiteinheiten aufgeteilt
werden.
Beispiel: Die Funktion „Warenkorb bestellen“ wird als FaaS-Funktion implemen-
tiert, da sie gut isoliert sein sollte, sehr stark schwankend in ihrer Last ist und
häufig neu deployed wird.
Stream-orientiertes ETL
Eine Funktion transportiert einen Strom an Daten von einer Datenquelle hin zu
einer Datensenke.
Beispiel: Die Funktion wird bei jeder Message in einer Queue aufgerufen und
schreibt diese Message dann in eine Datenbank.
Wo sind all die Server hin?
Typische technische Auswahlkriterien:
•  Was sind Serverless Architekturen?
• Serverless Architekturen beziehen sich auf Applikationen,
die Drittanbieter-Dienste einbinden und deren eigener Code als
zustandslose FaaS Funktionen realisiert sind.
• Weniger „Always-On“ Komponenten erforderlich
• Kostenreduktion bis zu 70% im Vergleich zu IaaS.
• Steigende Abhängigkeiten zu FaaS Providern und Drittanbieter-Diensten
• Drittanbieter-Dienste werden auch Backend as a Service (BaaS)
genannt (Beispiel: Auth0 für Authentikationsleistungen).
• Serverless Applikationslogik wird mittels statusloser Funktionen
auf FaaS-Plattformen betrieben (Beispiel: AWS Lambda).
• FaaS Funktionen werden auch als Nanoservices bezeichnet
(in Abgrenzung zu Microservices)
In nicht-virtualisierten Rechenzentren wurden Applikationen
häufig auf Dedicated Servern betrieben. Diese Server waren
für den Workload häufig überdimensioniert.
Aber auch Container fordern einen Anteil der Hostressourcen
(CPU, Memory) kontinuierlich an. Die Ressourceneffizienz
kann also weiter erhöht werden, wenn Containern nur dann
Ressourcen zugeteilt werden, wenn diese auch Requests
bearbeiten. Dieses Timesharing wird durch FaaS runtime
environments realisiert.
Machine-Virtualisierung wird genutzt um Applikationen auf
einem physischen Server zu konsolidieren. Die dafür erfor-
derlichen Deployment Units (Virtual Machine Images) sind
allerdings sehr groß.
Die Auslastung kann mittels Containern (z.B. Docker)
weiter erhöht werden. Container ermöglichen es mehrere
Applikationen als Self-Contained Deployment Units pro
(virtueller) Maschine zu betreiben, solange die Applikationen
dasselbe Betriebssystem teilen. Container starten schneller
als virtuelle Maschinen und Container Images sind kleiner.
Open Source FaaS
Sprachen Welche Programmiersprachen und Frameworks sollen unterstützt werden?
Event-Arten
Auf welche Event-Arten hin kann eine Funktion ausgeführt werden
(z. B. REST-Aufruf oder MQTT Message)
Latenzen
Welche Latenzen entstehen beim Deployment, beim Start und bei Aufruf
einer Funktion?
Services
Welche Services und Schnittstellen (APIs) stehen den Funktionen zur
Verfügung?
Tooling Welche Werkzeuge und Werkzeug-Integrationen stehen zur Verfügung?
Runtimes
Welche Laufzeitumgebungen werden unterstützt (z.B. Kubernetes, DC/OS,
CloudFoundry), welche API-Gateways?
Zustand Kann Zustand über Funktionsaufrufe hinweg gespeichert werden?
Workflows Können einzelne Funktionsaufrufe zu einem Workflow orchestriert werden?
Auto-Skalierung
Können die Knoten, auf denen das FaaS Framework läuft, bei Bedarf
automatisch skaliert werden?
Diagnostizierbarkeit
Welche Möglichkeiten stehen zur Verfügung, um die Ausführung von Funktio-
nen zu Überwachen und Fehler zu finden (auch nach Ende der Ausführung)?
Bare Metal Server
VM
A
VM
B
Bare Metal Server
VM
Container Engine
A
VM
B
Bare Metal ServerBare Metal Server
A B
Bare Metal Server
VM
Container Engine Time-Sharing
FaaS Runtime
A
B
…
…
A
…
VM
41 32
Die Serverless Evolution
Gängige Frameworks:
Native mobile
Applikation
Produkt-Datenbank
Bestell-Datenbank
Authentifizierungs-Service
Dieselbe Applikation als:
API Gateway
Bestell-Funktion
Such-Funktion
1
3
5
2 6
4
Querschnittslogik, wie z.B.
Authentifizierungslogik, kann
an Drittanbieter-Dienste delegiert
werden (z.B. Auth0).
1
Anteile der Applikations-
logik wandern in eine Client-
Applikation (z.B. eine native
Mobile-App oder eine Single-
Page-Web-Applikation).
2
Anwendungslogik kann auch im
Backend in Form einzelner Funktionen
gehalten werden. Insbesondere dann, wenn
diese Logik über mehrere Client-Arten
hinweg genutzt wird, sicherheitskritisch
und berechnungsintensiv ist oder auf große
Datenmengen zugreift (z.B. Such- oder
Klassifikationsfunktionen)
4
Aus Gründen wie z. B. Sicherheit oder um
Drittanbieter-Dienste oder Datenbanken
anzubinden, kann Funktionalität im „Server“
behalten werden (also serverless bereitge-
stellt werden).
5
Ein API Gateway ist ein Web Server der HTTP Requests an zugehörige
FaaS Funktionen oder Drittanbieter-Dienste weiterleitet.
6
Client-Applikationen können auf
Data Stores per API direkt zugreifen.
3
Klassische 3-Tier
Architektur (z. B.
E-Commerce-App)
Client (Browser)
Applikations-Server
Relationale-Datenbank
Für 3-Tier Architek-
turen müssen Clients
nicht sonderlich „intel-
ligent“ sein (es reichen
Browser).
Was ändern Server-
less Architekturen nun
an diesem Setting?
Public Cloud FaaS
• Amazon Lambda
• Azure Functions
• Google Cloud Functions
• Fission (Platform9)
• Fn (Oracle)
• Kubeless (Bitnami)
• OpenFaaS
• OpenWhisk (IBM)
• Riff (Pivotal)
IT-Probleme lösen. Digitale Zukunft gestalten.

Weitere ähnliche Inhalte

Mehr von QAware GmbH

Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo QAware GmbH
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...QAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.QAware GmbH
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPQAware GmbH
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.QAware GmbH
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysQAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration TestsQAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-ClusterAus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-ClusterQAware GmbH
 
Cloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniertCloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniertQAware GmbH
 
Policy Driven Microservices mit Open Policy Agent
Policy Driven Microservices mit Open Policy AgentPolicy Driven Microservices mit Open Policy Agent
Policy Driven Microservices mit Open Policy AgentQAware GmbH
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
Security Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisSecurity Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisQAware GmbH
 
Die nächsten 100 Microservices
Die nächsten 100 MicroservicesDie nächsten 100 Microservices
Die nächsten 100 MicroservicesQAware GmbH
 
Enterprise-level Kubernetes Security mit Open Source Tools - geht das?
Enterprise-level Kubernetes Security mit Open Source Tools - geht das?Enterprise-level Kubernetes Security mit Open Source Tools - geht das?
Enterprise-level Kubernetes Security mit Open Source Tools - geht das?QAware GmbH
 

Mehr von QAware GmbH (20)

Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration Tests
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-ClusterAus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Cloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniertCloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniert
 
Policy Driven Microservices mit Open Policy Agent
Policy Driven Microservices mit Open Policy AgentPolicy Driven Microservices mit Open Policy Agent
Policy Driven Microservices mit Open Policy Agent
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Security Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisSecurity Lab: OIDC in der Praxis
Security Lab: OIDC in der Praxis
 
Die nächsten 100 Microservices
Die nächsten 100 MicroservicesDie nächsten 100 Microservices
Die nächsten 100 Microservices
 
Enterprise-level Kubernetes Security mit Open Source Tools - geht das?
Enterprise-level Kubernetes Security mit Open Source Tools - geht das?Enterprise-level Kubernetes Security mit Open Source Tools - geht das?
Enterprise-level Kubernetes Security mit Open Source Tools - geht das?
 

Function as a Service

  • 1. Function as a Service Die Evolution hin zu Serverless-Architekturen Inhaltliche Entwicklung: Prof. Dr. Nane Kratzke, Technische Hochschule Lübeck, Mönkhofer Weg 239, 23562 Lübeck Dr. Josef Adersberger, QAware Serverless Architektur Center of Excellence FaaS – Function-as-a-Service • FaaS ermöglicht es Backend-Code auszuführen, ohne sich über Infrastruktur/Dimensionierung Gedanken machen zu müssen. • FaaS Funktionen können in vielen Sprachen wie JavaScript, Python, Java, Clojure und Scala entwickelt werden. • Funktionen werden von Events getriggered (z. B. Dateiänderungen, Zeitereignisse, Messages, HTTP Requests). • Eine horizontale Skalierung der Funktionsinstanzen erfolgt vollautomatisch durch den Provider. • Funktionen sind zustandslos. Wird ein Zustand benötigt, muss dies mittels Stateful Services realisiert werden (z. B. Redis). • Funktionen haben Timeouts. Läuft ein Timeout ab, wird die Funk- tionsausführung abgebrochen (bei AWS z. B. nach max. 5 Minuten). • Antwortzeiten hängen von diversen Faktoren ab. Z. B. muss der Provider bei seltenen Events oder Sudden Spikes weitere Instanzen starten. ­ Vorteile Timesharing der Infrastruktur ermöglicht Kostenvorteile Vereinfachter Betrieb Automatische Skalierung auf Basis des Request-Aufkommens Reduzierung von Entwicklungs- und Deployment-Aufwänden Verbessertes Time-to-Market Einfaches Unit-Testing Ggf. sogar „grüneres“ Computing durch bessere Ressourcenauslastung ­ Nachteile FaaS Dienste anfällig für Vendor Lock-In FaaS ist (noch) nicht standardisiert Sicherheitsbedenken (u.a. keine gut abgrenzbare Server-side Applikation; dadurch größere Angriffsoberfläche) Fehlender In-Server-State Begrenzte und ggf. variierende Ausführungsdauern Ungeeignet für lang laufende Berechnungen und bei sehr hohen Echtzeitanforderungen Aufwändigeres Integration-Testing Use Cases FaaS Frameworks Beispielhafte Einsatzszenarien für Function-as-a-Service: Event Handler Eine Funktion reagiert auf ein bestimmtes Ereignis, oft aus einem IoT-Szenario. Beispiel: Die Funktion wird ausgeführt, wenn ein bestimmter Sprachbefehl von Amazon Alexa erkannt wird. Integration Layer Eine Funktion übersetzt einen API-Aufruf von außen in eine Reihe an Backend- Aufrufen im Hintergrund. Das ist im Prinzip die Cloud-native Variante eines ESBs (Enterprise Service Bus). Beispiel: Die Funktion nimmt einen REST-Aufruf entgegen, holt Daten aus einem SAP- und DB-System und gibt die Ergebnisse zurück. Dekomposition bis auf Funktionsebene Eine Anwendung soll nicht nur bis auf Komponentenebene (Microservices) sondern bis auf Funktionsebene (Nanoservices) in Laufzeiteinheiten aufgeteilt werden. Beispiel: Die Funktion „Warenkorb bestellen“ wird als FaaS-Funktion implemen- tiert, da sie gut isoliert sein sollte, sehr stark schwankend in ihrer Last ist und häufig neu deployed wird. Stream-orientiertes ETL Eine Funktion transportiert einen Strom an Daten von einer Datenquelle hin zu einer Datensenke. Beispiel: Die Funktion wird bei jeder Message in einer Queue aufgerufen und schreibt diese Message dann in eine Datenbank. Wo sind all die Server hin? Typische technische Auswahlkriterien: • Was sind Serverless Architekturen? • Serverless Architekturen beziehen sich auf Applikationen, die Drittanbieter-Dienste einbinden und deren eigener Code als zustandslose FaaS Funktionen realisiert sind. • Weniger „Always-On“ Komponenten erforderlich • Kostenreduktion bis zu 70% im Vergleich zu IaaS. • Steigende Abhängigkeiten zu FaaS Providern und Drittanbieter-Diensten • Drittanbieter-Dienste werden auch Backend as a Service (BaaS) genannt (Beispiel: Auth0 für Authentikationsleistungen). • Serverless Applikationslogik wird mittels statusloser Funktionen auf FaaS-Plattformen betrieben (Beispiel: AWS Lambda). • FaaS Funktionen werden auch als Nanoservices bezeichnet (in Abgrenzung zu Microservices) In nicht-virtualisierten Rechenzentren wurden Applikationen häufig auf Dedicated Servern betrieben. Diese Server waren für den Workload häufig überdimensioniert. Aber auch Container fordern einen Anteil der Hostressourcen (CPU, Memory) kontinuierlich an. Die Ressourceneffizienz kann also weiter erhöht werden, wenn Containern nur dann Ressourcen zugeteilt werden, wenn diese auch Requests bearbeiten. Dieses Timesharing wird durch FaaS runtime environments realisiert. Machine-Virtualisierung wird genutzt um Applikationen auf einem physischen Server zu konsolidieren. Die dafür erfor- derlichen Deployment Units (Virtual Machine Images) sind allerdings sehr groß. Die Auslastung kann mittels Containern (z.B. Docker) weiter erhöht werden. Container ermöglichen es mehrere Applikationen als Self-Contained Deployment Units pro (virtueller) Maschine zu betreiben, solange die Applikationen dasselbe Betriebssystem teilen. Container starten schneller als virtuelle Maschinen und Container Images sind kleiner. Open Source FaaS Sprachen Welche Programmiersprachen und Frameworks sollen unterstützt werden? Event-Arten Auf welche Event-Arten hin kann eine Funktion ausgeführt werden (z. B. REST-Aufruf oder MQTT Message) Latenzen Welche Latenzen entstehen beim Deployment, beim Start und bei Aufruf einer Funktion? Services Welche Services und Schnittstellen (APIs) stehen den Funktionen zur Verfügung? Tooling Welche Werkzeuge und Werkzeug-Integrationen stehen zur Verfügung? Runtimes Welche Laufzeitumgebungen werden unterstützt (z.B. Kubernetes, DC/OS, CloudFoundry), welche API-Gateways? Zustand Kann Zustand über Funktionsaufrufe hinweg gespeichert werden? Workflows Können einzelne Funktionsaufrufe zu einem Workflow orchestriert werden? Auto-Skalierung Können die Knoten, auf denen das FaaS Framework läuft, bei Bedarf automatisch skaliert werden? Diagnostizierbarkeit Welche Möglichkeiten stehen zur Verfügung, um die Ausführung von Funktio- nen zu Überwachen und Fehler zu finden (auch nach Ende der Ausführung)? Bare Metal Server VM A VM B Bare Metal Server VM Container Engine A VM B Bare Metal ServerBare Metal Server A B Bare Metal Server VM Container Engine Time-Sharing FaaS Runtime A B … … A … VM 41 32 Die Serverless Evolution Gängige Frameworks: Native mobile Applikation Produkt-Datenbank Bestell-Datenbank Authentifizierungs-Service Dieselbe Applikation als: API Gateway Bestell-Funktion Such-Funktion 1 3 5 2 6 4 Querschnittslogik, wie z.B. Authentifizierungslogik, kann an Drittanbieter-Dienste delegiert werden (z.B. Auth0). 1 Anteile der Applikations- logik wandern in eine Client- Applikation (z.B. eine native Mobile-App oder eine Single- Page-Web-Applikation). 2 Anwendungslogik kann auch im Backend in Form einzelner Funktionen gehalten werden. Insbesondere dann, wenn diese Logik über mehrere Client-Arten hinweg genutzt wird, sicherheitskritisch und berechnungsintensiv ist oder auf große Datenmengen zugreift (z.B. Such- oder Klassifikationsfunktionen) 4 Aus Gründen wie z. B. Sicherheit oder um Drittanbieter-Dienste oder Datenbanken anzubinden, kann Funktionalität im „Server“ behalten werden (also serverless bereitge- stellt werden). 5 Ein API Gateway ist ein Web Server der HTTP Requests an zugehörige FaaS Funktionen oder Drittanbieter-Dienste weiterleitet. 6 Client-Applikationen können auf Data Stores per API direkt zugreifen. 3 Klassische 3-Tier Architektur (z. B. E-Commerce-App) Client (Browser) Applikations-Server Relationale-Datenbank Für 3-Tier Architek- turen müssen Clients nicht sonderlich „intel- ligent“ sein (es reichen Browser). Was ändern Server- less Architekturen nun an diesem Setting? Public Cloud FaaS • Amazon Lambda • Azure Functions • Google Cloud Functions • Fission (Platform9) • Fn (Oracle) • Kubeless (Bitnami) • OpenFaaS • OpenWhisk (IBM) • Riff (Pivotal) IT-Probleme lösen. Digitale Zukunft gestalten.