DevOps

App-Entwicklung mit Firebase

Bei esentri probieren wir regelmäßig neue Tools aus, welche uns den Entwicklungsalltag erleichtern können. Heute stellen wir euch Firebase vor, eine Cloud Plattform für die Anwendungsentwicklung, welche viele kleine Services zu einer gemeinsamen Anwendung kombiniert.

Als Testanwendung nehmen wir die schon aus dem Zeebe Blogartikel bekannte Buchverwaltungsanwendung auf React Basis, welche vollständig auf Firebase umgesetzt werden soll – eine klassische CRUD Anwendung. Dafür bietet Firebase folgende Services:

Cloud Firestore – die Datenbank (alternativ Realtime Database)

Um Daten zu persistieren kann bei Firebase zwischen zwei Datenbanken gewählt werden, dem Cloud Firestore und der Realtime Database. Beides sind NoSQL Datenbanken, welche Daten in Dokumenten oder als JSON Baum speichern. Ein detaillierter Vergleich findet sich in der Firebase Dokumentation. Herausragend ist dabei die Realtime-Funktion, welche Änderungen in der Datenbank direkt auf allen Clients zur Verfügung stellt.

Firebase Firestore

Firestore – die Datenbank

Cloud Functions – das Backend

Firebase stellt eine FaaS Umgebung zur Verfügung, um Backendaufgaben zu realisieren. Damit können komplexe Aufgaben losgelöst vom Frontend bearbeitet werden, wie z.B. die Verarbeitung von hochgeladenem Bildmaterial. Funktionen werden dabei in JavaScript geschrieben.

Cloud Storage – der Speicher

Der Cloud Storage von Firebase dient zur Ablage von Daten, welche von den Nutzern der Plattform erzeugt wurden. In unserem Anwendungsfall sind dies z.B. Bilder der Buchcover, um diese möglichst schnell identifizieren zu können. Da sich die Firebase Teilbereiche konfigurationsarm miteinander verbinden lassen, ist ein einfaches Ablegen der Daten durch Cloud Functions und erneuter Zugriff durch das Frontend problemlos möglich.

Authentication – die Zugriffskontrolle

Über die Onlineoberfläche von Firebase lässt sich der Authentifizierungsservice für die Anwendung aktivieren. Dabei stehen verschiedene Möglichkeiten zur Auswahl, von dem klassischen Nutzerkonto (Email und Passwort) bis hin zu verschiedenen Single Sign On Anbietern (Google, Facebook, …)

Hosting – die Online Schnittstelle

Hier wird das Frontend unserer Anwendung gespeichert. Firebase stellt dafür automatisch eine Domain inklusive SSL Zertifikat zur Verfügung, um die sichere Kommunikation mit der Anwendung zu ermöglichen. Alternativ lassen sich auch eigene Domains hinterlegen. Einstellungen für das Routing (Redirects) und weitere Ausnahmen lassen sich ebenfalls festlegen.

Warum genau Firebase?

Wenn mit der Firebase Plattform entwickelt wird, kann der Fokus sofort auf das Produkt und die Entwicklung gelegt werden, alles andere funktioniert auf Anhieb ohne weitere Konfiguration. Deployment, Authentifikation oder eine zusätzliche Funktion? Alles nur einen Mausklick entfernt. Hinzu kommt die gut strukturierte Dokumentation mit zahlreichen Beispielen, welche es dem Entwickler erleichtert in die Firebase-Welt einzutauchen und die Plattform kennenzulernen. Dafür bietet Firebase ebenfalls ein entwicklerfreundliches Preismodell, bei dem die meisten Funktionen für Entwicklungszwecke kostenlos zur Verfügung stehen. Lediglich ausgehende Netzwerkverbindungen von Cloud Functions sind limitiert. 

Soll das System in den Produktivbetrieb gehen – ebenfalls kein Problem. Firebase skaliert problemlos, es wird nur so viel gezahlt, wie die Anwendung verbraucht.

Fazit

Firebase bietet einen schnellen Einstieg in die Anwendungsentwicklung mit der Cloud und ist dabei skalierfähig. Egal, ob kleines Nebenprojekt oder skalierbare Business-Anwendung, Entwickler können sich so auf das Wesentliche konzentrieren – das Produkt. Interesse geweckt? Weitere Infos gibt es hier.