Software & Infrastruktur

Artikel merken

Parse: Der Backend-as-a-Service-Anbieter im t3n-Test

App-Entwickler benötigen immer häufiger auch eine Server-Infrastruktur. Anstatt alles selbst zu machen, kann man „Backend-as-a-Service“-Anbieter wie Parse nutzen. Der Service macht den Anfang einer Serie, in der wir euch die wichtigsten Anbieter vorstellen.

Lesezeit: 6 Min.
Parse ist ein BaaS-Anbieter, der zu Facebook gehört. (Screenshot: Parse)

Viele App-Entwickler stehen irgendwann vor dem Problem, Daten im Internet speichern zu müssen. Natürlich kann man da einen eigenen Server aufsetzen und ein Backend programmieren. Oft unterschätzen Entwickler aber den Aufwand, den die Entwicklung des Backends und insbesondere die Serverwartung mit sich bringen. Sollte die eigene App erfolgreich werden, muss man skalieren – und das ist nicht einfach. Nicht umsonst haben Firmen extra Mitarbeiter oder ganze Abteilungen für die Serverwartung. Wenn man aber alleine ist oder nur ein kleines Team hat, ist das problematisch. Die Zeit, die man zur Serverwartung aufwendet, fehlt dann bei der Entwicklung der App. Und natürlich verursachen eigene Server auch Kosten, die man nicht unterschätzen sollte.
Grafik: Jan Heidemann

Wir nehmen für euch Backend-as-a-Service-Anbieter unter die Lupe. Teil 1: Parse. (Grafik: Jan Heidemann)

Die einfachste Lösung ist, so etwas wie Apples iCloud zu verwenden. Doch leider funktioniert das nicht immer zuverlässig. Dazu kommt der wohl größte Nachteil: Man kommt nur mit iOS und Mac OS X an seine Daten. Hier kommen nun „Backend-as-a-Service“-Dienste (BaaS) ins Spiel. Hier kümmert sich eine externe Firma um die ganze Technik – wartet also die Server, stellt eine API bereit und skaliert automatisch mit.

Im besten Fall ist der Dienst plattformunabhängig und lässt sich mit allen Systemen (zum Beispiel iOS, Android, Windows Phone, REST) nutzen. Ich möchte in dieser Serie daher verschiedene BaaS-Anbieter vorstellen und vergleichen. Heute geht es um Parse. Parse ist ein Startup aus New York, das sich zum Ziel gesetzt hat, das komplette Backend für mobile Apps anzubieten. Im April 2013 wurde Parse von Facebook übernommen, wobei das Soziale Netzwerk allerdings versprochen hat, dass alles beim Alten bleibt. Parse besitzt keine eigene Server-Infrastruktur, sondern benutzt Amazons „Elastic Computation Cloud“ (EC2) mit Servern in den USA. Vielleicht wird das im Zuge der Übernahme umgestellt auf Facebooks eigene Server, das aber dürfte in jedem Fall noch einige Zeit in Anspruch nehmen.

Der Key-Value-Store von Parse

Basis von Parse ist ein einfacher Key-Value-Store. Entwickler können dort aber auch Relationen definieren und komplexe Queries formulieren. Einzelne Objekte sind mittels ACLs (Access Control Lists) geschützt und nur für bestimmte Nutzer zugänglich. So lassen sich auch einfach Daten zwischen unterschiedlichen Nutzern austauschen, indem die ACLs entsprechend gesetzt werden. Ein großer Vorteil gegenüber iCloud.

Abgesehen von simplem Text (Parse sagt, alles was sich als JSON verpacken lässt, kann gespeichert werden) können auch Dateien bei Parse abgelegt werden. Allerdings ist der Platz in der kostenlosen Version auf ein Gigabyte beschränkt. Alternativ können Nutzer aber auch zum Beispiel Bilder in der Datenbank speichern. Das hat den Vorteil, dass diese nicht von dem einen Gigabyte abgezogen werden, da der Datenbankplatz unbegrenzt ist.

Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Um ein Objekt zu speichern ist nur folgender Code (Objectice-C) notwendig:


PFObject *rating = [PFObject objectWithClassName:@"Rating"];
[rating setObject:[NSNumber numberWithInt:1] forKey:@"stars"];
[rating saveInBackground];

oder wer kein Objective-C kann, hier die Android (Java)-Version:


ParseObject rating = new ParseObject("Rating");
rating.put("stars", 1);
rating.saveInBackground();

Zum Debuggen und Ansehen/Ändern der gespeicherten Daten gibt es eine Weboberfläche.

Parse Data Browser

So sieht der „Parse Data Browser“ aus. (Screenshot: Parse)

Parse kann auch Push-Nachrichten

Zusätzlich zur Datenspeicherung bietet Parse auch das Versenden von Push-Nachrichten an. Das funktioniert mit iOS, Android und Windows Phone. Die Nachrichten lassen sich über die Webseite oder die API versenden, wobei Parse zwischen allen Nutzern einer App, einer Teilgruppe (sogenannten Channels) und einem spezifischen Nutzer unterscheidet, denen man Push-Nachrichten schicken kann. Denkbar wären etwa in einer News-App verschiedene Rubriken als Channels abonnierbar zu machen. Serverseitig schickt man nun die Push-Nachrichten über die entsprechenden Channels und Parse erledigt den Rest automatisch.

Man kann auch die Plattform auswählen und so zum Beispiel nur Nachrichten an Windows-Phones schicken. In der Pro-Version kann das noch spezifischer eingestellt werden. Man kann auch eine Lebensdauer einer Push-Nachricht festlegen. Ist der Client während dieser Zeitspanne nicht erreichbar, wird die Nachricht verworfen und nie zugestellt.

Parse Push Nachrichten Konsole

Die Push-Nachrichten-Konsole von Parse. (Screenshot: Parse)

Als kostenpflichtiges Upgrade bietet Parse auch das zeitversetzte Senden der Push-Nachrichten über die Webseite an. Sogar mit Zeitzonenunterstützung (Beispie: Sende eine Nachricht an alle um 10 Uhr lokaler Ortszeit). Allerdings lässt sich das auch über die API lösen, in dem man sein externes Kommando erst zu einer definierten Zeit die API-Anfrage senden lässt.

Bei jedem Parse-Zugang dabei ist eine Statistik, die zeigt, wie oft die App geöffnet wurde. Kostenpflichtig gibt es auch noch Analysen – beispielsweise über die Aufrufe der Push-Nachrichten.

Parse Statistiken

Parse bietet etliche Statistiken an. (Screenshot: Parse)

Auf der nächsten Seite lest ihr, wie ihr  mit Parse ganz einfach Logins realisieren könnt und was die Server-Code-Laufzeitumgebung Cloud Code kann.

Parse: Simple Logins

Logins lassen sich mit Parse recht simpel realisieren – entweder traditionell mit Benutzernamen und Passwort oder per Facebook und Twitter und das, ohne, dass man sich extra mit der Facebook- oder Twitter-API beschäftigen müsste. Es wird automatisch ein Benutzer angelegt und das Einloggen auf allen Geräten erlaubt.

Parse bietet sogar ein fertiges Login-Formular an, das man in seine App einbauen kann. Ein Google-Login beziehungsweise ein allgemeiner OAuth-Login sind nicht verfügbar und es ist fraglich, ob dieser nach dem Kauf durch Facebook noch eingebaut wird. Allerdings kann man ihn selbst in seine App einbauen und manuell einen Nutzer anlegen.

Parse: Cloud-Code

Die Server-Code-Laufzeitumgebung Cloud Code ist im letzten Jahr hinzu gekommen. Cloud Code basiert auf node.js, wird also mittels JavaScript programmiert. Ziel von Cloud Code ist es, Programmlogik auf den Server auszulagern. Man kann Cloud Code zum Beispiel beim Speichern von Daten im Key-Value-Store ausführen und damit Daten validieren. Oder aber man verschickt serverseitig Mails, wenn etwas gespeichert wird. Alternativ kann man diese Cloud-Code-Funktionen auch direkt aufrufen und damit Aktionen auslösen.

Ein Anwendungsbeispiel: Der Server lädt Daten von einem externen Dienst, formatiert sie und der Client lädt sie im passenden Format herunter. Kleiner Wermutstropfen: Der Code darf maximal 15 Sekunden laufen. Man sollte sich also kurz fassen. Auch sind nicht alle JavaScript-Bibliotheken verfügbar, das populäre jQuery beispielsweise fehlt. Der Grund ist einfach: Cloud Code läuft nicht im Browser, hat also auch keinen Zugriff auf viele Browser-Methoden, die zum Beispiel jQuery nutzt. Aber für viele Problemstellungen lässt sich auch mit nacktem JavaScript eine Lösung finden. Zusätzlich gibt es sogenannte Module, die die Funktionalität erweitern – etwa zum Senden von SMS, dem Bezahlen mittels Stripe, der Bilderkennung oder Bildbearbeitung (Skalieren, Konvertieren, Thumbnail-Generierung). Man kann auch eigene Module schreiben und einbinden. Mit ein wenig Anpassung gehen aber auch manche node.js-Module wie beispielsweise ein RSS-Parser. Dazu gibt es seit kurzem auch eine eingebaute Cron-Funktion, mit der man Cloud-Clode-Funktionen timen oder regelmäßig ausführen kann.

Parse Cloud Code Job timen

Mit Parse lassen sich via Cloud Code auch Jobs timen. (Screenshot: Parse)

Webhosting bei Parse

Will man komplett auf einen eigenen Server verzichten, kann man seine Webseite auch bei Parse hosten lassen. Allerdings gibt es dort kein PHP, sondern man ist auf JavaScript und Parses Cloud Code angewiesen. Es steht das node.js-Web-Framework Express zur Verfügung. Eine eigene Domain anstelle einer Parse-Subdomain zu verwenden, ist allerdings kostenpflichtig.

Der Preis: Was kostet Parse?

In der Grundversion ist Parse kostenlos und erlaubt damit die unbegrenzte Speicherung im Key-Value-Store, ein Gigabyte Dateien, eine Million API-Requests und eine Million Pushes pro Monat (maximal 20 gleichzeitige API-Requests pro Sekunde). Verbraucht man mehr, werden sieben Dollar-Cent je weiterer 1.000 Requests beziehungsweise Pushes fällig, dazu kommen 20 Dollar-Cent pro weiterem Gigabyte Speicherplatz.

Alternativ kann man ein Pro-Paket buchen, das mit 199 Dollar im Monat nicht ganz günstig ist, dafür aber auch 15 Millionen API-Requests, fünf Millionen Push-Nachrichten, 40 API-Requests gleichzeitig sowie zehn Gigabyte Speicherplatz bietet. Dazu gibt es noch Statistiken, Push-Nachrichten-Zeitplanung und ein Branding der E-Mails für Passwort-Resets. Enterprise-Kunden können ein individuelles Angebot bekommen, in dem auch schnellere und bessere Server, Telefonsupport, Service-Level-Agreements und weitere verhandelbare Funktionen enthalten sind.

Fazit

85 Millionen US-Dollar soll Parse Facebook wert gewesen sein. (Screenshot: parse.com)

85 Millionen US-Dollar soll Parse Facebook wert gewesen sein. (Screenshot: parse.com)

Für iOS-Entwickler ist Parse momentan die umfassendste und einfachste Lösung. Man darf sich nur nicht daran stören, dass der Dienst Facebook gehört und die Daten ausschließlich in den USA bei Amazon gespeichert werden. Je nach App-Zielgruppe ist ein Server-Standort in Deutschland vielleicht besser – allein aus Geschwindigkeitsgründen. Im Allgemeinen dürften aber mehr Nutzer in den USA sitzen als hier. Wer Angst vor der NSA hat, sollte von Parse ebenfalls Abstand nehmen. Die Verbindung zu Parse ist zwar SSL-verschlüsselt, die Daten liegen allerdings unverschlüsselt auf den Servern.

Parse in seine App einzubauen, ist sehr einfach – dabei helfen auch die umfangreiche Dokumentation, die Tutorials und nicht zuletzt Videos (bisher, aktuell) und ein Forum. Ich persönlich habe gute Erfahrungen mit Parse gemacht. In meiner iOS-/Mac-App Home Remind verwende ich ihr Backend, um Erinnerungen von der iOS-App zum Mac-Pendant zu bekommen. Anfangs gab es noch kein Mac-SDK, sodass ich dort per REST mit Parse kommuniziert habe (was auch völlig problemlos und einfach funktioniert). Mittlerweile nutze ich dort aber auch das mittlerweile vorhandene Mac-SDK.

Und welche Erfahrungen habt ihr mit Parse gemacht? Ich freue mich auf eure Kommentare!

Das könnte dich auch interessieren

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

6 Kommentare
tiptronic

Könntet ihr den Artikeln eigentlich ein Datum anfügen? Ich bin auf diese Seite via Google gestoßen – und man hat keine Ahnung wie alt der Artikel eigentlich ist (nur auf der ersten Seite steht das, oder?)

Antworten
Sebastian Düvel
Sebastian Düvel

Ja, das steht nur auf der ersten Seite oben rechts unter der Autoreninfo.

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Digitales High Five
Holger Schellkopf (Chefredakteur t3n)

Anleitung zur Deaktivierung

Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder