BaaS: Was bedeutet Backend as a Service?

Know-how  –  5 Kommentare

Unter BaaS versteht man eine gehostete Backend-Infrastruktur, mit der App- oder Mobile-Web-Entwickler in wenigen Schritten ein individuelles Backend konfigurieren können. Der Artikel behandelt die grundsätzlichen Konzepte und den Status quo von Backend as a Service.

Der mobile Markt ist umkämpft. Da heißt es, mit einer Idee nicht zu lange zu warten. Updates und Erweiterungen sollten hier sowieso schnell veröffentlicht werden. Doch das ist bei einer klassischen Aufteilung in Front- und Backend-Entwickler nicht immer leicht. Meist ist schon das Koordinieren beider Gruppen eine Herausforderung. Zusätzlich sollen die Nutzdaten unabhängig vom Endgerät gespeichert werden: Oft sind für verschiedene Programmiersprachen beziehungsweise Betriebssyteme Datenklassen zu schreiben. Ein weiterer Aspekt ist die Skalierung des Daten-Backends beim Anstieg der Nutzerzahlen. Und wie ist ein Schema Update der Datenbank zwischen Front- und Backend-Entwicklern kommunizierbar?

Auf viele dieser Herausforderungen soll Backend as a Service (BaaS) eine Antwort bieten. Die Idee, ein Backend als Cloud-Service anzubieten, ist nicht neu. Bereits 2011 haben sich die ersten Unternehmen in diesem Markt angesiedelt.

Die Wolke kommt zur Hilfe

Das Thema Datenbank beziehungsweise die Datenhaltung ist schon immer ein Spannungsthema. Es ist verlockend, für die eigene App schnell zu einer bewährten LAMP-Konfiguration zu greifen. Das mag bei den meisten Hobby-Projekten funktionieren, aber auch dort kommen Fragen zur Sicherheit der Daten und zum Aufwand bei Änderungen zum Tragen. Und das Setup dieser Eigenlösungen kostet Zeit.

Auch bei Enterprise-Projekten beziehungsweise Agenturen ist das Thema Backend und Übergabe an den Kunden zunehmend ein Thema. Hier stellen sich die Fragen etwas anders: Wo lässt sich zum Beispiel ein JBoss-Server mit RESTeasy hosten? Wer ist für die Wartung zuständig? Durch den starken Zuwachs der mobilen Endgeräte ist die Verfügbarkeit fortwährend eine Herausforderung. Da reicht die firmeninterne DMZ ("Demilitarized Zone") nicht immer aus. Außerdem sind die Datenbanksysteme in den Unternehmen meist gut abgeschottet von der Außenwelt.

Ob kleines Indie- oder großes Enterprise-Projekt – das Backend einer Anwendung ist also ein Knackpunkt. Daher soll BaaS diesen Herausforderungen begegnen. Zudem soll so ein Dienst in jeglicher Größe einsetzbar sein. Die grundsätzliche Technik ist dabei mit einem Internet-Hoster vergleichbar: Der BaaS-Anbieter stellt die Möglichkeit bereit, Daten zu verwalten.

Im Allgemeinen wird hier ein SDK für die jeweiligen Mobilplattformen bereitgestellt. Zusätzlich gibt es meist noch eine REST-Schnittstelle. Die Persistierung der Daten ist dabei unter Kontrolle des BaaS-Anbieters. Der Nutzer holt sich seine Daten beziehungsweise stellt Abfragen an Teilmengen der Daten. Das gesamte Handling und die Skalierung erfolgt dabei durch den BaaS-Anbieter. Der Vorteil ist demnach, dass die Wartung des Backends entfällt und die Entwicklung der einzelnen Wrapper-Klassen von Datenbanktabellen zu Objekten zum großen Teil obsolet ist. Die Kommunikation mit dem BaaS-Server erfolgt durch die SDKs. Meist reicht eine Methode à la Objekt.save() aus, um die Daten zu speichern.

Durch das "Pay as you use"-Konzept wird nur das bezahlt, was tatsächlich gebraucht wird. Meist stehen aber Pakete mit Kontingenten zu Festpreisen zur Verfügung. Damit ist das einzuplanende Budget nutzungsabhänig. Deswegen ist der Einsatz von BaaS auch für kleine Unternehmen interessant.

Und was erst für den Android- und iOS-Bereich konzipiert war, ist mit dem Boom von JavaScript und dem Hype um Webapps nun auch im Web möglich. Viele besitzen ein dementsprechendes SDK in ihrem Portfolio. Je nach Anbieter werden zusätzliche Plattformen wie BlackBerry oder Windows Phone 8 abgedeckt. Zusätzlich versuchen sie sich durch allerlei Extra-Dienste abzugrenzen. Wer ein Backend für seine mobile App hat, der möchte meistens auch Push-Nachrichten versenden. Selbst Daten über die Nutzung, sogenannte Analytics, werden gerne mit angeboten. Ein vereinfachter Zugang zu Diensten wie Twitter oder Facebook ist sowieso meist gegeben. Alles Dinge, die den Nutzer stärker an den speziellen BaaS-Anbieter binden sollen.

Eine kurze Geschichte von BaaS

Die Firma marketsandmarkets hat 2012 den globalen BaaS-Markt auf einen Wert von circa 216 Millionen Dollar beziffert. Mittlerweile ist eine neue Studie auf dem Markt. Diese soll den aktuellen Markt beleuchten und bis in das Jahr 2017 einen Ausblick geben, wie sich dieser entwickeln könnte, ohne dass mit allzu konkreten Zahlen aufgewartet werden würde.

Die großen Anbieter im BaaS-Dschungel waren bisher Firmen wie Kinvey, Parse und StackMob – allesamt US-Unternehmen, allesamt schon lange am Markt. Im Frühjahr 2013 wurde Parse von Facebook für etwa 85 Millionen Dollar gekauft. PayPal hatte sich im Winter 2013 StackMob einverleibt, worauf der Dienst eingestellt wurde. Einige andere Anbieter sind dazu gekommen und schon wieder verschwunden. Microsoft hat sich im letzten Jahr verhältnismäßig spät mit seinen Azure Mobile Services dazugesellt. Auch Google ist dabei und bietet über die App Engine BaaS-ähnliche Dienste an.

Damit zeigt sich, dass BaaS durchaus ein sinnvoller Baustein für aktuelle und zukünftige Architekturen sein kann. Was zunächst für iOS und Android gestartet war, ist nun noch weiter verbreitet. Neben mobilen Plattformen ist noch ein ganz anderer Trend gewachsen. Die Hardware ist intelligent geworden – das Internet der Dinge in in aller Munde. Hier fallen auch Daten an, die persistent gespeichert werden wollen. Dafür eignet sich ein BaaS hervorragend, da der Nutzer keinerlei Server vorhalten muss. Das Hardware-Device muss außerdem keine Daten lokal speichern. Durch das Internet der Dinge steigt aber das Datenvolumen beträchtlich. Da nun im Extremfall jeder Heizungsthermostat alle fünf Minuten einen Datensatz schickt. Hier macht sich die Skalierung von BaaS-Diensten bestens bemerkbar.