Backend as a Service – Was steckt hinter diesem Begriff?
Ein BaaS oder auch mBaaS ist eine Plattform, diese automatisiert die komplette Entwicklung der Backend-Seite. Des Weiteren kümmert sich diese Plattform auch um die sogenannte Cloud-Infrastruktur. Mit einem Backend as a Service wird die Verantwortung für die Wartung und den Betrieb der Server an ein Drittunternehmen übergeben bzw. ausgelagert. Diese konzentrieren sich auf die komplette Entwicklung der Client-Seite oder des Frontends.
Ein BaaS stellt zudem Tools zur Verfügung, mit diesen Tools kann beispielsweise ein Backend-Code erstellt werden, wodurch der Entwicklungsprozess beschleunigt wird.
Zudem verfügt es über verschiedene gebrauchsfertige Funktionen, darunter sind Cloud-Code-Funktionen, Datenbanken, Social-Media-Integrationen, ein Dateispeicher, APIs und noch vieles mehr.
Das Frontend und Backend
Frontend: Jede Softwareanwendung die wir kennen verfügt über einen eigenen Bereich, einen den der Benutzer sieht und der dementsprechend als Frontend bezeichnet wird.
Backend: Einen Teil kann der Benutzer nicht einsehen, dieser wird dementsprechend als Backend bezeichnet. Frontend und Backend sind durch sogenannte APIs miteinander verbunden.
BaaS und MBaaS
Diese Kürzel sind einfach die Abkürzungen für Backend as a Service (BaaS) und Mobile Backend as a Service (MBaaS). Diese beiden Services sind so ziemlich das Gleiche, das Backend als Service kann sowohl für Werbe- als auch mobile Projekte genutzt werden. Das mobile Backend als Service wird dann als MBaaS bezeichnet, wenn es rein für die mobile Entwicklung verwendet wird.
Deshalb sollte ein Backend als Service genutzt werden
Eine BaaS-Plattform hilft bei der Lösung zweier Kernprobleme:
- Beim Verwalten und auch Skalieren einer Cloud-Infrastruktur
- Bei der Beschleunigung der gesamten Backend-Entwicklung
Das Verwenden einer BaaS-Cloud bringt zudem viele Vorteile mit sich, wobei sich die Nutzung eines BaaS in technische sowie geschäftliche Aspekte unterteilen lässt.
Die geschäftlichen Gründe für den Einsatz eines Backend as Service
In erster Linie liegen die geschäftlichen Vorteile des BaaS in der Steigerung der Produktivität, sowie in der Auslagerung von Cloud-Verwaltungsaufgaben. Aus diesem Grund bringt der Einsatz einer Backend-Plattform vor allem bei kleinen bis mittelgroßen Projekten immense Vorteile mit sich. Ein Spezialist für eine Backend-Infrastruktur kostet in etwa 80.000 Dollar pro Jahr. Mit der Auslagerung eines Teils der Arbeit an Dritte, können sich diese Kosten in jedem Fall ausgleichen.
Ebenso vorteilhaft ist die weitaus schnellere Markteinführung eines bestimmten Softwareprojekts. Bei langen Wartezeiten wird die Marktchance meist zunichte gemacht und die Konkurrenz erhält einen erheblichen Marktvorteil.
Die geschäftlichen Vorteile sind:
- Eine verkürzte Zeit bis zur Marktreife
- Die Kosten für die Entwicklung werden gesenkt und es wird Geld gespart
- Es müssen weniger Entwickler einem Backend-Projekt zugewiesen werden
- Die Auslagerung der Verwaltung für die Cloud-Infrastruktur ist möglich
Die technischen Gründe und Vorteile für den Einsatz von BaaS
Erfahrene und gute Entwickler für das Backend sind meist schwer zu finden und sehr gut bezahlte Fachleute. Wenn ein Fachmann gefunden wurde, sollte sichergestellt werden, dass dieser die vorhandene Zeit sinnvoll nutzt und einen hochwertigen Code liefert. Es kann gleich vorweg gesagt werden, dass sich wiederholende Tätigkeiten, die Programmierung und ein Standardcode, reine Zeit- und Geldverschwendung sind. Ein weiterer Vorteil des BaaS ist, dass sich im Umkehrschluss Frontend-Entwickler rein auf das konzentrieren können, was diese auch am besten können.
Diese sind für die Bereitstellung des Frontend-Code und eine hervorragende Benutzerfreundlichkeit zuständig.
Die technischen Vorteile des BaaS sind demnach:
- Die Frontend-Entwickler können sich auf das Wesentliche konzentrieren
- Die Standardisierung der Kodierungsumgebung ist möglich
- Es besteht keine Notwendigkeit für die Programmierung des Boilerplate-Codes
- Erfahrene Backend-Entwickler haben die Möglichkeit hochwertige Codezeilen zu programmieren
- Es sind dadurch gebrauchsfertige Funktionen wie die Datenspeicherung, Authentifizierung etc. vorhanden
- Anwendungen können geklont und Testumgebungen ausgeführt werden
- Gebrauchsfertige Backup-Verfahren samt Sicherheitseinstellungen sind vorhanden
Wann sollte ein BaaS genutzt werden und die Vor- bzw. Nachteile
Die häufigsten Anwendungsfälle für die Nutzung einer BaaS-Plattform:
- Für die Erstellung eines Minimum Viable Products
- Bei eigenständigen Anwendungen bei denen nur eine geringe Anzahl von Integrationen benötigt werden
- Für Unternehmensanwendungen die nicht unternehmenskritisch sind
In genannten Fällen ist der Einsatz des Backend as a Service sehr einfach und spart eine Menge Zeit und Geld.
Vorteile des BaaS:
- Eine superschnelle Entwicklungsgeschwindigkeit
- Ein sehr billiger Entwicklungspreis
- Serverlos – es muss keine Infrastruktur verwaltet werden
Nachteile des BaaS:
- Es besteht eine geringere Flexibilität im Vergleich mit einer benutzerdefinierten Kodierung
- Ein weitaus geringerer Grad steht bei der Anpassung im Vergleich zu einem benutzerdefinierten Backend zur Verfügung
- Man ist bei Closed-Source-Plattformen Herstellerabhängig
Diese Funktionen bietet ein BaaS
Das Backend as a Service bietet viele nutzvolle Funktionen, diese können für verschiedene Arten von Anwendungen eingesetzt werden. Hier die gebräuchlichsten Merkmale eines BaaS in der Übersicht:
- APIs (REST und GraphQL)
- Geschäftslogik über sogenannte Cloud-Code-Funktionen
- Skalierbare Datenbank (SQL und NoSQL)
- Es gibt eine Benutzer-Authentifizierung
- Die soziale Integration auf Twitter, Facebook etc. ist möglich
- Push-Benachrichtigungen sind aktiv
- CDN und Cache
- Infrastruktur beinhaltet die automatische Skalierung, die Datensicherung, die Sicherheitseinstellungen etc.
Für wen eignet sich ein Backend als Dienstleistung?
Eine Backend as a Service-Plattform kann als technischer Dienst bezeichnet werden, die für App-Entwickler konzipiert ist. Ein Benutzer der über keine speziellen Kenntnisse verfügt, wird bei der Nutzung vor vielen Herausforderungen stehen. Die häufigsten Anwendungsfälle sind:
- Für Frontend-Ingenieure die über begrenzte Kenntnisse in der Backend-Entwicklung verfügen
- Für Backend-Ingenieure, die die Entwicklung vor allem beschleunigen wollen
- Für Ingenieure die wiederkehrende Aufgaben an Dritte auslagern möchten oder müssen
Wie eine BaaS-Architektur aussieht bzw. aufgebaut ist
Grundsätzlich ist eine BaaS-Architektur in drei verschiedene Schichten aufgeteilt. Mit der ersten Schicht wird sozusagen die Grundlage gebildet und sie enthält die Datenbankserver. Dieser besteht aus mindestens zwei Servern und dient der Replikation von Daten sowie der Backup-Routine die für das Abrufen der Daten zuständig ist. Dabei wird von den meisten Backend as a Service-Anbietern am häufigsten NoSQL-Datenbanken verwendet. Der Grund hierfür ist deren Skalierungsflexibilität, ein wachsender Trend bei der Verwendung von SQL-Datenbanken wie jene von Postgres, zeichnet sich allerdings ab.
Bei der zweiten Schicht handelt es sich um den Anwendungscluster, dieser enthält gleich mehrere Server, die zur Verarbeitung von Anfragen verwendet werden. Dabei kann die Anzahl der Server im Laufe des Tages schwanken, weshalb automatische Skalierungsverfahren erforderlich sind. Bei der dritten Schicht handelt es sich um den Anwendungsserver mit dem World Wide Web, dieser besteht aus CDNs und Lastenverteilern.
Backend as a Service ist eine schnell wachsende Branche
Laut einer Statistik wird der Markt von rund 2 Milliarden Dollar im Jahr 2020, auf ca. 6 Milliarden Dollar bis in das Jahr 2025 wachsen.