Spätestens seit dem Kauf von Parse.com durch Facebook ist Backend as a Service (kurz: BaaS) ein etabliertes Schlagwort geworden. Doch für welche Projektanforderungen ist BaaS besonders gut geeignet? Und wo stecken die Risiken der neuen Technologie?
Professionelle Anwendungen aus dem mobilen Umfeld kommen in den seltensten Fällen noch ohne zuverlässige Backend-Lösungen aus. Kernfunktionalitäten wie Push-Benachrichtigungen, eine fehlerfreie Datensynchronisation oder eine sichere Benutzerauthentifikation müssen von modernen Backends plattformübergreifend unterstützt werden. Mit den steigenden Anforderungen an konkurrenzfähige mobile Applikationen erfordert die Entwicklung zuverlässiger serverseitiger Komponenten ein hohes Maß an Zeit und Expertenwissen. Es ist daher nicht verwunderlich, dass viele Cloud-Dienstleister die Situation erkannt haben und mobile Backends als selbstständiges Produkt anbieten.
BaaS als Erweiterung bestehender Technologien
Mobile BaaS-Lösungen richten sich vorwiegend an Software-Entwickler und setzen den Fokus auf die Modellierung der benötigten Daten und Schnittstellen. Im Gegensatz zu bekannten Platform as a Service (PaaS)-Lösungen wie Google AppEngine benötigt der Benutzer keine tiefen Kenntnisse über den zugrundeliegenden Software-Stack. Die Verwaltung der Daten und REST-Schnittstellen erfolgt meist browserbasiert oder über entsprechende CLI-Werkzeuge, die, je nach Anbieter, auch das Deployment serverseitiger Logik ermöglichen.
BaaS stellt somit eine weitere vertikale Abstraktionsschicht entlang des Backend-Stacks dar, der häufig auf vorhandenen IaaS- und PaaS-Technolgien basiert (siehe Grafik). Die Big Player im Bereich Cloud-Storage haben allesamt den Trend erkannt und so konkurrieren mittlerweile Amazon mit dem AWS Mobile Hub, Google mit Cloud Endpoints/Firebase und Microsoft mit den Azure Mobile Apps mit vielen weiteren Anbietern in diesem Bereich.
Die Hauptfunktion eines BaaS-Dienstes besteht in der Nutzung klassischer REST-Schnittstellen zur Manipulation definierter Datenobjekte. Funktionen, die über das klassische CRUD hinausgehen, können über die bereits erwähnte Backend-Logik getriggert werden.
Mobile BaaS-Anbieter bilden darüber hinaus viele Standard-Anwendungfälle ab, die im Kontext mobiler Applikation häufig zum Einsatz kommen, so z.B. den Versand von Push-Nachrichten oder eine Benutzerauthentifizierung und -authorisierung auf Basis bekannter sozialer Netzwerke. Die technische Infrastruktur des Gesamtsystems bleibt dem Entwickler dabei häufig verborgen, was zu extrem schnellen Ergebnissen in der Implementierung der Cloud-Funktionalität führt.
Vorteile von BaaS
Effektivität: Der große Vorteil von BaaS liegt in der Zeitersparnis. Statt einer aufwändigen Implementierung des Backends kann auf bestehende Infrastrukturen der Anbieter zurückgegriffen und der Fokus auf die Entwicklung der eigentlichen App-Funktionalitäten gelenkt werden.
Spezialisierte Lösungen: Mobile BaaS-Anbieter stellen optimierte Backend-Lösungen speziell für den Bereich Mobile bereit. Sie unterstützen den Entwickler ganzheitlich durch eigene SDKs für die jeweilige Zielplattform und bieten darüber hinaus gehende Standardfunktionen wie die Benutzerverwaltung und Push-Nachrichten.
Best practices: BaaS-Anbieter verfügen über Experten-Wissen in den Bereichen Storage, API-Security, Skalierung und viel mehr. Warum sollte man von diesem Know-How nicht profitieren?
Kostenloser Einstieg: Die meisten Provider bieten für kleine Projekte kostenlose Probepakete an. Diese Pakete eignen sich nicht nur hervorragend für den Einstieg, sondern sind in vielen Fällen (Kleinere Prototypen, Testanwendungen, Showcases) bereits vollkommen ausreichend.
Risken von BaaS
Die Reduzierung der Komplexität einer Backend-Lösung durch BaaS-Provider führt zwar zu einer immensen Zeitersparnis, birgt aber häufig auch Gefahren, die auf den ersten Blick nur schwer zu identifizieren sind:
Kontrollverlust: Die offensichtlichste Einschränkung durch die Verwendung eines BaaS-Providers liegt im Kontrollverlust über die Plattform selbst. BaaS erlaubt meist nur eingeschränkten Zugriff auf den horizontalen und vertikalen Software-Stack. Konkrete Killer-Kriterien für die Realisierung eines Projektes basierend auf BaaS könnten z.B. gewünschte Laufzeitumgebungen oder DBMSs, benutzerdefinierte Regeln zur Skalierung oder konkrete Anforderungen an die Server-Standorte sein.
Technische Hürden: Durch die zusätzliche Abstraktion sind die Anbieter gezwungen, technische Rahmenbedingungen zu definieren, die nicht zwingend mit den Erfordernissen des eigenen Projekts vereinbar sind. Einschränkungen wie die maximale Dateigröße eines Objektes, die Anzahl nebenläufiger Operationen oder die maximale Verarbeitungsdauer einer Anfrage müssen vorher sorgfältig recherchiert werden.
Zukunftssicherheit: Auf dem Markt befindet sich eine Vielzahl verschiedener BaaS-Dienstleister. Bekanntester Vertreter ist sicherlich Parse.com, das 2013 von Facebook gekauft wurde und bereits im Jahr 2017 wieder eingestellt werden wird. Um zukünftige Migrationskosten zu vermeiden, gilt es also vorab zu evaluieren, wie lange der erwartete Lebenszyklus des Produktes dauern wird. Eine Showcase-App, deren Verwendung auf ein Messe-Wochenende beschränkt ist, hat in dieser Hinsicht andere Anforderungen als eine professionelle Applikation im Enterprise-Bereich.
Pricing: Ihre Dienstleistung lassen sich die verschiedenen Anbieter natürlich bezahlen. Neben einer leistungsorientierten Vergütung werden häufig gestaffelte Tarife angeboten. Unabhängig vom Bezahlmodell besteht mit fortschreitender Reife einer mobilen Applikation allerdings die Gefahr, dass sich bei steigender Nutzerzahl der Anwendung Cash-Flow und Backend-Kosten unterschiedlich entwickeln.
Datenschutz: Wie, wo und von wem die Daten der verschiedenen Dienste gespeichert werden, ist bei Cloud-Lösungen für den Nutzer nicht nachvollziehbar. Bei der Speicherung sensibler Daten ist bei der Wahl eines entsprechenden Anbieters Vorsicht geboten.
Fazit und Leitfaden
BaaS ist Chance und Risiko zugleich. Bei der Evaluierung einer entsprechenden Lösung sollten Sie daher folgende Fragestellungen im Hinterkopf behalten:
- Brauche ich überhaupt einen (weiteren) externen Dienstleister oder verfüge ich bereits durch andere Projekte über die entsprechenden Ressourcen und Kenntnisse?
- Welche klassischen Kernfunktionalitäten mobiler Anwendungen (Push-Benachrichtigungen, User-Management, OAuth-Support usw.) muss der Anbieter bereitstellen?
- Mit welchen Erlösen rechne ich bei steigender Nutzerzahl? Stehen diese Erlöse in einem sinnvollen Verhältnis zu den erwarteten Kosten durch das Backend?
- Mit welchen Client-Systemen möchte ich auf das Backend zugreifen? Bietet der Provider entsprechende SDKs an und werden diese auch regelmäßig gepflegt?
- Welche Technologien werden für die Backend-Logik verwendet?
- Wie gut sind die verwendeten Technologien dokumentiert?
- Benötige ich serverseitig komplexe Business-Logik, die ich evtl. gar nicht mit der bereitgestellten Technik umsetzen kann?
- Welche technischen Einschränkungen muss ich darüber hinaus akzeptieren, wenn ich mich für einen bestimmten Provider entscheide?
- Wie lang ist der erwartete Lebenszyklus meiner Applikation? Kann ich davon ausgehen, dass der potenzielle Anbieter diesen Zeitraum überlebt?
- Werden für den Ernstfall Werkzeuge zur Migration bereitgestellt?
- Welche Anforderungen habe ich an den Datenschutz?
Sollte BaaS keine zufriedenstellende Lösung für Sie darstellen, steht Ihnen die itemis AG beratend zur Seite und informiert Sie gerne über passende Alternativen.
Kommentare