BaaS: Backend as a Service im Überblick
Software as a Service bzw. SaaS ist mittlerweile eine feste Größe im Bereich des Cloud Computings und beschreibt ganz grundsätzlich Software, die über eine Internetverbindung genutzt werden kann, ohne dass eine lokale Version notwendig ist. Und auch in anderen Bereichen, beispielsweise bei der Web-Entwicklung, sind neue Dienstleistungen in der Cloud auf dem Vormarsch. Wir werfen in diesem Artikel einen Blick auf den Anwendungsbereich von Backend as a Service.
Was ist Backend as a Service (BaaS)?
Backend as a Service ist ein Bereich des Cloud Computings und bezeichnet eine gehostete Backend-Infrastruktur, auf deren Basis Entwickler schnell und einfach ein individuelles Backend konfigurieren können. Der Vorteil: Entwickler müssen nicht die komplette Infrastruktur für die Web-Anwendung selbst programmieren und können sich ganz auf die Gestaltung des Frontends konzentrieren. Dadurch ist es auch Frontend-Entwicklern möglich, mit wenigen Schritten einen funktionalen Server aufsetzen.
Zu den Grundlagen der Entwicklung von web-basierten Anwendungen: Dort unterschiedet man zwischen Frontend und Backend und damit zwei Bereiche, in denen unterschiedliche Funktionalitäten einer Anwendung entstehen. Im Frontend sehen die Nutzer die Oberfläche der Anwendung, beispielsweise in Form von Menüs, Tabellen, Grafiken und Texten auf einer Webseite. Im Backend dagegen sind die Funktionen dieser Elemente sowie die Konfiguration des dafür genutzten Servers festgelegt. Im Backend wird das Frontend gestaltet, sodass bei einem Content Management System beispielsweise Text-Grafik-Module definiert werden, die die Content Manager dann individuell für Webseiten zusammenstellen und mit Inhalten wie Überschriften und weiteren Texten befüllen können. So entstehen aus dem Zusammenspiel von Backend und Frontend fertige Web-Anwendungen wie zum Beispiel Apps oder Online-Shops.
BaaS-Lösungen enthalten meist eine Vielzahl unterschiedlicher Funktionen, wie beispielsweise automatische Updates des Backends, Management der Datenbanken, Nutzerauthentifizierung und Social Log-Ins.
Ein weiteres Beispiel aus dem Bereich des Cloud Computings ist neben BaaS und SaaS beispielsweise auch Function as a Service (FaaS).
Ein weiteres Beispiel aus dem Bereich des Cloud Computings ist neben BaaS und SaaS beispielsweise auch Function as a Service (FaaS).
Wie funktioniert Backend as a Service?
Die Funktionsweise bei der vom Anbieter bereitgestellten Backend-Version gleicht in der Praxis dem Hosting einer Website. Der BaaS-Anbieter liefert die Anwendung mit unterschiedlichen Funktionen, sodass Entwickler die verfügbaren Daten zu einem individuellen Backend zusammenführen können. Auf das so konfigurierte Backend greifen die Entwickler dann über, vom Anbieter bereitgestellte, Schnittstellen mit Hilfe von APIs oder einer REST-Schnittstelle zu und gestalten die Architektur der gewünschten Web-Anwendung nach Bedarf.
Bei größeren Anbietern reicht für die Nutzung eines kostenlosen Starterpakets bereits eine Registrierung, um loszulegen. Je nach Anbieter ist das auch mit Login über den Facebook- oder Google-Account möglich. Meist folgen dann generische Schritte, beispielsweise die Wahl der ersten Anwendung sowie der gewünschten Ziel-Plattform, beispielweise HTML5 oder iOS bzw. Android. Die BaaS-Lösung generiert dann API-Keys und je nach Anbieter werden beispielsweise JavaScript-Bibliotheken erstellt und weitere Standard-Funktionen definiert.
Für erfahrene Entwickler ist in den meisten Fällen keine Einarbeitung zur Konfiguration des Backends vonnöten. Das Aufsetzen des Backends per BaaS geht schnell und einfach von der Hand.
Bei größeren Anbietern reicht für die Nutzung eines kostenlosen Starterpakets bereits eine Registrierung, um loszulegen. Je nach Anbieter ist das auch mit Login über den Facebook- oder Google-Account möglich. Meist folgen dann generische Schritte, beispielsweise die Wahl der ersten Anwendung sowie der gewünschten Ziel-Plattform, beispielweise HTML5 oder iOS bzw. Android. Die BaaS-Lösung generiert dann API-Keys und je nach Anbieter werden beispielsweise JavaScript-Bibliotheken erstellt und weitere Standard-Funktionen definiert.
Für erfahrene Entwickler ist in den meisten Fällen keine Einarbeitung zur Konfiguration des Backends vonnöten. Das Aufsetzen des Backends per BaaS geht schnell und einfach von der Hand.
Welche Vor- und Nachteile hat Baas?
Backend as a Service kann in vielen Fällen die Entwicklung vereinfachen und beschleunigen. Doch nicht in allen Szenarien ist BaaS die richtige Wahl.
Vorteile von Backend as a Service
- Der große Vorteil der Anbieter-Lösung liegt in der einfachen Konfiguration der Backend-Funktionalitäten, sodass beispielsweise mit ein paar Klicks Vorgaben zu Tabellen auf dem Server angelegt werden können; ohne dass sich die Entwickler um eine Anbindung an die Datenbank kümmern müssen.
- Ein weiterer Vorteil liegt darin, dass die Wartung des Backend entfällt. Diese liegt beim Anbieter des Service.
- BaaS-Lösungen sind cloudbasiert verfügbar, sodass die Infrastruktur auch orts- und server-unabhängig bearbeitet und angepasst werden kann.
- Gleichzeitig entfallen designierte Backend-Entwickler, womit auch die teils aufwändige Kommunikation zwischen Frontend und Backend der Vergangenheit angehört. Damit einher geht auch eine Einsparung von Ressourcen wie Zeit und/oder Geld.
- Da BaaS-Modelle meist als Pay-as-you-use-Modell buchbar sind, zahlen Nutzer nur für die Kontingente, die wirklich benötigt werden. Häufig bieten Anbieter (wie auch bei anderen Hosting-Optionen) unterschiedliche Paketstufen an, sodass Nutzer die anfallenden Kosten im Vorfeld einsehen können. Durch überschaubare Kontingente sind Backend-as-a-Service-Lösungen auch für kleinere Unternehmen interessant, die eine komplette Eigenentwicklung eines Backend nicht vollumfänglich aufgrund eingeschränkter Ressourcen realisieren können.
- Skalierungsmöglichkeiten sind bei Web-Anwendungen ein entscheidender Faktor, der großen Einfluss auf die Kosten haben kann. Hier bietet Backend as a Service auf den ersten Blick einen Vorteil, da die Skalierung wie auch die Handhabung beim BaaS-Anbieter liegt bzw. diese vom Anbieter vorgegeben wird und diese je nach Anbieter automatisch erfolgt. Damit muss der Server nicht händisch aufgerüstet oder migriert werden. In den Paketen sind dann je nach Art und Umfang viele Standard-Funktionen enthalten, beispielsweise der Versand von Push-Nachrichten, die Abdeckung von iOS und Android sowie der Zugang zu Social-Media-Funktionen von Facebook oder Twitter.
Nachteile von Backend as a Service
- Durch den vorherig genannten Punkt können allerdings bei einer automatischen Skalierung wiederum unvorhersehbare Kosten entstehen, wenn zum Beispiel die Anzahl der eingehenden Anfragen sowie benötigte Datenspeichermengen unbekannt sind oder die reellen Zahlen die vorher geschätzten Werte bei Weitem übersteigen. Denn im Gegensatz dazu sind bei dezidierten Servern die zur Verfügung stehenden Kapazitäten – und damit auch der damit verbundene Preis – im Vorfeld bekannt. Die Kosten bei BaaS, die bei manchen Anbietern über das Basis-Paket hinausgehen, sind so im Vorfeld teils schwer abschätzbar – eine Vergleichbarkeit der Kosten somit erschwert.
- Sicherheitsaspekte, beispielsweise in Form der regelmäßigen Speicherung der Daten des Servers, variieren von Anbieter zu Anbieter. Nutzer sollten sich daher im Vorfeld genau über die Speicher-Zyklen des BaaS-Anbieters informieren, um sicherzustellen, dass die Daten in entsprechend benötigten Abständen gesichert werden. Dazu gehören auch Sicherungen bei einem Ausfall des Servers. Nutzer sollten beim Anbieter im Vorfeld klären, wie schnell ein Server im Regelfall nach einem Ausfall wieder genutzt werden kann und welche Daten im Falle eines Ausfalls gesichert werden. Gerade wenn Nutzerdaten verarbeitet werden, obliegt dem Schutz dieser sensiblen Informationen oberste Priorität.
- Ein weiterer Nachteil entsteht dann, wenn der Wechsel von einem Backend-as-a-Service-Anbieter zu einem neuen Dienstleister vollzogen werden soll: Denn die Anbieter nutzen eine eigene Serverschnittstelle und Software Development Kits, bei denen beispielweise auch die API, Treiber oder Netzwerkprotokolle liegen können. Dann reicht es nicht, die Server-Adresse zu ändern oder die eingehenden Anfragen umzuleiten. Auch unterscheiden sich die Ansätze, wie Entwickler eine Implementierung vornehmen können. Im Grunde heißt es dann oftmals, dass das Backend bei einem Wechsel neu implementiert werden muss.
- Je nach Anbieter unterscheiden sich auch die Standorte der Server. Dies kann den Vorstoß in Richtung BaaS bremsen bzw. die Auswahl potenzieller Anbieter verkleinern, sofern beispielsweise Server-Standorte in der EU ein wichtiges Kriterium darstellt.