Mobile Backend in Microsoft Azure – von Mobile Services zu Mobile Apps

Wer Backend-Funktionen für mobile Anwendungen wie das Lesen und Speichern von Daten, Authentifizierung von Benutzern oder den Versand von Push-Benachrichtigungen mit hoher Automatisierung in der Cloud bereitstellen möchte, findet aktuell in Microsoft Azure zwei dafür bestimmte Dienste: Azure Mobile Services und Azure App Services Mobile Apps. Die Azure Mobile Services existieren hierbei seit 2012, die Mobile Apps im Rahmen der App Services erst seit 2015. In diesem Artikel möchte ich auf die Unterschiede zwischen Diensten eingehen und dabei helfen zwischen ihnen auszuwählen.

Mobile Services, der ältere der beiden Dienste, hatte und hat seit seinem Start den Nachteil, dass separat und nach API Calls abgerechnet wird. In vielen Fällen wird jedoch neben dem Backend für die eigene App, zudem noch eine Websites oder weitere Serverdienste für andere mobile Anwendungen bereit gestellt. Bei Nutzung der Mobile Services, musste hier jeweils eine separate Umgebung für die einzelnen Dienste bereitgestellt werden. Beispiel: Zwei Mobile Services für zwei Mobile Apps und eine Azure Web App für die dazugehörige Website.

Bei Nutzung der neuen Mobile Apps auf Basis der App Services Plattform können nun diverse Mobile Apps, Web Apps oder auch API Apps in einem App Services Plan bereitgestellt werden. Das bedeutet, dass diese Dienste sich eine Umgebung und dadurch auch die damit verbunden Kosten teilen. Hierdurch ist zudem keine komplizierte Bestimmung der zu erwartenden API-Calls vorab mehr nötig und auch die Skalierung erfolgt über alle eigenen Dienste.

Die neuen mobile Apps findet man im aktuellen Azure Portal unter https://portal.azure.com, die Mobile Services lediglich im klassischen Portal unter https://manage.windowsazure.com. Für die Mobile Services wird es wohl in Zukunft kaum neue Funktionen geben, da der Fokus der Entwicklung auf den Mobile Apps liegt. Mobile Services bleibt aber bis auf Weiteres ein unterstützter Dienst (siehe https://azure.microsoft.com/en-us/documentation/articles/app-service-changes-existing-services/) und kann weiterhin genutzt werden.

Bei neuen Projekten sind jedoch Mobile Apps die bessere Wahl, da hier mehr Funktionalitäten zur Verfügung stehen, das Management vereinfacht und vereinheitlicht wurde, eine enge Integration mit den anderen App Services existiert und auch Kapazität noch einfacher skaliert werden kann.

In der Preview Phase der Mobile Apps gab es noch einige Gründe weiterhin auf die Mobile Services zu setzen, wie z.B. das generierte Node.js Backend. Die hohe Automatisierung bei der Veröffentlichung des Backends ist jedoch mittlerweile auch optional in Mobile Apps verfügbar. Hierfür muss zunächst eine Datenverbindung zu einer SQL Datenbank über den integrierten Dialog erstellt werden.

image

Sobald diese Datenverbindung angelegt ist, kann auch sogleich auf die Funktionen “Easy Tables” und “Easy APIs” zurückgegriffen werden. Diese Funktionen können genutzt werden, um direkt über das Management Portal neue Datentabellen mit dazugehörigen CRUD-APIs, sowie ergänzende APIs anzulegen.

EasyAPIs

Auch die aus den Mobile Services bekannten Quick Start Projekte sind in Mobile Apps verfügbar. Hier kann mit einem Klick ein rudimentäres Backend angelegt werden und eine vorhanden iOS (Objective-C / Swift), Android, Windows (C#) oder Xamarin (Android / iOS / Xamarin Forms) App angebunden werden. Auf Wunsch kann auch zum schnelleren Start eine bereits vorbereitete App in einer dieser Technologien heruntergeladen werden.

QuickStart

Da auf der Client Seite im SDK zwischen Mobile Service und App Services vieles gleich geblieben ist, sollte hier ein Umstieg nicht schwer fallen. Wenn also für eine neue App ein Cloud-Backend bereitgestellt werden soll, empfehle ich die Nutzung von Azure Mobile Apps, da hier größere Flexibilität, Kontrolle und Funktionsumfang geboten werden. Wenn eine existierende App mit Azure Mobile Service Backend auf Mobile Apps migriert werden soll, kann auf einen detaillierten Migrationsleitfaden zurückgegriffen werden.

Links:

English Abstract:

For hosting a backend for a mobile app in the cloud there are two choices on Microsoft Azure. There are the established Mobile Services and the new Mobile Apps. As Mobile Services have some restrictions in terms of billing, scalability and management, developers should have a look at the new Mobile Apps. Mobile Apps are based on App Services and offer easy set up, management and cost control. To migrate your existing app from Mobile Services to Mobile Apps you can use the guide on the azure website.