Was ist BaaS? | Backend-as-a-Service im Vergleich zu Serverless

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.

Share facebook icon linkedin icon twitter icon email icon

Backend-as-a-Service

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • BaaS definieren
  • MBaaS definieren
  • Zwischen Serverless Computing und BaaS unterscheiden
  • Verstehen, wie sich BaaS und PaaS unterscheiden

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.

Backend as a Service (BaaS)

Stellen Sie sich die Anwendungsentwicklung ohne BaaS so vor, wie einen Filmdreh. Der Regisseur ist verantwortlich für die Leitung der Kamerateams, der Beleuchtung, des Bühnenbaus, der Garderobe, des Castings und des Produktionsplans 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 am Rand 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.