Was ist BaaS?
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.
Was ist Mobile-Backend-as-a-Service (MBaaS)?
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.
Was fällt unter BaaS?
BaaS-Provider bieten eine Reihe serverseitiger Funktionen. Zum Beispiel:
- Datenbankverwaltung
- Cloud-Storage (für benutzergenerierte Inhalte)
- Benutzerauthentifizierung
- Push-Benachrichtigungen
- Remote Updates
- Hosting
- Andere plattform- oder anbieterspezifische Funktionen, wie zum Beispiel Indexierung für die Google-Suche bei Firebase
Google Firebase und Microsoft Azure sind BaaS- und MBaaS-Anbieter.
Was sind die Unterschiede zwischen BaaS und Serverless Computing?
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.
Aufbau der Anwendung
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.
Wann Code ausgeführt wird
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.
Wo Code ausgeführt wird
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).
Wie die Anwendung skaliert
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.
Was ist der Unterschied zwischen BaaS und Platform-as-a-Service (PaaS)?
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.
FAQs
Was ist Backend-as-a-Service (BaaS)?
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.
Welche spezifischen Funktionen sind normalerweise in einem BaaS-Angebot enthalten?
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.
Worin unterscheidet sich BaaS von Serverless Computing?
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.
Was ist der Unterschied zwischen BaaS und Mobile-Backend-as-a-Service (MBaaS)?
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.
Wie verhält sich BaaS im Vergleich zu Platform-as-a-Service (PaaS)?
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.
Warum sollte ein Entwickler BaaS verwenden?
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.