Software as a Service bzw. SaaS ist mitt­ler­wei­le eine feste Größe im Bereich des Cloud Com­pu­tings und be­schreibt ganz grund­sätz­lich Software, die über eine In­ter­net­ver­bin­dung genutzt werden kann, ohne dass eine lokale Version notwendig ist. Und auch in anderen Bereichen, bei­spiels­wei­se bei der Web-Ent­wick­lung, sind neue Dienst­leis­tun­gen in der Cloud auf dem Vormarsch. Wir werfen in diesem Artikel einen Blick auf den An­wen­dungs­be­reich von Backend as a Service.

Was ist Backend as a Service (BaaS)?

Backend as a Service ist ein Bereich des Cloud Com­pu­tings und be­zeich­net eine gehostete Backend-In­fra­struk­tur, auf deren Basis Ent­wick­ler schnell und einfach ein in­di­vi­du­el­les Backend kon­fi­gu­rie­ren können. Der Vorteil: Ent­wick­ler müssen nicht die komplette In­fra­struk­tur für die Web-Anwendung selbst pro­gram­mie­ren und können sich ganz auf die Ge­stal­tung des Frontends kon­zen­trie­ren. Dadurch ist es auch Frontend-Ent­wick­lern möglich, mit wenigen Schritten einen funk­tio­na­len Server aufsetzen.

Fakt

Zu den Grund­la­gen der Ent­wick­lung von web-basierten An­wen­dun­gen: Dort un­ter­schie­det man zwischen Frontend und Backend und damit zwei Bereiche, in denen un­ter­schied­li­che Funk­tio­na­li­tä­ten einer Anwendung entstehen. Im Frontend sehen die Nutzer die Ober­flä­che der Anwendung, bei­spiels­wei­se in Form von Menüs, Tabellen, Grafiken und Texten auf einer Webseite. Im Backend dagegen sind die Funk­tio­nen dieser Elemente sowie die Kon­fi­gu­ra­ti­on des dafür genutzten Servers fest­ge­legt. Im Backend wird das Frontend gestaltet, sodass bei einem Content Ma­nage­ment System bei­spiels­wei­se Text-Grafik-Module definiert werden, die die Content Manager dann in­di­vi­du­ell für Webseiten zu­sam­men­stel­len und mit Inhalten wie Über­schrif­ten und weiteren Texten befüllen können. So entstehen aus dem Zu­sam­men­spiel von Backend und Frontend fertige Web-An­wen­dun­gen wie zum Beispiel Apps oder Online-Shops.

BaaS-Lösungen enthalten meist eine Vielzahl un­ter­schied­li­cher Funk­tio­nen, wie bei­spiels­wei­se au­to­ma­ti­sche Updates des Backends, Ma­nage­ment der Da­ten­ban­ken, Nut­zer­au­then­ti­fi­zie­rung und Social Log-Ins.

Ein weiteres Beispiel aus dem Bereich des Cloud Com­pu­tings ist neben BaaS und SaaS bei­spiels­wei­se auch Function as a Service (FaaS).

Wie funk­tio­niert Backend as a Service?

Die Funk­ti­ons­wei­se bei der vom Anbieter be­reit­ge­stell­ten Backend-Version gleicht in der Praxis dem Hosting einer Website. Der BaaS-Anbieter liefert die Anwendung mit un­ter­schied­li­chen Funk­tio­nen, sodass Ent­wick­ler die ver­füg­ba­ren Daten zu einem in­di­vi­du­el­len Backend zu­sam­men­füh­ren können. Auf das so kon­fi­gu­rier­te Backend greifen die Ent­wick­ler dann über, vom Anbieter be­reit­ge­stell­te, Schnitt­stel­len mit Hilfe von APIs oder einer REST-Schnitt­stel­le zu und gestalten die Ar­chi­tek­tur der ge­wünsch­ten Web-Anwendung nach Bedarf.

Bei größeren Anbietern reicht für die Nutzung eines kos­ten­lo­sen Star­ter­pa­kets bereits eine Re­gis­trie­rung, um los­zu­le­gen. Je nach Anbieter ist das auch mit Login über den Facebook- oder Google-Account möglich. Meist folgen dann ge­ne­ri­sche Schritte, bei­spiels­wei­se die Wahl der ersten Anwendung sowie der ge­wünsch­ten Ziel-Plattform, bei­spiel­wei­se HTML5 oder iOS bzw. Android. Die BaaS-Lösung generiert dann API-Keys und je nach Anbieter werden bei­spiels­wei­se Ja­va­Script-Bi­blio­the­ken erstellt und weitere Standard-Funk­tio­nen definiert.

Für erfahrene Ent­wick­ler ist in den meisten Fällen keine Ein­ar­bei­tung zur Kon­fi­gu­ra­ti­on 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 Ent­wick­lung ver­ein­fa­chen und be­schleu­ni­gen. 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 Kon­fi­gu­ra­ti­on der Backend-Funk­tio­na­li­tä­ten, sodass bei­spiels­wei­se mit ein paar Klicks Vorgaben zu Tabellen auf dem Server angelegt werden können; ohne dass sich die Ent­wick­ler 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 cloud­ba­siert verfügbar, sodass die In­fra­struk­tur auch orts- und server-un­ab­hän­gig be­ar­bei­tet und angepasst werden kann.
  • Gleich­zei­tig entfallen de­si­gnier­te Backend-Ent­wick­ler, womit auch die teils auf­wän­di­ge Kom­mu­ni­ka­ti­on zwischen Frontend und Backend der Ver­gan­gen­heit angehört. Damit einher geht auch eine Ein­spa­rung von Res­sour­cen wie Zeit und/oder Geld.
  • Da BaaS-Modelle meist als Pay-as-you-use-Modell buchbar sind, zahlen Nutzer nur für die Kon­tin­gen­te, die wirklich benötigt werden. Häufig bieten Anbieter (wie auch bei anderen Hosting-Optionen) un­ter­schied­li­che Pa­ket­stu­fen an, sodass Nutzer die an­fal­len­den Kosten im Vorfeld einsehen können. Durch über­schau­ba­re Kon­tin­gen­te sind Backend-as-a-Service-Lösungen auch für kleinere Un­ter­neh­men in­ter­es­sant, die eine komplette Ei­gen­ent­wick­lung eines Backend nicht voll­um­fäng­lich aufgrund ein­ge­schränk­ter Res­sour­cen rea­li­sie­ren können.
  • Ska­lie­rungs­mög­lich­kei­ten sind bei Web-An­wen­dun­gen ein ent­schei­den­der Faktor, der großen Einfluss auf die Kosten haben kann. Hier bietet Backend as a Service auf den ersten Blick einen Vorteil, da die Ska­lie­rung wie auch die Hand­ha­bung beim BaaS-Anbieter liegt bzw. diese vom Anbieter vor­ge­ge­ben wird und diese je nach Anbieter au­to­ma­tisch erfolgt. Damit muss der Server nicht händisch auf­ge­rüs­tet oder migriert werden. In den Paketen sind dann je nach Art und Umfang viele Standard-Funk­tio­nen enthalten, bei­spiels­wei­se der Versand von Push-Nach­rich­ten, die Abdeckung von iOS und Android sowie der Zugang zu Social-Media-Funk­tio­nen von Facebook oder Twitter.

Nachteile von Backend as a Service

  • Durch den vorherig genannten Punkt können al­ler­dings bei einer au­to­ma­ti­schen Ska­lie­rung wiederum un­vor­her­seh­ba­re Kosten entstehen, wenn zum Beispiel die Anzahl der ein­ge­hen­den Anfragen sowie benötigte Da­ten­spei­cher­men­gen unbekannt sind oder die reellen Zahlen die vorher ge­schätz­ten Werte bei Weitem über­stei­gen. Denn im Gegensatz dazu sind bei de­zi­dier­ten Servern die zur Verfügung stehenden Ka­pa­zi­tä­ten – und damit auch der damit ver­bun­de­ne Preis – im Vorfeld bekannt. Die Kosten bei BaaS, die bei manchen Anbietern über das Basis-Paket hin­aus­ge­hen, sind so im Vorfeld teils schwer ab­schätz­bar – eine Ver­gleich­bar­keit der Kosten somit erschwert.
  • Si­cher­heits­aspek­te, bei­spiels­wei­se in Form der re­gel­mä­ßi­gen Spei­che­rung der Daten des Servers, variieren von Anbieter zu Anbieter. Nutzer sollten sich daher im Vorfeld genau über die Speicher-Zyklen des BaaS-Anbieters in­for­mie­ren, um si­cher­zu­stel­len, dass die Daten in ent­spre­chend be­nö­tig­ten Abständen gesichert werden. Dazu gehören auch Si­che­run­gen 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 Nut­zer­da­ten ver­ar­bei­tet werden, obliegt dem Schutz dieser sensiblen In­for­ma­tio­nen oberste Priorität.
  • Ein weiterer Nachteil entsteht dann, wenn der Wechsel von einem Backend-as-a-Service-Anbieter zu einem neuen Dienst­leis­ter vollzogen werden soll: Denn die Anbieter nutzen eine eigene Ser­ver­schnitt­stel­le und Software De­ve­lo­p­ment Kits, bei denen bei­spiel­wei­se auch die API, Treiber oder Netz­werk­pro­to­kol­le liegen können. Dann reicht es nicht, die Server-Adresse zu ändern oder die ein­ge­hen­den Anfragen um­zu­lei­ten. Auch un­ter­schei­den sich die Ansätze, wie Ent­wick­ler eine Im­ple­men­tie­rung vornehmen können. Im Grunde heißt es dann oftmals, dass das Backend bei einem Wechsel neu im­ple­men­tiert werden muss.
  • Je nach Anbieter un­ter­schei­den sich auch die Standorte der Server. Dies kann den Vorstoß in Richtung BaaS bremsen bzw. die Auswahl po­ten­zi­el­ler Anbieter ver­klei­nern, sofern bei­spiels­wei­se Server-Standorte in der EU ein wichtiges Kriterium darstellt.
Zum Hauptmenü