Mit Backend-as-a-Service (BaaS) können sich Entwickler auf das Frontend ihrer Anwendungen konzentrieren und Backend-Dienste nutzen, ohne sie erstellen oder warten zu müssen. BaaS und Serverless Computing haben einige Gemeinsamkeiten und viele Provider bieten beides an, aber die beiden Modelle weisen auch einige Unterschiede auf.
Nach Lektüre dieses Artikels können Sie Folgendes:
Ähnliche Inhalte
Function as a Service (FaaS)
Platform as a Service (PaaS)
Was ist Serverless?
Warum Serverless nutzen?
Edge-Computing
Abonnieren Sie theNET und erhalten Sie monatlich die meistdiskutierten Internet-Insights von Cloudflare.
Link zum Artikel kopieren
Backend-as-a-Service (BaaS) ist ein Cloud-Service-Modell, bei dem Entwickler alle Hintergrundaspekte einer Web- oder Mobilanwendung auslagern, so dass sie nur das Frontend schreiben und warten müssen. BaaS-Anbieter bieten vorab geschriebene Software für Aktivitäten auf Servern an, z. B. Benutzerauthentifizierung, Datenbankverwaltung, Remote Updates und Push-Benachrichtigungen (für mobile Apps) sowie Cloud-Storage und -Hosting.
Stellen Sie sich die Anwendungsentwicklung ohne BaaS so vor, wie einen Filmdreh. Der Regisseur ist verantwortlich für die Leitung der Kamerateams, die Beleuchtung, den Bühnenbau, die Garderobe, das Castings und den Produktionsplan sowie für die Regie der Szenen, die im Film erscheinen. Stellen Sie sich nun vor, es gäbe einen Dienst, der sich um alle Aktivitäten hinter den Kulissen kümmert, so dass der Regisseur nur Regie führen und die Szene drehen muss. Das ist die Idee hinter BaaS: Der Anbieter kümmert sich um die „Beleuchtung“ und die „Kamera“ (oder die serverseitigen* Funktionen), damit sich der Regisseur (der Entwickler) nur auf die „Action“ konzentrieren kann, nämlich das, was der Endbenutzer sieht und erlebt.
Mit BaaS können sich Entwickler auf das Schreiben des Frontend-Anwendungscodes konzentrieren. Über APIs (mit denen ein Programm Anfragen an andere Programme stellen kann) und SDKs (Kits zum Erstellen von Software), die vom BaaS-Anbieter angeboten werden, können alle benötigten Backend-Funktionen integriert werden, ohne das Backend selber schreiben zu müssen. Sie müssen auch keine Server, virtuellen Maschinen oder Container warten, um die Anwendung am Laufen zu halten. Dadurch können sie Mobil- und Webanwendungen (einschließlich Single-Page-Anwendungen) schneller erstellen und lancieren.
*Serverseitig bezieht sich auf alles, was im Client-Server-Modell auf einem Server und nicht dem Client gehostet oder ausgeführt wird.
Mobile-Backend-as-a-Service (MBaaS) ist BaaS, das speziell zum Erstellen von Mobilapps vorgesehen ist. Auch wenn einige Quellen BaaS und MBaaS als grundsätzlich austauschbare Begriffe betrachten, müssen BaaS-Dienste nicht unbedingt zum Erstellen mobiler Anwendungen verwendet werden.
BaaS-Provider bieten eine Reihe serverseitiger Funktionen. Zum Beispiel:
Google Firebase und Microsoft Azure sind BaaS- und MBaaS-Anbieter.
Es gibt gewisse Überschneidungen zwischen BaaS und Serverless Computing, da der Entwickler bei beiden nur seinen Anwendungscode schreibt und nicht an das Backend denken muss. Darüber hinaus bieten viele BaaS-Anbieter auch Dienste für Serverless Computing an. Es gibt jedoch erhebliche operative Unterschiede zwischen Anwendungen, die mit BaaS erstellt wurden, und einer echten Serverless-Architektur.
Die Backends von Serverless-Anwendungen sind in Funktionen unterteilt, die jeweils auf Ereignisse reagieren und nur eine Aktion ausführen (siehe Was ist FaaS?). Die serverseitigen Funktionen von BaaS werden so aufgebaut, wie es der Provider wünscht, und Entwickler müssen sich nur mit Schreiben des Frontends der Anwendung beschäftigen.
Serverless-Architekturen sind ereignisgesteuert, d.h. sie werden als Reaktion auf Ereignisse ausgeführt. Jede Funktion wird nur ausgeführt, wenn sie durch ein bestimmtes Ereignis ausgelöst wird, ansonsten nicht. Mit BaaS erstellte Anwendungen sind normalerweise nicht ereignisgesteuert, was bedeutet, dass sie mehr Serverressourcen benötigen.
Serverless-Funktionen können von überall auf jedem Computer ausgeführt werden, solange sie noch mit dem Rest der Anwendung kommunizieren. Dies ermöglicht es, Edge-Computing in die Architektur der Anwendung zu integrieren, indem Code an der Edge des Netzwerks ausgeführt wird. BaaS ist nicht unbedingt so eingerichtet, dass Code von überall und zu jeder Zeit ausgeführt werden kann (obwohl dies je nach Provider möglich sein kann).
Skalierbarkeit ist eines der größten Unterscheidungsmerkmale zwischen Serverless und anderen Architekturen. Bei Serverless Computing skaliert die Anwendung mit zunehmender Nutzung automatisch. Die Infrastruktur des Cloud-Anbieters startet bei Bedarf kurzlebige Instanzen der Funktionen. BaaS-Anwendungen werden nicht auf diese Weise skaliert, es sei denn, der BaaS-Anbieter bietet auch Serverless Computing an und der Entwickler baut dies in seine Anwendung ein.
PaaS bietet Entwicklern über die Cloud eine Plattform zum Erstellen ihrer Anwendungen. Wie bei Serverless Computing und BaaS muss der Entwickler bei Platform-as-a-Service (PaaS) das Anwendungs-Backend nicht erstellen oder managen. PaaS enthält jedoch keine vorgefertigte serverseitige Anwendungslogik wie Push-Benachrichtigungen und Benutzerauthentifizierung. PaaS bietet Entwicklern mehr Flexibilität, BaaS hingegen mehr Funktionalität.
Backend-as-a-Service (BaaS) ist ein Cloud-Modell, bei dem Entwickler alle serverseitigen Verantwortlichkeiten an einen Drittanbieter auslagern. So können sich Entwickler auf das Schreiben und die Wartung des Frontends ihrer Anwendungen konzentrieren, während der Anbieter Hintergrundaufgaben wie das Hosting und die Datenbankverwaltung übernimmt.
BaaS-Provider bieten eine Vielzahl von vorgefertigten serverseitigen Funktionen an, die über APIs und SDKs integriert werden können. Zu den üblichen Diensten gehören Benutzerauthentifizierung, Push-Benachrichtigungen für mobile Apps, Cloud-Speicher für Nutzerinhalte, Datenbankverwaltung und Fernaktualisierungen.
Beide Modelle machen die Verwaltung der Backend-Infrastruktur für Frontend-Entwickler überflüssig, funktionieren aber im Backend unterschiedlich. Serverless-Architekturen sind ereignisgesteuert und teilen Anwendungen in einzelne Funktionen auf, die nur ausgeführt werden, wenn sie ausgelöst werden. BaaS-Anwendungen sind im Allgemeinen nicht ereignisgesteuert und skalieren nicht automatisch durch Hochfahren von Codeinstanzen, es sei denn, der Provider bietet ausdrücklich eine serverlose Integration an.
MBaaS ist im Wesentlichen BaaS, das speziell für die Erstellung mobiler Anwendungen optimiert ist. BaaS ist eine breitere Kategorie, die für jede Art von Anwendung verwendet werden kann, einschließlich webbasierter Single-Page-Anwendungen, während sich MBaaS auf mobilspezifische Anforderungen konzentriert.
Beide Modelle machen es überflüssig, dass Entwickler Backend-Hardware und Betriebssysteme selbst verwalten müssen. PaaS stellt Entwicklern jedoch eine Plattform bereit, auf der sie ihre eigene Backend-Logik von Grund auf entwickeln können. BaaS bietet weniger Flexibilität, dafür aber mehr sofort nutzbare Funktionen, da es bereits vorgefertigte Anwendungslogik wie Social-Integrationen oder Benachrichtigungsdienste enthält.
Durch die Verwendung von vorgefertigter Software und verwalteter Infrastruktur können Entwickler Anwendungen schnell erstellen und starten, da sie keine Zeit mit der Erstellung des Backends oder der Verwaltung virtueller Maschinen und Container verbringen müssen. Allerdings können Serverless-Architekturen eine größere Skalierbarkeit und Flexibilität bieten.