Was ist serverloses Computing?
Definition: Serverloses Computing
Serverloses Computing ist ein Cloud-Computing-Modell, mit dem Entwickler ihren Code auf Servern, die vom Cloud-Anbieter verwaltet und On-Demand bereitgestellt werden, erstellen und ausführen können. Serverloses Computing bedeutet, dass sich Entwickler nicht mehr mit der Verwaltung der Backend-Infrastruktur befassen müssen und eine skalierbare und flexible Umgebung für ihr Unternehmen erhalten. Mit serverlosem Computing stellen Cloud-Anbieter die Infrastruktur bedarfsgesteuert bereit und können jederzeit hoch- oder herunterskalieren. Außerdem verwalten sie die Infrastruktur und sind für routinemäßige Wartungsarbeiten, Updates, Patching und die Sicherheitsüberwachung zuständig.
Serverloses Computing bedeutet nicht, dass keine Server beteiligt sind. Serverlos bedeutet vielmehr, dass die Verwaltung der Infrastruktur an den Cloud-Anbieter ausgelagert wird. Daraus ergeben sich verschiedene Vorteile und Herausforderungen beim Serverless-Monitoring. Unternehmen können ihre Ressourcen auf die Geschäftslogik konzentrieren, verlieren dafür jedoch Kontrolle und Einblicke, was die Vorgänge im Backend angeht.
Gegenüberstellung: Serverlos und FaaS
Function-as-a-Service (FaaS) ist eine Bezeichnung für Computing-Dienste, die die Verwaltung der Backend-Infrastruktur auslagern, damit Sie stattdessen Ihren Frontend-Code erstellen und ausführen können. Serverlos und FaaS werden oft als Synonyme eingesetzt, aber FaaS bezieht sich speziell auf die Codeausführungsfunktionen für Entwickler. Als ereignisgesteuerte Architektur ist FaaS ein Teilbereich des serverlosen Computing und ist nur einer der beim serverlosen Computing bereitgestellten Dienste.
Serverloses Computing umfasst auch serverloser Speicher- und Datenbanklösungen, Ereignis-Streaming und -Messaging sowie API-Gateways.
Gegenüberstellung: Serverlos und BaaS
Backend-as-a-Service (BaaS) ist wie auch FaaS ein Teilbereich des serverlosen Computing. BaaS ist ein Cloud-Computing-Modell, mit dem sich die Entwickler auf ihr Frontend konzentrieren können. BaaS wird mit vorab erstellter Software für typische Backend-Aktivitäten ausgeliefert, wie etwa Nutzerauthentifizierung, Pushbenachrichtigungen, Cloud-Speicher und Datenbankverwaltung.
Serverloses Computing unterstützt sowohl FaaS als auch BaaS.
Gegenüberstellung: Serverlos und SaaS
Software-as-a-Service (SaaS) ist ein Computing-Dienst, bei dem ein Anbieter einsatzbereite Softwareanwendungen für Unternehmen über das Internet lizenziert und bereitstellt. Serverloses Computing bietet eine skalierbare und flexible Infrastruktur, mit er Entwickler ihre Anwendungen erstellen und bereitstellen können, ohne eigene Server verwalten zu müssen.
Was ist Serverless-Monitoring?
Die Kombination aus ereignisgesteuerten und externen Architekturelementen, die beim serverlosen Computing zum Einsatz kommt, erfordert eine dedizierte Monitoring-Lösung. Serverless-Monitoring-Lösungen bieten Unternehmen Einblicke in ihren gesamten Betrieb und sind eine wichtige Komponente aller Modelle für serverloses Computing.
Was sind die wichtigsten Komponenten einer serverlosen Architektur?
Serverlose Architekturen umfassen verschiedene wichtige Komponenten, mit denen sie sich von herkömmlichen Architekturmodellen unterscheiden.
- Die Rolle der Cloud-Anbieter ist wichtig:
- Cloud-Anbieter sind der Schlüssel zur serverlosen Umgebung, da sie für die Infrastrukturverwaltung zuständig sind. In herkömmlichen Architekturmodellen ist normalerweise Ihr IT-Team für zeit- und arbeitsintensive Tätigkeit zuständig, Server auszuführen und zu verwalten. Beim serverlosen Computing übernimmt der Cloud-Anbieter diese Verantwortung und Ihre Entwickler können andere Aufgaben erledigen. Server, Datenbanken und Speicher werden vom Cloud-Anbieter bereitgestellt.
- Ereignisgesteuerte Programmierung:
- Serverloses Computing basiert auf Ereignissen anstatt auf Polling. Serverlose Umgebungen verwenden eine ereignisgesteuerte Architektur (Event-Driven Architecture, EDA). Ein Ereignis ist jede Art von Zustandsänderung in der Umgebung, wie etwa eine Nutzeranforderung. Diese Ereignisse rufen Funktionen auf, die wiederum von Entwicklern zur Ausführung von Aufgaben programmiert werden.
- Trigger-basierte Aufgaben:
- Beim serverlosen Computing werden nur Aufgaben ausgeführt, die von einer Funktion ausgelöst werden, die wiederum durch ein Ereignis aufgerufen wird. Serverloses Computing belegt daher nur die beim Verarbeiten von Aufrufen erforderlichen Ressourcen.
- Asynchrone Programmierung:
- Die ereignisgesteuerte Architektur und die zustandslose Beschaffenheit serverloser Umgebungen ermöglichen den Einsatz asynchroner Programmierungstechniken. Zustandslos bedeutet, das keine Daten zwischen Interaktionen gespeichert werden. Daher können mehrere Aufgaben gleichzeitig ausgeführt werden, ohne dass eine Aufgabe auf den Abschluss der anderen Aufgabe warten muss. Asynchrone Programmierungstechniken bieten außerdem zusätzliche Flexibilität für Entwickler beim Schreiben und Testen von neuem Code. Dadurch wird die Bereitstellung beschleunigt.
- RESTful APIs:
- Beim serverlosen Computing kommunizieren Webdienste über RESTful APIs miteinander. REST steht für „Representational State Transfer“. Eine API ist eine Programmierschnittstelle für Anwendungen. Als zustandslose Architekturumgebung werden beim serverlosen Computing RESTful APIs eingesetzt, um Backend-Ressourcen für einen Nutzer, der eine HTTP-Anfrage gestellt hat, zu übersetzen oder abzubilden.
- DevOps (CI/CD):
- Beim serverlosen Computing können Sie auch CI/CD einsetzen, um sich den „Ops“-Teil von DevOps abnehmen zu lassen. Mit CI/CD können Sie die Entwicklung von Anwendungen teilweise automatisieren. CI steht für „Continuous Integration“ (fortlaufende Integration), und CD steht für „Continuous Deployment“ oder „Continuous Delivery“ (fortlaufende Bereitstellung bzw. Auslieferung). Durch die Auslagerung des Backend-Monitoring an den Cloud-Anbieter sind serverlose Umgebungen praktisch für die agile Anwendungsentwicklung, da die Entwickler einen Teil der Entwicklung-Pipeline automatisieren können, um sich weniger Gedanken über die Auswirkungen der Bereitstellung machen zu müssen.
- Automatische Skalierung:
- Serverlose Umgebungen sind von Natur aus skalierbar. Sie werden automatisch hoch- oder herunterskaliert, um die Nachfrage zu erfüllen. Serverlose Umgebungen fahren nur dann Container hoch, wenn Funktionen aufgerufen werden. Daher reagieren sie automatisch auf Nutzungsschwankungen.
- Selbstheilung:
- Sie können serverlose Anwendungen so programmieren, dass aufgetretene Fehler automatisch identifiziert und behoben werden. Auf diese Weise lässt sich die Resilienz und Verfügbarkeit von Anwendungen verbessern.
Wie funktionieren serverlose Anwendungen?
Serverlose Anwendungen nutzen Backend-as-a-Service (BaaS) und Function-as-a-Service (FaaS), um Anfragen zu verarbeiten. Die allgemeine Umgebung ist ereignisgesteuert. Dies bedeutet, dass Ereignisse eine Antwort auslösen, wie etwa Authentifizierung, oder eine Funktion.
Die FaaS-Komponente beim serverlosen Computing verarbeitet Anfragen oder Ereignisse von Nutzern. Eine Anfrage wird im API-Gateway (Programmierschnittstelle für Anwendungen) verarbeitet, das anschließend eine Funktion aufruft. Die Funktion kommuniziert ihrerseits mit der Datenbank. Diese Abfolge von Aktivitäten ist eine einzige Anwendungsaufgabe. In einer serverlosen Umgebung sind alle Anwendungen modular, weil Aufgaben als separate Funktionen implementiert werden.
Die Entwickler schreiben serverlosen Anwendungscode, der bedarfsgesteuert in Containern bereitgestellt wird. Der Cloud-Anbieter kann die Funktion entweder auf einem bereits laufenden Server ausführen oder einen neuen Server für deren Ausführung hochfahren.
Serverloses Computing ist extrem flexibel für Entwickler, weil die Umgebung zustandslos ist und daher alle Aufrufe unabhängig voneinander sind. Es werden keine Daten aus vorherigen Interaktionen gespeichert. Beim serverlosen Computing werden nur die tatsächlich benötigten Ressourcen verwendet. Sobald eine Funktion nicht mehr benötigt wird, verschwindet der Container, in dem der Code bereitgestellt wurde. Dies ist ein weiterer Faktor, der zur Flexibilität dieser Lösung für Entwickler beiträgt.
Weitere wichtige Faktoren für serverlose Anwendungen:
- Ein Kaltstart kann ausgeführt werden, wenn eine Funktion zum ersten Mal oder zum ersten Mal seit längerer Zeit aufgerufen wird. Dabei kann eine gewisse Latenz entstehen.
- Die Anzahl der Funktionen, die parallel ausgeführt werden können, wird vom Cloud-Anbieter festgelegt. Dies wird auch als Parallelitätslimit bezeichnet.
- Zeitüberschreitung bezieht sich auf die Zeit, die der Cloud-Anbieter einer Funktion zuteilt, bevor sie beendet wird.
Warum sind serverlose Technologien so wichtig?
Serverlose Technologien bieten zahllose Geschäftsvorteile durch die automatische Skalierung und weil Entwickler mit diesen Technologien produktiver arbeiten und Anwendungen schneller ausliefern können. Diese Technologien sind kosteneffektiv: Entwickler können sich auf die Produktion anstatt auf den Betrieb konzentrieren, und das verbrauchsbasierte Modell spart Kosten beim Betrieb und der Verwaltung physischer Server.
Serverlose Technologien werden schon seit mehr als zehn Jahren eingesetzt. 2014 hat AWS mit AWS Lambda das erste FaaS-Modell angeboten. Google stellt Google Cloud Functions bereit, und Microsoft bietet Azure Functions an. Viele Unternehmen nutzen bereits Cloud Computing, und serverlose Technologien sind ein Synonym für den Geschäftsbetrieb. Mit zunehmender Bedeutung von Cloud-Anbietern für Unternehmen werden auch serverlose Technologien immer wichtiger.
Vorteile von serverlosen Funktionen
Serverlose Funktionen bieten zahlreiche Vorteile für Entwickler und Kunden gleichermaßen.
- Einsparungen: Cloud-Anbieter stellen serverlose Umgebungen als verbrauchsbasiertes Modell bereit und berechnen nur die tatsächlich genutzten Ressourcen und Funktionen. Durch die zustandslose Beschaffenheit serverloser Umgebungen – nicht verwendete Container verschwinden – gibt es keinerlei Leerlaufzeit. Daher bezahlen Sie auch nie für Komponenten im Leerlauf. Dadurch ergeben sich dramatische Kosteneinsparungen.
- Skalierbarkeit: Serverlose Umgebungen können aufgrund ihrer ereignisgesteuerten Architektur je nach Bedarf hoch- und herunterskaliert werden. Wenn der Bedarf zunimmt, fährt der Cloud-Anbieter dynamisch zusätzliche Ressourcen hoch, um die Umgebung hochzuskalieren. Der Anbieter ist für die Verwaltung und Ausführung der Ressourcen zuständig, und Sie können sich auf Ihre Wachstum konzentrieren.
- Weniger Mehraufwand: Mit serverlosen Funktionen sind Cloud-Anbieter für die Verwaltung und Überwachung Ihrer Infrastruktur zuständig. Sie können also die Kosten und Ressourcen für die Verwaltung an Ihren Cloud-Anbieter auslagern und Ihre eigenen Ressourcen stattdessen für Entwicklung und Bereitstellung einsetzen.
- Leistung und Verfügbarkeit: Serverlose Umgebungen sind ereignisgesteuert und bieten herausragende Leistungsmerkmale, da niemals unnötige Ressourcen verbraucht werden. Dadurch sind die Ressourcen bei Bedarf auch jederzeit verfügbar. Ihr Cloud-Anbieter fährt Server und Container bei Bedarf hoch und herunter, damit Sie sich nie wieder Sorgen um die Verfügbarkeit von Servern oder Speicherkomponenten machen müssen.
- Mehr Produktivität für Entwickler: Ihre Entwickler profitieren von serverlosen Funktionen, weil sich der Cloud-Anbieter um den „Ops“-Teil von DevOps kümmert. Auf diese Weise können Ihre Entwickler mehr Code schreiben. Die serverlose Umgebung fördert Agilität und Produktivität bei der Entwicklung durch die Bereitstellung von CI/CD-Automatisierung in der Entwicklungs-Pipeline.
Welche Herausforderung gilt es beim serverlosen Computing zu beachten?
Trotz der offensichtlichen Vorteile im Hinblick auf Kosteneffizienz und Entwicklungstempo müssen beim serverlosen Computing auch einige Herausforderungen berücksichtigt werden. Einige Beispiele für Nachteile beim serverlosen Computing:
- Anbieterbindung: Durch die Funktionsweise von serverlosen Technologien sind Sie bei Ihrer Code-Bereitstellung immer an einen bestimmten Cloud-Anbieter gebunden. Daher müssen die Entwickler das vom jeweiligen Anbieter bereitgestellte Modell nutzen. Ressourceneinschränkungen wie etwa Parallelitätslimits werden vom Anbieter vorgegeben. Diese Art von Anbieterbindung kann sich negativ auf die Flexibilität auswirken.
- Monitoring und Debugging aus der Perspektive des Codes: Die Infrastruktur wird vom Cloud-Anbieter verwaltet, und Sie haben mangelhafte oder keine Einblicke in Ihr Backend. Daher ist es wiederum schwierig, serverlose Umgebungen ohne ein dediziertes Serverless-Monitoring-Tool zu überwachen. Durch die ereignisgesteuerte Architektur in serverlosen Umgebungen ist es manchmal auch schwierig, Bugs zu identifizieren, zu reproduzieren und zu beheben.
- Latenz: Aufgrund der zustandslosen Beschaffenheit von Anwendungen in serverlosen Umgebungen kann eine gewisse Latenz auftreten, wenn eine Funktion zum ersten Mal oder zum ersten Mal seit längerer Zeit aufgerufen wird. Latenz kann auch durch Zeitüberschreitungen oder beim gleichzeitigen Ausführen zahlreicher Funktionen verursacht werden. In diesem Fall kann der Anbieter eine der Funktionen zwangsweise beenden, was zu einem Fehler führt. Aus der Sicht der Nutzer entsteht dabei Latenz.
- Mangelhafte Anpassbarkeit und Kontrolle: Da die zugrunde liegende serverlose Infrastruktur vom Anbieter verwaltet wird, gelten im Hinblick auf Anpassbarkeit und Kontrolle unter Umständen gewisse Einschränkungen, etwa was verfügbare Laufzeitversionen, die Arbeitsspeicherzuteilung und Zeitlimits für die Ausführung angeht.
- Sicherheitsbedenken: Beim serverlosen Computing wird zwar die Angriffsoberfläche reduziert, aber es entstehen auch neue Sicherheitsrisiken. Entwickler müssen die Risiken im Zusammenhang mit externen Diensten, Berechtigungen auf Funktionsebene und Sicherheitslücken im Anwendungscode kennen.
- Zustandslosigkeit: Serverlose Funktionen sind zustandslos, das bedeutet, dass keine Daten zwischen Aufrufen gespeichert werden. Dies erschwert die Verwaltung des Anwendungszustands, und Entwickler müssen externe Speicherlösungen oder Datenbanken nutzen, um den Zustand zu pflegen.
- Planbarkeit der Kosten: Serverloses Computing ist zwar kosteneffektiv, aber die Kosten sind nur schwer vorhersehbar, da sie von Faktoren wie der Anzahl der Aufrufe, der Arbeitsspeichernutzung und der Ausführungsdauer abhängen. Unerwartete Nutzungsspitzen können die Kosten steigern.
- Integration in vorhandene Systeme: Die Integration serverloser Funktionen in vorhandene Systeme und Architekturen ist nicht immer einfach, insbesondere wenn Legacy-Anwendungen oder komplexe Systeme beteiligt sind.
- Lernkurve: Um serverloses Computing nutzen zu können, müssen sich die Entwickler mit neuen Konzepten, Tools und Best Practices vertraut machen, was die Komplexität des Entwicklungsprozesses erhöhen kann.
Anwendungsfälle für serverloses Computing
Serverloses Computing bietet zahlreiche Vorteile, wie etwa Skalierbarkeit und reduzierten Verwaltungsaufwand, und eignet sich daher hervorragend für bestimmte Anwendungsfälle.
- Entwicklung von Webanwendungen: Serverloses Computing eignet sich hervorragend für die Entwicklung von Webanwendungen, da Tests in serverlosen Umgebungen sehr schnell ausgeführt werden können. Das verbrauchsbasierte Modell der Cloud-Anbieter bedeutet auch, dass Webanwendungen in serverlosen Umgebungen kostengünstiger entwickelt werden können. Sie bezahlen nur für die tatsächlich genutzten Ressourcen und müssen keine Zeit- oder Personalressourcen für die Infrastrukturverwaltung aufwenden. Auf diese Weise können sich Ihre Entwickler auf das Frontend konzentrieren. Mit serverlosen Diensten wie etwa Datenbanken, API-Gateways und ereignisgesteuerten Architekturen müssen Entwickler nur noch den Code für Ihre Webanwendungen schreiben.
- Datenverarbeitung und Analytics: Serverlose Umgebungen eignen sich hervorragend für strukturierten Text sowie für Audio-, Bild- und Videodaten. Mit serverlosen Umgebungen können Sie große und heterogene Datensätze verarbeiten und analysieren. Wie auch herkömmliche Computing-Modelle enthalten serverlose Umgebungen verschiedene, in Silos unterteilte Datensätze. Die Entwickler können eine Anwendung schreiben, um Daten aus allen Geschäftskanälen in einer einzigen Datenbank zusammenzuführen und dort zu verarbeiten. Serverloses Computing ist ideal zum Verarbeiten großer Datenmengeen, wie etwa ETL-Vorgänge (Extrahieren, Transformieren, Laden), Log-Analysen oder zur Datenvalidierung, da die Umgebung durch horizontale Skalierung an die Arbeitslast angepasst werden kann.
- APIs und Microservices: Mit serverlosen Funktionen können Sie APIs und Microservices schnell erstellen und bereitstellen, damit sich Ihre Entwickler auf die Anwendungslogik konzentrieren können, anstatt sich mit der Infrastrukturverwaltung zu befassen.
- Echtzeit-Datenverarbeitung: Serverlose Funktionen können Dateien beim Hochladen in Cloud-Speicherdiensten in Echtzeit verarbeiten, etwa um Bildgrößen anzupassen, Video zu transkodieren oder Texte zu extrahieren.
- Ereignisgesteuerte Workflows: Mit serverlosem Computing können Sie ereignisgesteuerte Workflows erstellen, die auf bestimmte Ereignisse reagieren, wie etwa Änderungen in einer Datenbank, Datenströme aus IoT-Geräten oder Nachrichten aus einer Warteschlange.
- Geplante Aufgaben und Cron-Jobs: Mit serverlosen Funktionen können Sie Aufgaben planen und in bestimmten Abständen ausführen, um nächtliche Sicherungen durchzuführen, Berichte zu generieren oder Daten zu synchronisieren.
- Chatbots und virtuelle Assistenten: Serverlose Funktionen können für die Erstellung von Chatbots oder virtuellen Assistenten eingesetzt werden, die Nutzereingaben verarbeiten und beantworten, sowie für Integrationen in Messaging-Plattformen oder für natürliche Sprachverarbeitungsdienste.
- Verarbeitung von IoT-Daten: Mit serverlosem Computing können Sie die von IoT-Geräten generierten Daten verarbeiten und analysieren, um sie für Funktionen wie Echtzeitüberwachung, Anomalieerkennung und Datenaggregation zu nutzen.
Gegenüberstellung: Serverlose und herkömmliche Architekturen
Der Hauptunterschied zwischen serverlosen und herkömmlichen Architekturen besteht darin, dass das IT-Team Ihres Unternehmens keine physischen Server mehr ausführt oder verwaltet. Diese Aufgaben werden an einen Cloud-Anbieter ausgelagert.
Beim herkömmlichen Modell führen Unternehmen ihre Anwendungen auf Bare-Metal-Servern aus. Die Unternehmen müssen Zeit und Ressourcen aufwenden, um die Hardware und einen passenden Ort für deren Installation zu beschaffen, um die Hardware zu betreiben und zu kühlen, und so weiter. Beim Bare-Metal-Betrieb muss die Hardware in Racks installiert, in Betrieb genommen und konfiguriert werden. Das IT-Team ist außerdem für zeitaufwändige Aufgaben wie etwa das Konfigurieren der Umgebung für die Codebereitstellung, das Installieren von Betriebssystemen und die Wartung und Verwaltung der Server zuständig.
Bare-Metal-Server wurden im Lauf der Zeit durch virtuelle Maschinen (VMs) ersetzt. Die Unternehmen müssen ihre Hardware nach wie vor installieren und konfigurieren, können jedoch mehrere Computer auf derselben Hardware ausführen. Auf diese Weise lassen sich die Computing-Ressourcen besser nutzen. Technische Teams können mehrere Server mit Hypervisoren bereitstellen, und wie auch in Bare-Metal-Umgebungen muss das Team Betriebssysteme installieren und sich mit Wartung und Verwaltung befassen. Die Installation von Betriebssystemen lässt sich inzwischen mit VM-Vorlagen und Automatisierungs-Tools automatisieren.
VMs wurden im Lauf der Zeit durch Container ersetzt. Container sind Codepakete, mit denen Anwendungen in einer bestimmten Betriebssystemumgebung ausgeführt werden können, um sie portierbar zu machen. Im Gegensatz zu VMs werden Container auf demselben Betriebssystem und in derselben Container-Laufzeit ausgeführt, und ihre Ressourcen werden im Kernel-Nutzerbereich aufgeteilt. Auf diese Weise lässt sich die Verwaltung der Dienste stark vereinfachen, da weniger Betriebssysteme verwaltet werden müssen. Container können mit Plattformen wie Kubernetes automatisiert werden, um die Container flexibel bereitstellen, portierbar machen und bei Bedarf jederzeit hochfahren und löschen zu können.
Mit serverlosen Architekturen können sich IT-Teams darauf konzentrieren, Code zu schreiben und bereitzustellen, da die gesamte Infrastrukturverwaltung an einen Cloud-Anbieter ausgelagert wurde.
Serverloses Computing mit Elastic: Zukunftsaussichten
Mit der zunehmenden Ausgereiftheit von Cloud-Technologien entwickelt sich auch das serverlose Computing immer weiter. Verschiedene Anbieter stellen bereits serverloses Computing bereit, indem sie entsprechende Komponenten anbieten, die den Einsatz allgemeiner Workloads für Unternehmen erleichtern.
FAQ zu serverlosen Technologien
Was bedeutet „serverlos“?
„Serverlos“ ist ein Cloud-Computing-Modell, bei dem die zugrunde liegende Infrastruktur von einem Cloud-Anbieter bereitgestellt und verwaltet wird, damit sich der Kunde auf die Frontend-Entwicklung konzentrieren kann. Serverloses Computing besteht aus FaaS und BaaS. Diese beiden Dienste bilden gemeinsam eine flexible Umgebung, in der Entwickler ihren Code schnell bereitstellen können.
Was sind Beispiele für serverloses Computing?
Ein Nutzer an einem Endpoint, der die Website des Kunden aufruft. Dieser Nutzer interagiert mit zwei serverlosen Funktionen: BaaS und FaaS. Der Nutzer gibt seine Daten ein, um zur nächsten Seite zu gelangen. Die BaaS-Komponente der serverlosen Umgebung authentifiziert den Nutzer. Der Nutzer surft weiter auf der Website und tätigt einen Kauf. Dabei handelt es sich um ein Ereignis. Dieses Ereignis wird von einer Gateway-API verarbeitet, die eine Funktion aufruft, um den Beleg per E-Mail zu verschicken. Zu diesem Zweck fährt der Anbieter einen Container hoch, der den Anwendungscode enthält und die Aufgabe ausführt. Dabei handelt es sich um die FaaS-Komponente.
Warum nennt man diese Technologie „serverlos“?
„Serverlos“ ist genau genommen eine Fehlbezeichnung und beschreibt eine Cloud-Computing-Umgebung, in der die Server, auf denen die Kundenanwendungen ausgeführt werden, von einem Cloud-Anbieter bereitgestellt und verwaltet werden. Der Kunde hat keine eigenen Server, sondern bezahlt den Cloud-Anbieter dafür, dessen Server zu nutzen.
Begriffserklärung: Serverlos
- API-Gateway: Ein API-Gateway (Programmierschnittstelle, Application Programming Interface) ist eine Kommunikationsverbindung, die Anfragen erhält und an einen Backend-Dienst weiterleitet. Anschließend werden die Backend-Daten für die Nutzer im Frontend übersetzt.
- BaaS: Backend-as-a-Service ist ein Cloud-Computing-Modell, das vorab erstellte Software einsetzt, um Dienste wie Nutzerauthentifizierung oder Datenspeicherung anzubieten. BaaS ist ein Teilbereich der serverlosen Technologien.
- Cloud Computing: Cloud Computing bezieht sich auf Computing-Modelle, die nativ in Cloud-Umgebungen ausgeführt werden. Alle Arten von Computing, die in einer Cloud ausgeführt werden, bezeichnet man als Cloud Computing.
- Cloud-nativ: Cloud-nativ bedeutet, dass eine Anwendung oder ein Dienste speziell für die Cloud entwickelt wurde. Dabei werden Skalierbarkeit und Elastizität von Cloud-Umgebungen explizit berücksichtigt.
- Kaltstart: Ein Kaltstart tritt auf, wenn eine Funktion zum ersten Mal oder zum ersten Mal seit längerer Zeit aufgerufen wird. Beim Kaltstart fährt der Cloud-Anbieter zum ersten Mal einen Container für eine bestimmte Funktion hoch.
- Container: Container sind ressourcenschonende, portierbare und eigenständige Codepakete inklusive der jeweiligen Abhängigkeiten, die in unterschiedlichen Computing-Umgebungen einheitlich ausgeführt werden können.
- Ereignisgesteuerte Architektur: Die ereignisgesteuerte Architektur ist ein Software-Architekturmodell, das Ereignisse (Anfragen, Zustandsänderungen, Aktualisierungen) verwendet, um die Kommunikation zwischen Diensten auszulösen. „Ereignisgesteuert“ ist ein Programmieransatz und keine Programmiersprache.
- FaaS: Function-as-a-Service ist ein ereignisgesteuertes Cloud-Computing-Modell, mit dem Entwickler ihr Frontend erstellen und ausführen können, ohne die Backend-Infrastruktur verwalten zu müssen.
- Microservices: Microservices sind eine Art von Software-Architekturmodell, bei dem die Software in separate Dienste unterteilt wird. Diese Dienste kommunizieren über APIs miteinander und ermöglichen eine flexible Entwicklung.
- Multi-Cloud: Multi-Cloud bedeutet, dass mehrere Clouds eingesetzt werden, wie etwa Google Cloud, AWS und Microsoft Azure. Die meisten Unternehmen verwenden Multi-Cloud-Modelle und nehmen die Dienste mehrerer Cloud-Anbieter in Anspruch. Ein Beispiel ist ein Unternehmen, das die Google Office-Suite für ihre E-Mails und AWS Lambda für serverlose Funktionen einsetzt.
- Zustandslos: „Zustandslos“ ist ein Merkmal von Anwendungen, Protokollen oder Prozessen und bedeutet, dass Operationen unabhängig voneinander verarbeitet werden. Serverloses Computing ist beispielsweise von Natur aus zustandslos, es werden also keine Daten zwischen einzelnen Aufrufen gespeichert.