Overview of cloud services for mobile app backend development

Backend development is a complex and costly process. When developing mobile applications, it is often given unreasonably more attention. It is unjustified, because every time you have to implement typical scenarios for mobile applications: send a push notification, find out how many users are interested in the promotion and place an order, etc. I want a solution that will allow you to focus on things that are important for the application without losing quality and details in the implementation of secondary ones. And there are solutions!

Such services are called Mobile Backend-as-a-Service (MBaaS). The processes of creating a backend with their help are simplified compared to the development "manually". This is the savings on hiring a separate backend developer. And the fact that the MBaaS provider takes care of all issues related to server stability, load balancing, scalability and other infrastructure difficulties gives confidence in the quality of the result and is the main advantage of such services.

In this article, we will look at several large and proven services: Microsoft Azure, AWS Amplify, Google Firebase, Kumulos.

Overview of cloud services for mobile app backend development

The points on which we will consider the services: the functionality of the backend and analytics, the complexity of integrating the service, the reliability and stability of work, and the pricing policy. Let's go through each service and note their features according to these criteria.

Microsoft Azure

Overview of cloud services for mobile app backend development

Microsoft Azure - Infrastructure-As-A-Service (IaaS) is a service that contains full-fledged BaaS functionality and helps in creating a backend for mobile applications.

MBaaS

Microsoft Azure has a full set of functionality for creating a backend for a mobile application. Processing push notifications, automatic scaling, data synchronization, social media integration and more.

An important feature of Azure is the geographical location of the servers. They are located in 54 regions of the world, which increases the likelihood of choosing a server that suits you in terms of latency. Since only certain regions most often suffer in the event of a malfunction, it can be assumed that the more regions, the less likely it is to get to the very β€œunstable” one. Microsoft claims to have more regions than any other cloud provider. This is definitely a plus.

Overview of cloud services for mobile app backend development

Analytics

The service provides the ability to monitor the performance of applications in real time and collect reports on β€œfalls”. This allows you to instantly localize and solve the problem.

Also in Azure, you can use their own library to collect analytics in applications: collect basic metrics (device information, session information, user activity, and more) and create custom events for tracking. All collected data is immediately exported to Azure, allowing you to carry out analytical work with them in a convenient format

Additional functionality

There are also interesting features such as testing application builds on real devices, CI / CD settings to automate the development process, and tools for submitting application builds for beta testing or directly to the App Store or Google Play

Azure allows you to use an out-of-the-box framework designed to work with maps and geospatial data, which makes it easier to work with this format.

Of particular interest is the possibility of solving problems using artificial intelligence, with which you can predict various analytical indicators and use ready-to-use tools for computer vision, speech recognition, and much more.

Complexity of integration

The Microsoft Azure service provides SDK for major mobile platforms (iOS and Android) and, which is rare, for cross-platform solutions (Xamarin and PhoneGap). 

In general, users complain about the complex interface and the high barrier to entry. This indicates possible problems in the integration of the service. 

It is important to understand that a high entry threshold is not a special case with Azure, but a general problem for IaaS. For example, Amazon Web Services, which will be discussed next, is also prone to this ailment even more.

Reliability

Overview of cloud services for mobile app backend development

The stability of the service from Microsoft looks decent. It can be seen that at least once a month there may be short-term problems in different regions. This picture speaks of the sufficient stability of the service, problems occur rarely, in certain regions and are fixed extremely quickly, allowing the service to maintain a decent uptime. 

Overview of cloud services for mobile app backend development

This is confirmed by the list of recent incidents on Azure servers - most of them are short-term warnings, and the last time the servers were down was in early May. Statistics confirm the picture of stable service.

Price

Π’ pricing policy Microsoft Azure has different payment rates for the service, there is also a free plan with certain limits, which is enough for testing. It is important to remember that Azure is an IaaS service, most of which, due to their specifics and the complexity of calculating spent resources, suffer from the difficulty of predicting the cost of work. Many people face difficulties and often even the inability to correctly calculate the capacities used. The real account may differ significantly from the one expected. 

Overview of cloud services for mobile app backend development

Also, Azure, in addition to these plans, has separate paid services: App Service Domain, Azure App Service Certificates and SSL Connections. All of them relate to the administration of your infrastructure, we will not touch on them.
In many reviews, users complain about the complex pricing policy and the inability to predict the cost of the service. The calculator proposed by Microsoft is called useless, and the service itself is extremely expensive.

Bottom line for Azure

Microsoft's Azure service is a functional and stable tool for use as the main MBaaS provider. The fact that the service initially provides a complete infrastructure opens up many opportunities for further development of your backend beyond mobile applications. A large number of servers and a vast number of regions where they are located helps you choose the right latency for you. Positive user reviews confirm this. Of the negative points - a high entry threshold and difficulty in predicting the cost of the service.

Overview of cloud services for mobile app backend development

Fits? Follow these links to get to know Microsoft Azure in more detail, learn all the details and start using it: 

AWS Amplify

Overview of cloud services for mobile app backend development

Amazon Web Services (AWS) is the second IaaS that made it to our selection. It represents a huge number of services and is interesting because, by analogy with Microsoft Azure, it has a dedicated set of functionality called AWS Amplify, which is essentially the mobile backend. Previously, you may have heard the name AWS Mobile Hub, which has long been the main service that provides MBaaS functionality. How write Amazon themselves, Amplify is a revised and improved Mobile Hub that solves the main problems of its predecessor.

Overview of cloud services for mobile app backend development

According to Amazon, Amplify is trusted by many big companies, including Netflix, Airbnb, and many others.

MBaaS

Overview of cloud services for mobile app backend development

Amazon's mobile solution allows you to quickly configure all the necessary functionality for a mobile application. Whether it's server logic, data storage, user authorization or content processing and delivery, notifications and analytics. 

Amazon also provides all the necessary conditions in terms of infrastructure, such as scaling, load balancing, and more.

Analytics

A separate service is responsible for analytics Amazon pinpoint, where you can segment the audience and conduct large-scale targeting campaigns through different channels (push notifications, SMS and email) to attract users to the service.

Pinpoint provides real-time data, you can create dynamic audience segments, analyze their engagement and optimize your marketing strategy based on this data.

Additional functionality

Amazon Amplify provides access to the service AWS Device Farm to test builds of your applications on real devices. The service allows you to conduct parallel automated testing of your applications on a variety of physical devices, manual testing is also available.

Service AWS Amplify Console is a tool for deploying and hosting both server resources and web applications with the ability to configure CI / CD to automate the development process.

Also unusual is the possibility of introducing voice and text bots into mobile applications out of the box as an interface for user interaction. It works on the service Amazon lex.

Interestingly, AWS Amplify also provides a small library ready-made UI components for your React Native application, which can serve as a slight acceleration of the development process, or be used in a prototype or MVP of your project.

Complexity of integration

Amazon Amplify provides an SDK for iOS, Android, JavaScript ΠΈ React native and quite detailed. documentation. It is important to note that in addition to REST, the service also supports GraphQL.

As discussed in the Azure analysis process, a high barrier to entry is a common problem for all IaaS. Amazon is no exception, quite the contrary. This is probably one of the most difficult services to understand. This is due to the large number of different tools that AWS has. Learning AWS from scratch will take a significant amount of time. But if you limit yourself only to Amplify, you can implement a working solution in an adequate time frame.

Reliability

Overview of cloud services for mobile app backend development

Service from Amazon statistically looks less stable than Azure. But the small number of full-fledged shutdowns (red cells) pleases. Basically, all that happens is warnings and instability in some services.

This is confirmed by the list of recent incidents on AWS servers - some of them are warnings of different duration (sometimes up to 16 hours), and the last time the servers were down was in mid-June. In general, it looks quite stable.

Overview of cloud services for mobile app backend development

Price

Overview of cloud services for mobile app backend development

Pricing Policy Amazon Web Services is quite simple at first glance - pay only for what you use, over and above the free limit. But as with Microsoft Azure, the more services you use, the more difficult it is to predict the total cost of the work.

Overview of cloud services for mobile app backend development

There are many reviews on the Internet that call AWS too expensive. What can we say, if companies have long appeared that, for a separate amount, are ready to optimize your use of AWS, minimizing monthly bills as much as possible. 

Amazon Amplify Bottom Line

In general, the story with Amazon Amplify is similar to Azure. In many ways, the same functionality for MBaaS, providing a full-fledged infrastructure and the ability to develop your own backend. Amazon marketing tools stand out positively, in particular, Pinpoint.

On the negative side, we recall the no less high entry threshold than Azure, and the same difficulties with cost forecasting. Add to this a less stable service and, judging by the reviews, not responsive technical support.

Fits? Follow these links to learn more about Amazon Amplify, learn all the details, and start using it: 

Google Firebase

Overview of cloud services for mobile app backend development
Service Firebase from Google is one of the most interesting options as an MBaaS service for your application. It has long established itself as a useful tool and is so for many well-known applications: Shazam, Duolingo, Lyft and others. 
Overview of cloud services for mobile app backend development

MBaaS

Overview of cloud services for mobile app backend development

Firebase takes care of everything your mobile app needs. The service combines full-fledged backend features, such as data storage, synchronization, authentication, cloud functions (backend code execution), and is currently in beta Machine Learning Kit, with which the application implements various functionality based on machine learning (recognition of text, objects in photographs, and much more). 

Analytics

An important feature of Firebase is that in addition to backend functionality, the service also offers a wide range of options for application analytics. Built-in Google Analytics, user base segmentation and push notifications. Also in 2017, Google made a major acquisition by purchasing the widely used Fabric service and integrating it into Firebase along with Crashlytics, a very useful tool for tracking app bugs and gathering statistics and reports on crashes that occurred on users' devices.

Additional functionality

Firebase provides a tool Firebase Dynamic Links to process dynamic links to your content, with this tool you can generate links that lead to the application if it is installed, if not, they send the user to the App Store or Google Play for installation. Also, such links work depending on the device on which they open, if it is a computer, the page will be opened in the browser, and if the device is a transition to the application.

Google also allows you to A/B test your applications using Firebase A/B Testing and set up remote configuration with the tool Remote Config

Complexity of integration

It becomes clear that this service combines an extremely large number of features for your application. For Firebase integration, you should use SDK necessary platform, including iOS, Android, JavaScript, as well as for C ++ and Unity, which will be very useful if you develop games. It's important to note that Firebase has fairly detailed documentation and a wide developer user base, and as a result, a lot of supporting content on the web, whether it's answers to questions or overview articles.

Reliability

Whether to rely on Google is a matter for a separate article. On the one hand, you have a highly stable and working provider, and on the other hand, you never know when "Google will close this service too." No wonder Google was removed from their mission "Don't be evil"

Overview of cloud services for mobile app backend development

When a provider has such resources, it would seem that uptime should tend to 100%, but you can still find many reports of problems with the service, for example, quote one of the users: Downtime happens. In the case of Firebase, you might say that "uptime" happens". And indeed, if you look at the statistics on events with Firebase services, we will see that there are both small downtimes and full outages for 5-7 hours, this can be critical for your service.

Overview of cloud services for mobile app backend development

And sometimes the problems last for weeks. We must not forget that critical and vital code for the product can run on these services. This statistic does not look very happy.

Price

Overview of cloud services for mobile app backend development

Pricing Policy Firebase is clear and simple, there are 3 plans: Spark, Flame and Blaze. They are ideologically different from each other. While Spark is a free plan with limits that allow you to deploy and test a significant part of the platform's functionality. The Flame and Blaze plans have paid usage. Flame costs a fixed $25 per month, but essentially you get the same Spark, only with significantly higher limits. 

Blaze is different from the rest. It allows you to use the platform's capabilities in unlimited quantities, while you pay in proportion to the resources you use. This is a highly flexible plan where you only pay for the features you use. If, for example, you decide to use the platform only for testing applications, you will only pay for exceeding free testing limits.

All in all, Firebase pricing is very transparent and predictable. In the process, you understand how much this or that functionality will cost, and also calculate the cost when scaling or changing the service.

Summary by Firebase

Google's Firebase service is a full-fledged MBaaS provider that limits the infrastructural complexities that AWS and Azure are directly related to. All the functionality necessary for developing a cloud backend is in place, ample opportunities for analytics, relative ease of integration, a fairly low entry threshold and transparent pricing. 

Of the negative sides - problems with the stability of the service. Unfortunately, there is no way to influence this, we can only hope for Google engineers.
Overview of cloud services for mobile app backend development
Suitable for you? Follow these links to get to know Google Firebase in more detail, learn all the details and start using it: 

Kumulos

Overview of cloud services for mobile app backend development

Kumulos is an independent MBaaS service founded in 2011. 

MBaaS

As a mobile backend, Kumulos offers many standard tools that we have already seen in previous services. It is also possible to create full-fledged campaigns based on the schedule and geo-location, tracking and diagnosing falls, convenient integration with Slack, Trello and Jira, data storage and user authorization processing.

Like Firebase, the service takes care of all issues with load balancing, scaling, and other infrastructure issues.

Analytics

Overview of cloud services for mobile app backend development

Kumulos has extensive analytics built into it, including periodic reporting, user segmentation, detailed behavioral analytics, cohort analysis, and more. The platform was originally created for Big Data and is ready to work with large amounts of data. All analytics are displayed in real time. The internal analytical engine predicts various insights based on the collected statistics.

An important feature is the ability to store and export data to other services, including: Salesforce, Google BigQuery, Amplitude and Tableau.

Additional functionality

Overview of cloud services for mobile app backend development

An interesting and rarely seen feature is a tool for optimizing app promotion in the App Store. Kumulos App Store Optimization evaluates your application page and suggests solutions to improve performance. Tracks app success factors such as user ratings and app rankings in the top countries, and generates reports based on that data. 

Overview of cloud services for mobile app backend development

It looks extremely interesting to have a special toolkit for mobile development studios, which provides a convenient interface for managing application data for various customers. As well as generating reports specifically for your clients.

Complexity of integration

At Kumulos wide set of SDKs for integration with both native and cross-platform tools. Libraries are actively updated and maintained.

Overview of cloud services for mobile app backend development

Detailed documentation is described for all tools, there are also several tutorials and ready-made examples of using the platform.

Reliability

Unfortunately, I could not find any statistics on the stability of the servers of the Kumulos service.

Price

In addition to the free trial, Kumulos has 3 paid plan: Startup, Enterprise and Agency. They work on the principle of "I pay only for what I use." Unfortunately, the service does not provide a price list in the public domain, it seems that it is calculated individually, based on your needs.

Overview of cloud services for mobile app backend development

It is impossible to accurately talk about the predictability and size of payments without knowing the rates themselves for all plans. One thing pleases - apparently, pricing is quite flexible.

Total for Kumulos

Kumulos provides an MBaaS platform in many ways similar to Firebase. It contains all the necessary set of MBaaS service tools, quite extensive analytics and reporting capabilities. It looks interesting as a separate offer for mobile application studios, which combines many additional benefits.

From the negative - the lack of any data on the stability of the servers and closed pricing.

Worth a try? Follow these links to get to know Kumulos in more detail, learn all the details and start using it: 

Conclusion

The choice of a cloud service for the mobile backend is important to take seriously, as it will have a dramatic impact on the development process and subsequent development of your application or service. 

In the article, we reviewed 4 services: Microsoft Azure, AWS Amplify, Google Firebase and Kumulos. Among them are 2 large IaaS services and 2 MBaaS, which specialize specifically in the mobile backend. And in each of the options met certain problems and negative aspects.

It is important to understand that there is no perfect solution. The choice of technology for a project is a compromise between key factors. I suggest you go through them again:

Functionality

The functionality of the platform you choose directly affects the restrictions that you impose on your backend. You always need to be clear about your priorities when choosing a service, whether it's using one specific feature, such as push notifications to save money, or building your own infrastructure within the same ecosystem to centralize and uniform your backend. 

Analytics

It is hard to imagine modern services without analytics. After all, it is this tool that allows you to improve the service, analyze users and, as a result, get more profit. The quality of the final product directly depends on the quality and functionality of analytics. But no one bothers to connect third-party analytics, be it the analytical part of Firebase, AppMetrica from Yandex, or something else that is more suitable for you.

Complexity of integration

The complexity of integration directly affects the costs of both monetary and time resources in the development process, not to mention the possible complication of the process of finding developers due to unpopularity or a high threshold for entering the toolkit.

Reliability and stability

The reliability and stability of any service is one of the most important indicators. And when your own application suffers from problems on the provider's side, the situation is not pleasant. The end user does not care what is wrong there and whether you are specifically to blame for the fact that the service does not work. He will not be able to do what he planned, and that's it, the impression is spoiled, he may not return to the product. Yes, there are no ideal services, but there are tools to minimize losses in case of problems on the provider's side.

Pricing Policy

The pricing policy of the service is a determining factor for many, because if the financial capabilities do not match the provider's requests, then you simply will not be able to continue working together. It is important to consider and predict the cost of services on which your product depends. Pricing varies between services, but most often it's proportional to the resources you use, whether it's the number of notifications sent or the size of your storage hard drive.

Vendor lock

Using these services, it is important not to get stuck on one solution, otherwise you become completely dependent on it and doom yourself to the so-called "vendor lock". This means that if something happens to the service, the owner changes, the direction of development or closes, you will have to urgently look for a new MBaaS provider, and, depending on the size of the application, such a move will require significant time and, as a result, money costs. . It will be especially scary if the backend is tied to some unique functionality of the MBaaS provider, since all providers are different and not all of them have the same set of functionality. Therefore, it is rare when it is possible to move β€œpainlessly”.

The whole analysis can be summarized in the table below:

Microsoft Azure

AWS Amplify

Google Firebase

Kumulos

MBaaS Tools
push notifications, data synchronization, 
automatic scaling and load balancing, and much more

Analytics

Real time analytics

Analytics and targeting campaigns in Amazon Pinpoint

Google Analytics and Crashlytics for collecting crash reports

Real-time analytics, cohort analysis, work with Big Data and export to other services

Additional functionality

  1. Build Automation
  2. Geolocation framework
  3. AI tool
  4. Many other Azure services

  1. device farm
  2. Amplify Console
  3. Amazon lex
  4. Many other AWS services

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

  1. App optimization in the App Store. 
  2. Functionality for studio development

Integration

  1. SDKs: iOS, Android, Xamarin, Phonegap
  2. High entry threshold

  1. SDK: iOS, Android, JS, React Native
  2. GraphQL support
  3. High entry threshold

SDK: iOS, Android, JS, C++, Unity

SDK: IOS, Android, WP, Cordova, PhoneGap, Xamarin, Unity, LUA Corona and many more

Reliability and stability

Extremely rare shutdowns (up to 1 time per month)

Rare outages, mostly warnings

There are trouble periods and blackouts

No stats

Pricing Policy

  1. Calculated from used resources
  2. Difficulty in forecasting
  3. Cost is higher than MBaaS services

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

  1. Startups
  2. Enterprise
  3. Agency

All plans charge per use

So, we have analyzed 4 cloud services. There are dozens of other similar tools. There is no such thing as a perfect service, so the best strategy for finding the right one is to be aware of your provider requirements and the trade-offs you're willing to make as early as possible. 
We want you to make the right choice.

Stability data taken from the service https://statusgator.com/
User rating data taken from the service www.capterra.com

Only registered users can participate in the survey. Sign in, you are welcome.

And what service did you use as a backend for your application?

  • Microsoft Azure

  • AWS Amplify (or AWS Mobile Hub)

  • Google Firebase

  • Kumulos

  • Other (specify in comments)

16 users voted. 13 users abstained.

Source: habr.com

Add a comment