Übersicht über Cloud-Services zur Entwicklung eines Backends für mobile Anwendungen

Die Backend-Entwicklung ist ein komplexer und kostspieliger Prozess. Bei der Entwicklung mobiler Anwendungen erhält er häufig unangemessen mehr Aufmerksamkeit. Dies ist nicht gerechtfertigt, da Sie jedes Mal Szenarien implementieren müssen, die für mobile Anwendungen typisch sind: Senden Sie eine Push-Benachrichtigung, finden Sie heraus, wie viele Benutzer an der Aktion interessiert sind, und geben Sie eine Bestellung auf usw. Ich möchte eine Lösung, die es uns ermöglicht, uns auf Dinge zu konzentrieren, die für die Anwendung wichtig sind, ohne Qualitäts- und Detailverluste bei der Implementierung sekundärer Dinge. Und es gibt solche Lösungen!

Solche Dienste werden als Mobile Backend-as-a-Service (MBaaS) bezeichnet. Die Prozesse zum Erstellen eines Backends mit ihrer Hilfe sind im Vergleich zur Entwicklung von "manuell" vereinfacht. Dies erspart die Einstellung eines separaten Backend-Entwicklers. Die Tatsache, dass der MBaaS-Anbieter sich um alle Probleme im Zusammenhang mit Serverstabilität, Lastausgleich, Skalierbarkeit und anderen Infrastrukturschwierigkeiten kümmert, gibt Vertrauen in die Qualität des Ergebnisses und ist der Hauptvorteil solcher Dienste.

In diesem Artikel werden einige große und etablierte Dienste betrachtet: Microsoft Azure, AWS Amplify, Google Firebase, Kumulos.



Elemente, für die wir Services in Betracht ziehen: Backend- und Analysefunktionen, Komplexität der Service-Integration, Zuverlässigkeit und Stabilität der Arbeit sowie Preispolitik. Lassen Sie uns jeden Dienst durchgehen und seine Funktionen anhand dieser Kriterien notieren.

Microsoft Azure





Microsoft Azure ist ein IaaS-Dienst (Infrastructure-As-A-Service), der umfassende BaaS-Funktionen enthält und beim Erstellen eines Backends für mobile Anwendungen hilft.

MBaaS


Microsoft Azure bietet alle Funktionen zum Erstellen eines Backends für eine mobile Anwendung. Verarbeitung von Push-Benachrichtigungen, automatische Skalierung, Datensynchronisation, Integration in soziale Netzwerke und vieles mehr.

Ein wichtiges Merkmal von Azure ist der geografische Standort der Server. Sie befinden sich in 54 Regionen der Welt, was die Wahrscheinlichkeit erhöht, einen Server auszuwählen, der für die Verzögerung geeignet ist. Da bei Störungen meist nur bestimmte Regionen leiden, ist davon auszugehen, dass je mehr Regionen, desto weniger wahrscheinlich ist es, dass diese sehr „instabil“ werden. Laut Microsoft haben sie mehr Regionen als jeder andere Anbieter von Cloud-Lösungen. Dies ist zweifellos ein Plus.



Analytik


Der Dienst bietet in Echtzeit die Möglichkeit, den Zustand von Anwendungen zu überwachen und Berichte über "Abstürze" zu sammeln. Auf diese Weise können Sie das Problem sofort lokalisieren und lösen.

In Azure können Sie auch eine eigene Bibliothek zum Sammeln von Analysen in Anwendungen verwenden: Sammeln Sie grundlegende Metriken (Informationen zum Gerät, zur Sitzung, zur Benutzeraktivität usw.) und erstellen Sie Ihre eigenen Ereignisse für die Nachverfolgung. Alle gesammelten Daten werden sofort nach Azure exportiert, sodass Sie analytische Arbeiten mit ihnen in einem praktischen Format durchführen können.

Zusätzliche Funktionalität


Es gibt auch interessante Funktionen wie das Testen von Anwendungsbuilds auf realen Geräten, CI / CD-Einstellungen zur Automatisierung des Entwicklungsprozesses und Tools zum Senden von Anwendungsbuilds für Betatests oder direkt im App Store oder bei Google Play

Mit Azure können Sie das sofort einsatzbereite Framework für die Arbeit mit Karten und Geodaten verwenden, was die Arbeit mit diesem Format vereinfacht.

Besonders interessant ist die Möglichkeit, Probleme mit künstlicher Intelligenz zu lösen, mit der Sie verschiedene analytische Indikatoren vorhersagen und gebrauchsfertige Tools für Computer Vision, Spracherkennung und vieles mehr verwenden können.

Komplexität der Integration


Der Microsoft Azure-Dienst bietet SDKs für die wichtigsten mobilen Plattformen (iOS und Android) und, was nicht häufig der Fall ist, für plattformübergreifende Lösungen (Xamarin und PhoneGap).

Im Allgemeinen beschweren sich Benutzer über eine komplizierte Schnittstelle und eine hohe Eintrittsschwelle. Dies weist auf mögliche Probleme bei der Service-Integration hin.

Es ist wichtig zu verstehen, dass ein hoher Eintrittsschwellenwert bei Azure kein Sonderfall ist, sondern ein häufiges Problem für IaaS. Beispielsweise sind auch Amazon Web Services, auf die später noch eingegangen wird, noch stärker von dieser Krankheit betroffen.

Zuverlässigkeit




Die Stabilität des Dienstes von Microsoft sieht anständig aus. Es ist ersichtlich, dass kurzfristige Störungen in verschiedenen Regionen mindestens einmal im Monat auftreten können. Dieses Bild zeigt eine ausreichende Stabilität des Dienstes an. In bestimmten Regionen treten selten Fehlfunktionen auf, die sehr schnell behoben werden, sodass der Dienst eine angemessene Betriebszeit aufrechterhalten kann.



Dies wird durch die Liste der jüngsten Vorfälle auf Azure-Servern bestätigt. Bei den meisten handelt es sich um kurzfristige Warnungen, und das letzte Mal, dass die Server "lagen", war Anfang Mai. Statistiken bestätigen das Bild eines stabilen Dienstes.

Kosten


In der Preispolitik von Microsoft Azure gibt es unterschiedliche Tarife für die Bezahlung des Dienstes. Außerdem gibt es einen kostenlosen Tarif mit bestimmten Einschränkungen, der zum Testen ausreicht. Es ist wichtig, sich daran zu erinnern, dass Azure ein IaaS-Dienst ist, von dem die meisten aufgrund ihrer Spezifität und Komplexität bei der Berechnung der Arbeitsressourcen unter der Schwierigkeit leiden, die Arbeitskosten vorherzusagen. Viele haben Schwierigkeiten und oft sogar die Unfähigkeit, die verwendeten Kapazitäten korrekt zu berechnen. Die tatsächliche Punktzahl kann erheblich von der Punktzahl abweichen, auf die Sie sich verlassen haben.



Zusätzlich zu diesen Plänen verfügt Azure über separate kostenpflichtige Dienste: App Service Domain, Azure App Service-Zertifikate und SSL-Verbindungen. Alle beziehen sich auf die Verwaltung Ihrer Infrastruktur, wir werden sie nicht betreffen.
In vielen Bewertungen beschweren sich Benutzer über eine schwierige Preispolitik und die Unfähigkeit, die Servicekosten vorherzusagen. Der von Microsoft vorgeschlagene Taschenrechner wird als nutzlos bezeichnet, und der Dienst selbst ist extrem teuer.

Azure-Zusammenfassung


Der Azure-Dienst von Microsoft ist ein funktionales und stabiles Tool zur Verwendung als primärer MBaaS-Anbieter. Die Tatsache, dass der Dienst zunächst eine vollwertige Infrastruktur bietet, eröffnet viele Möglichkeiten für die Weiterentwicklung Ihres Backends außerhalb des Rahmens mobiler Anwendungen. Eine große Anzahl von Servern und die große Anzahl von Regionen, in denen sie sich befinden, helfen bei der Auswahl der für Ihre Verzögerung am besten geeigneten. Positive Nutzerbewertungen bestätigen dies. Von den negativen Aspekten - eine hohe Eintrittsschwelle und Schwierigkeiten bei der Vorhersage der Kosten des Dienstes.



Wird es passen? Über diese Links können Sie mehr über Microsoft Azure erfahren, alle Details studieren und mit der Verwendung beginnen:



AWS Amplify




Amazon Web Services (AWS) ist das zweite IaaS, das auf unserer Liste steht. Es stellt eine große Anzahl von Diensten dar und ist insofern interessant, als es in Analogie zu Microsoft Azure eine spezielle Reihe von Funktionen namens AWS Amplify gibt , bei denen es sich im Wesentlichen um ein mobiles Backend handelt. Möglicherweise haben Sie bereits früher den Namen AWS Mobile Hub gehört, der seit langem der Hauptdienst mit MBaaS-Funktionalität ist. Laut Amazon selbst ist Amplify ein modifizierter und verbesserter Mobile Hub, der die Hauptprobleme seines Vorgängers löst.



Laut Amazon vertrauen viele große Unternehmen, darunter Netflix, Airbnb und viele andere, dem Amplify-Dienst.

MBaaS




Mit der mobilen Lösung von Amazon können Sie schnell alle erforderlichen Funktionen für eine mobile Anwendung konfigurieren. Ob Serverlogik, Datenspeicherung, Benutzerautorisierung oder Verarbeitung und Bereitstellung von Inhalten, Benachrichtigungen und Analysen.

Amazon bietet auch alle erforderlichen Infrastrukturbedingungen wie Skalierung, Lastausgleich und mehr.

Analytik


Für die Analyse ist ein separater Amazon Pinpoint- Dienst verantwortlich, in dem Sie Ihre Zielgruppe segmentieren und umfangreiche Targeting-Kampagnen über verschiedene Kanäle (Push-Benachrichtigungen, SMS und E-Mail) durchführen können, um Benutzer für den Dienst zu gewinnen.

Pinpoint bietet Echtzeitdaten. Sie können dynamische Zielgruppensegmente erstellen, deren Engagement analysieren und Ihre Marketingstrategie basierend auf diesen Daten optimieren.

Zusätzliche Funktionalität


Amazon Amplify bietet Zugriff auf die AWS Device Farm , um Builds Ihrer Apps auf realen Geräten zu testen. Der Service ermöglicht das parallele automatisierte Testen Ihrer Anwendungen auf einer Vielzahl von physischen Geräten. Manuelle Tests sind ebenfalls verfügbar.

Der AWS Amplify Console-Dienst ist ein Tool zum Bereitstellen und Hosten von Serverressourcen und Webanwendungen mit der Möglichkeit, CI / CD zur Automatisierung des Entwicklungsprozesses zu konfigurieren.

Ungewöhnlich ist auch die Möglichkeit, Sprach- und Text-Bots sofort als Schnittstelle für die Interaktion mit dem Benutzer in mobile Anwendungen einzuführen. Es funktioniert auf Amazon Lex .

Interessanterweise bietet AWS Amplify auch eine kleine Bibliothek vorgefertigter UI-Komponenten für Ihre React Native-Anwendung, die als leichte Beschleunigung des Entwicklungsprozesses dienen oder im Prototyp oder MVP Ihres Projekts verwendet werden können.

Komplexität der Integration


Amazon Amplify bietet ein SDK für iOS , Android , JavaScript und React Native sowie eine recht detaillierte Dokumentation . Es ist wichtig zu beachten, dass der Dienst neben REST auch GraphQL unterstützt.

Wie im Azure-Analyseprozess angegeben, ist ein hoher Eintrittsschwellenwert ein häufiges Problem für alle IaaS. Amazon ist keine Ausnahme und umgekehrt. Dies ist wahrscheinlich einer der am schwierigsten zu verstehenden Dienste. Dies liegt an den vielen verschiedenen Tools, über die AWS verfügt. Das Erlernen von AWS von Grund auf wird viel Zeit in Anspruch nehmen. Wenn Sie sich jedoch nur auf Amplify beschränken, können Sie eine funktionierende Lösung in einem angemessenen Zeitrahmen implementieren.

Zuverlässigkeit





Der Statistikdienst von Amazon scheint weniger stabil zu sein als Azure. Aber es freut eine kleine Anzahl von vollständigen Stromausfällen (rote Blutkörperchen). Grundsätzlich ist alles, was passiert, Warnungen und Instabilität in der Arbeit einiger Dienste.

Dies wird durch die Liste der jüngsten Vorfälle auf AWS-Servern bestätigt. Einige davon sind Warnungen mit unterschiedlicher Dauer (manchmal bis zu 16 Stunden), und das letzte Mal, dass die Server "gelogen" haben, war Mitte Juni. Im Allgemeinen sieht es ziemlich stabil aus.



Kosten





Die Preispolitik von Amazon Web Services ist auf den ersten Blick sehr einfach: Zahlen Sie nur für das, was Sie verwenden, und überschreiten Sie das kostenlose Limit. Wie bei Microsoft Azure ist es jedoch umso schwieriger, die Gesamtkosten der Arbeit vorherzusagen, je mehr Dienste Sie verwenden.



Es gibt viele Bewertungen im Internet, die AWS als zu teuer bezeichnen. Was kann ich sagen, wenn es seit langem Unternehmen gibt, die bereit sind, Ihre Nutzung von AWS für einen bestimmten Betrag zu optimieren und die monatlichen Rechnungen so weit wie möglich zu minimieren?

Amazon Amplify Zusammenfassung


Im Allgemeinen ähnelt die Geschichte mit Amazon Amplify Azure. In vielerlei Hinsicht ähnliche Funktionen für MBaaS, die eine vollwertige Infrastruktur und die Möglichkeit zur Entwicklung Ihres Backends bieten. Die Marketing-Tools von Amazon, insbesondere Pinpoint, zeichnen sich positiv aus.

Unter den negativen Aspekten erinnern wir uns an eine nicht weniger hohe Einstiegsschwelle als Azure und die gleichen Schwierigkeiten bei der Prognose der Kosten. Hinzu kommt ein weniger stabiler Service und nach den Bewertungen kein reaktionsschneller technischer Support.

Wird es passen? Über diese Links können Sie mehr über Amazon Amplify erfahren, alle Details studieren und damit beginnen:


Google Firebase



Der Firebase- Dienst von Google ist eine der interessantesten Optionen als MBaaS-Dienst für Ihre Anwendung. Es hat sich seit langem als nützliches Werkzeug etabliert und eignet sich für viele bekannte Anwendungen: Shazam, Duolingo, Lyft und andere.


MBaaS




Firebase kümmert sich um alles, was Ihre mobile Anwendung benötigt. Der Service kombiniert vollwertige Backend-Funktionen wie Datenspeicherung, Synchronisation, Authentifizierung und Cloud-Funktionen (Ausführung des Backend-Codes). Derzeit enthält die Beta das Machine Learning Kit , das verschiedene maschinenbasierte Funktionen implementiert Lernen (Erkennen von Text, Objekten in Fotografien und vielem mehr).

Analytik


Ein wichtiges Merkmal von Firebase ist, dass der Service neben der Backend-Funktionalität eine Vielzahl von Möglichkeiten für die Anwendungsanalyse bietet. Integriertes Google Analytics, Segmentierung der Nutzerbasis und Arbeiten mit Push-Benachrichtigungen. Ebenfalls im Jahr 2017 verzeichnete Google eine starke Akquisition, indem es den weit verbreiteten Fabric-Service kaufte und zusammen mit Crashlytics, einem äußerst nützlichen Tool zum Verfolgen von Anwendungsfehlern und Sammeln von Statistiken und Absturzberichten auf Benutzergeräten, in Firebase integrierte.

Zusätzliche Funktionalität


Firebase bietet das Tool " Dynamische Links" von Firebase zur Verarbeitung dynamischer Links zu Ihren Inhalten. Mit diesem Tool können Sie Links generieren, die zur Anwendung führen. Wenn diese installiert ist, senden Sie den Benutzer zur Installation an den App Store oder an Google Play. Solche Links funktionieren auch abhängig von dem Gerät, auf dem sie geöffnet werden. Wenn es sich um einen Computer handelt, wird eine Seite im Browser geöffnet, und wenn das Gerät ein Übergang zur Anwendung ist.

Mit Google können Sie auch A / B-Tests Ihrer Anwendungen mithilfe von Firebase A / B-Tests durchführen und die Remote-Konfiguration mit dem Remote Config- Tool konfigurieren.

Komplexität der Integration


Es wird deutlich, dass dieser Dienst eine extrem große Anzahl von Funktionen für Ihre Anwendung kombiniert. Um Firebase zu integrieren, sollten Sie das SDK der erforderlichen Plattform verwenden, einschließlich iOS, Android, JavaScript sowie für C ++ und Unity. Dies ist sehr nützlich, wenn Sie Spiele entwickeln. Es ist wichtig zu beachten, dass Firebase über eine ziemlich detaillierte Dokumentation und eine breite Anwenderbasis von Entwicklern verfügt und daher eine große Menge unterstützender Inhalte im Netzwerk, unabhängig davon, ob es sich um Antworten auf Fragen oder um Artikel handelt.

Zuverlässigkeit


Soll ich mich auf Google verlassen - ein separater Artikel. Einerseits haben Sie einen sehr stabilen und funktionierenden Anbieter, andererseits wissen Sie nie, wann Google diesen Dienst schließen wird. Kein Wunder, dass Google von seiner Mission "Sei nicht böse" entfernt wurde.



Wenn ein Anbieter über solche Ressourcen verfügt, sollte die Verfügbarkeit auf 100% angestrebt werden. Sie können jedoch immer noch viele Meldungen zu Problemen mit dem Dienst finden, z. B. ein Zitat eines Benutzers: „Ausfallzeiten treten auf. Im Fall von Firebase könnte man sagen, dass "Betriebszeit" passiert " . Wenn Sie sich die Statistiken zu Ereignissen mit Firebase-Diensten ansehen, werden Sie feststellen, dass es sowohl kleine Ausfallzeiten als auch vollständige Abschaltungen für 5-7 Stunden gibt. Dies kann für Ihren Dienst von entscheidender Bedeutung sein.



Aber es kommt vor, dass die Probleme Wochen dauern. Wir dürfen nicht vergessen, dass kritischer und wichtiger Code für das Produkt auf diesen Diensten ausgeführt werden kann. Diese Statistiken sehen nicht sehr glücklich aus.

Kosten




Die Preispolitik von Firebase ist klar und einfach. Es gibt drei Pläne: Spark, Flame und Blaze. Sie unterscheiden sich ideologisch voneinander. Spark ist ein kostenloser Plan mit Einschränkungen, mit denen Sie einen wesentlichen Teil der Funktionalität der Plattform bereitstellen und testen können. Die Flame and Blaze-Pläne beinhalten eine kostenpflichtige Nutzung. Flame kostet feste 25 US-Dollar pro Monat, aber im Wesentlichen erhalten Sie denselben Spark, nur mit deutlich größeren Limits.

Blaze unterscheidet sich von den anderen. Sie können die Funktionen der Plattform in unbegrenzten Mengen nutzen, während Sie im Verhältnis zu den von Ihnen verwendeten Ressourcen bezahlen. Dies ist ein äußerst flexibler Plan, bei dem Sie nur für die von Ihnen verwendete Funktionalität bezahlen. Wenn Sie sich beispielsweise dafür entscheiden, die Plattform nur zum Testen von Anwendungen zu verwenden, zahlen Sie nur für das Überschreiten der Grenzwerte für kostenlose Tests.

Im Allgemeinen ist die Firebase-Preisgestaltung sehr transparent und vorhersehbar. Dabei verstehen Sie, wie viel diese oder jene Funktionalität kosten wird, und Sie berechnen auch die Kosten beim Skalieren oder Ändern des Dienstes.

Firebase Zusammenfassung


Der Firebase-Dienst von Google ist ein vollwertiger MBaaS-Anbieter, der die Infrastrukturprobleme begrenzt, mit denen AWS und Azure in direktem Zusammenhang stehen. Alle für die Entwicklung eines Cloud-Backends erforderlichen Funktionen sind vorhanden, zahlreiche Analysemöglichkeiten, eine relativ einfache Integration, eine relativ niedrige Einstiegsschwelle und transparente Preise.

Von den negativen Seiten - Probleme mit der Stabilität des Dienstes. Leider kann dies in keiner Weise beeinflusst werden, wir können uns nur auf Google-Ingenieure verlassen.

Passend für dich? Über diese Links können Sie mehr über Google Firebase erfahren, alle Details studieren und es verwenden:



Kumulos




Kumulos ist ein eigenständiger MBaaS-Dienst, der 2011 gegründet wurde.

MBaaS


Als mobiles Backend bietet Kumulos viele Standardtools an, die wir bereits in früheren Diensten gesehen haben. Es ist auch möglich, vollwertige Kampagnen basierend auf dem Zeitplan und dem geografischen Standort zu erstellen, Abstürze zu verfolgen und zu diagnostizieren, bequem in Slack, Trello und Jira zu integrieren, Daten zu speichern und Benutzerautorisierungen zu verarbeiten.

Wie Firebase kümmert sich der Dienst um alle Probleme mit Lastausgleich, Skalierung und anderen Infrastrukturproblemen.

Analytik




Kumulos verfügt über umfangreiche Analysefunktionen, darunter: regelmäßige Berichterstellung, Benutzersegmentierung, detaillierte Verhaltensanalyse, Kohortenanalyse und vieles mehr. Die Plattform wurde ursprünglich für Big Data erstellt und ist bereit, mit vielen Daten zu arbeiten. Alle Analysen werden in Echtzeit angezeigt. Die interne Analyse-Engine sagt verschiedene Erkenntnisse basierend auf den gesammelten Statistiken voraus.

— , : Salesforce, Google BigQuery, Amplitude Tableau.

Zusätzliche Funktionalität




— App Store. Kumulos App Store Optimization . , , .



, . .


Kumulos SDK , . .



, .

Zuverlässigkeit


, Kumulos.

Kosten


Kumulos 3 : Startup, Enterprise Agency. « , ». , - , , , .



. — , .

Kumulos


Kumulos MBaaS Firebase. MBaaS , . , .

— - .

? Kumulos, :



Fazit


, .

4 : Microsoft Azure, AWS Amplify, Google Firebase Kumulos. 2 IaaS 2 MBaaS, . .

— . — . :


, , , . , , , , push- , .

Analytik


. , . . , Firebase, AppMetrica - , .


, , - , .


— . , . , . , , , , . , , .


, , . . , , , .

Vendor lock


, , , «vendor lock». , - , , — MBaaS , , , , , , . , - MBaaS-, . , «».

:
Microsoft Azure
AWS Amplify
Google Firebase
Kumulos
MBaaSpush-, ,
,


Amazon Pinpoint
Google Analytics Crashlytics
, , Big Data




  1. Azure

  1. Device Farm
  2. Amplify Console
  3. Amazon Lex
  4. AWS

  1. Dynamic Links
  2. A/B Testing
  3. Remote Config

  1. App Store.



  1. SDK: iOS, Android, Xamarin, Phonegap


  1. SDK: iOS, Android, JS, React Native
  2. GraphQL


SDK: iOS, Android, JS, C++, Unity
SDK: IOS, Android, WP, Cordova, PhoneGap, Xamarin, Unity, LUA Corona

( 1 )
,




  1. , MBaaS

  1. Spark (free)
  2. Flame (25$/m)
  3. Blaze ( )

  1. Startup
  2. Enterprise
  3. Agentur




, 4 . . , , .
.

https://statusgator.com/
www.capterra.com

Source: https://habr.com/ru/post/de463435/


All Articles