Overview of cloud services for developing a backend for mobile applications

Backend development is a complex and costly process. When developing mobile applications, he often receives unreasonably more attention. It’s not justified, because each time you have to implement scenarios typical for mobile applications: send a push notification, find out how many users are interested in the action and place an order, etc. I would like a solution that will allow us to focus on things important for the application without loss of quality and details in the implementation of secondary ones. And there are such solutions!



Such services are called Mobile Backend-as-a-Service (MBaaS). The processes for creating a backend with their help are simplified, compared with the development of "manual". This saves 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 consider several large and proven services: Microsoft Azure, AWS Amplify, Google Firebase, Kumulos.







Points for which we consider services: backend and analytics functionality, complexity of service integration, reliability and stability of work, and pricing policy. Let's go through each service and note their features according to these criteria.



Microsoft azure









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



MBaaS



Microsoft Azure has the full range of functionality for creating a backend for a mobile application. Handling push notifications, automatic scaling, data synchronization, integration with social networks and much more.



An important feature of Azure is the geographic location of the servers. They are located in 54 regions of the world, which increases the likelihood of choosing a server that is suitable for the delay. Since in case of malfunctions most often only certain regions suffer, it can be assumed that the more regions, the less likely it is to get to that very “unstable” one. According to Microsoft, they have more regions than any other cloud solutions provider. This is undoubtedly a plus.







Analytics



The service provides an opportunity in real time to monitor the health of applications and collect reports on "crashes". 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 (information about the device, about the session, user activity, and much more) and create your own events for tracking. All collected data is immediately exported to Azure, allowing you to conduct analytical work with them in a convenient format



Additional functionality



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



Azure allows you to use the framework “out of the box” designed for working with maps and geospatial data, which simplifies the work with this format.



Particularly interesting 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 SDKs for the main mobile platforms (iOS and Android) and, which is not often the case, for cross-platform solutions (Xamarin and PhoneGap).



In general, users complain of a complicated interface and a high entry threshold. This indicates possible problems in service integration.



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



Reliability







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







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 "lay" was in early May. Statistics confirm the picture of a stable service.



Cost



In the pricing policy of Microsoft Azure there are different tariffs for paying 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 specificity and complexity of calculating worked resources, suffer from the difficulty of predicting the cost of work. Many face difficulties and often even the inability to correctly calculate the used capacities. The actual score may vary significantly from the one counted on.







In addition to these plans, Azure 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 a difficult pricing policy and the inability to predict the cost of service. The calculator proposed by Microsoft is called useless, and the service itself is extremely expensive.



Azure Summary



Microsoft's Azure Service is a functional and stable tool for use as the primary MBaaS provider. The fact that the service initially provides a full-fledged infrastructure opens up many opportunities for the further development of your backend outside the framework of mobile applications. A large number of servers and the vast number of regions where they are located helps to choose the most suitable for your delay. Positive user reviews confirm this. Of the negative aspects - a high threshold of entry and difficulty in predicting the cost of the service.







Will it fit? Using these links you can learn more about Microsoft Azure, study all the details and start using it:







AWS Amplify







Amazon Web Services (AWS) is the second IaaS to hit our list. It represents a huge number of services and is interesting in that, by analogy with Microsoft Azure, there is a dedicated set of functionality called AWS Amplify , which in essence is a mobile backend. Previously, you might have heard the name AWS Mobile Hub, which has long been the main service providing MBaaS functionality. According to Amazon themselves, Amplify is a revised and improved Mobile Hub that solves the main problems of its predecessor.







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



MBaaS







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 the processing and delivery of content, notifications and analytics.



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



Analytics



For analytics, a separate Amazon Pinpoint service is responsible in which you can segment your audience and conduct large-scale targeting campaigns through various 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 involvement and optimize your marketing strategy based on this data.



Additional functionality



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



AWS Amplify Console service 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 interacting with the user. It works on Amazon Lex .



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



Complexity of integration



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



As stated in the Azure analysis process, a high entry threshold is a common problem for all IaaS. Amazon is no exception, and vice versa. This is probably one of the most difficult services to understand. This is due to the large number of different tools AWS has. Learning AWS from scratch will take considerable time. But if you restrict yourself only to Amplify, you can implement a working solution in an adequate time frame.



Reliability









Amazon's statistics service seems less stable than Azure. But it pleases a small number of full blackouts (red cells). Basically, everything that happens is warnings and instability in the work of some services.



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







Cost









The pricing policy of Amazon Web Services at first glance is very simple - pay only for what you use, in excess of 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.







There are many reviews on the Internet that call AWS too expensive. What can I say, if there have long been companies that are willing to optimize your use of AWS for a certain amount, minimizing monthly bills as much as possible.



Amazon Amplify Summary



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



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



Will it fit? Using these links, you can learn more about Amazon Amplify, study all the details and start using it:





Google firebase





Google’s Firebase service 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 such for many well-known applications: Shazam, Duolingo, Lyft and others.





MBaaS







Firebase takes care of everything your mobile application needs. The service combines full-fledged backend features, such as data storage, synchronization, authentication, cloud functions (executing the backend code), and, at the moment, the beta contains the Machine Learning Kit , which 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 the backend functionality, the service offers a wide range of opportunities for application analytics. Built-in Google Analytics, user base segmentation and work with push notifications. Also in 2017, Google marked a steep acquisition by purchasing the widespread Fabric service and integrating it into Firebase along with Crashlytics, an extremely useful tool for tracking application errors and collecting statistics and crash reports on user devices.



Additional functionality



Firebase provides the Firebase Dynamic Links tool for processing dynamic links to your content, with this tool you can generate links that lead to the application, if it is installed, if not, 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, then a page will be opened in the browser, and if the device is a transition to the application.



Google also allows you to conduct A / B testing of your applications using Firebase A / B Testing and configure remote configuration with the Remote Config tool.



Complexity of integration



It becomes clear that this service combines an extremely large number of features for your application. To integrate Firebase, you should use the SDK of the necessary platform, including iOS, Android, JavaScript, as well as for C ++ and Unity, which will be very useful if you are developing games. It is important to note that Firebase has rather detailed documentation and a wide user base of developers, and as a result, a large number of supporting content on the network, whether it is answers to questions or review articles.



Reliability



Should I rely on Google - 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. No wonder Google was removed from the mission "Dont be evil . "







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







But it happens that the problems last for weeks. We must not forget that critical and vital code for the product can run on these services. These statistics do not look very happy.



Cost







Firebase's pricing policy 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 involve paid use. Flame costs a fixed $ 25 per month, but essentially you get the same Spark, only with significantly larger limits.



Blaze is different from the rest. It allows you to use the capabilities of the platform in unlimited quantities, while you pay in proportion to the resources that you use. This is an extremely flexible plan in which you pay only for the functionality that you use. If, for example, you decide to use the platform only for testing applications, you will only pay for exceeding free testing limits.



In general, Firebase pricing is very transparent and predictable. In the process, you understand how much this or that functionality will cost, and also you calculate the cost for scaling or changes in the service.



Firebase Summary



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



Of the negative sides - problems with the stability of the service. Unfortunately, this can not be influenced in any way, we can only rely on Google engineers.



Suitable for you? Using these links you can learn more about Google Firebase, study all the details and start using it:







Kumulos







Kumulos is a standalone 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 crashes, convenient integration with Slack, Trello and Jira, data storage and user authorization processing.



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



Analytics







Kumulos has built-in extensive analytical capabilities, including: periodic report generation, user segmentation, detailed analytics of behavior, cohort analysis and much more. The platform was originally created for Big Data and is ready to work with a lot of data. All analytics is 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







An interesting and not often found feature is a tool for optimizing application promotion in the App Store. Kumulos App Store Optimization evaluates the page of your application and offers solutions to improve performance. It monitors application success factors, such as user ratings and the position of applications in the top of different countries, and reports are generated based on this data.







The availability of special tools for mobile development studios, which provides a convenient interface for managing application data for various customers, looks extremely interesting. As well as generating reports specifically for your customers.



Complexity of integration



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







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.



Cost



In addition to the free trial, Kumulos has 3 paid plans : Startup, Enterprise and Agency. They work on the principle of "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.







You can’t say exactly about the predictability and size of payments without knowing the rates themselves for all plans. One thing is good - apparently, pricing is quite flexible.



Kumulos Summary



Kumulos provides an MBaaS platform in many ways similar to Firebase. Here you will find all the necessary set of tools for the MBaaS service, rather extensive analytics and reporting capabilities. A separate offer for studios of mobile applications looks interesting, which combines many additional advantages.



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



Worth trying? Using these links you can get to know Kumulos in more detail, study all the details and start using it:







Conclusion



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



In this article, we examined 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 there were certain problems and negative aspects.



It is important to understand that there is no perfect solution. The choice of technology for the project is a compromise between key factors. I propose once again to walk on them:



Functionality



The functionality that you choose directly depends on the functionality of the platform that you impose on your backend. You always need to be clearly aware of what your priorities are when choosing a service, whether using one specific feature, for example, push notifications in order to save money, or building your own infrastructure within one ecosystem to centralize and uniformize your backend.



Analytics



It’s hard to imagine modern services without analytics. After all, it is this tool that allows you to improve the service, analyze users and ultimately make big profits. The quality and functionality of analytics directly determines the quality of the final product. But no one bothers to connect third-party analytics, be it the analytic part of Firebase, Yandex's AppMetrica or something else 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 search process for developers due to unpopularity or a high threshold for entering the toolkit.



Reliability and stability



Reliability and stability of any service are one of the most important indicators. And when your own application suffers from problems on the side of the provider, 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 is not working. He will not be able to do what he planned, and everything, the impression is spoiled, he probably will 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.



Price policy



The price policy of the service is a determining factor for many, since if the financial capabilities do not coincide with the requests of the provider, 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. The pricing for all services is different, but most often it is proportional to the resources you use, whether it is the number of notifications sent or the size of the storage hard disk used.



Vendor lock



Using these services, it is important not to be tied to 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 urgently need to 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, financial 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 far from all have the same set of functionality. Therefore, it is rare when you manage to move "painlessly."



The whole analysis as a result can be described in the table:

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 at Amazon Pinpoint

Google Analytics and Crashlytics for crash reporting

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. Application Optimization on the App Store.

  2. Studio Development Functionality



Integration

  1. SDK: 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 others

Reliability and stability

Extremely rare blackouts (up to 1 time per month)

Rare trips, mostly warnings

There are problem periods and outages

No statistics

Price policy
  1. Calculated from used resources

  2. Prediction difficulty

  3. Cost is higher than MBaaS services



  1. Spark (free)

  2. Flame (25 $ / m)

  3. Blaze (per use)



  1. Startup

  2. Enterprise

  3. Agency



All plans use fees





So, we disassembled 4 cloud services. There are dozens of similar tools. An ideal service does not exist, so the best strategy for finding the right one is to realize your requirements for the provider and the compromises that you are ready to make as soon as possible.

We wish you to make the right choice.



Stability data taken from https://statusgator.com/

User ratings data taken from www.capterra.com



All Articles