Cloud Services for Backend Mobile App Development

Alex Kuziaev
Surf
Published in
15 min readJun 3, 2020

Backend development is a complex and expensive process. It often gets unreasonably more attention in mobile development than it should. Having to implement scenarios typical for mobile apps every time is quite unreasonable — sending a push notification, defining how many users ordered a product after seeing a promotion etc. We want to find a solution that would allow us to focus on essential app features without losing quality in implementation of secondary ones. Good news is that such solutions exist!

These services are called Mobile Backend-as-a-Service (MBaaS). They make backend creation easier compared to building it from scratch. This saves you money on hiring a back-end developer for this sole task. The fact that the MBaaS provider takes it upon itself to solve issues of server stability, load balancing, scalability etc., ensures quality of the end result. This is a fundamental advantage of such services.

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

We will evaluate them by these criteria:

  • functionality of backend and analytics;
  • complexity of service integration;
  • reliability and operational stability;
  • pricing.

Let’s go over each service and outline their features.

Microsoft Azure

Microsoft Azure — Infrastructure-As-A-Service (IaaS) is a service with full BaaS functionality that helps you create backend for mobile apps.

MBaaS

Microsoft Azure offers a complete set of functionality needed to develop backend for a mobile app. This includes but is not limited to handling push notifications, auto scaling, data synchronisation and social network integration.

Azure’s key feature is the geographical location of the servers. They are located in 54 regions around the world which makes it easier to find a server with an optimal delay. Since only certain regions are affected in case of a malfunction, we can assume that the more regions there are, the less the chance of getting an “unstable” one. According to Microsoft, they have more regions than any other cloud services provider. This is a major benefit.

Analytics

Azure allows you to track the app’s performance and gather crash reports in real time. This helps you instantaneously find and fix the problem.

You can use Azure’s own library to gather analytics from apps, such as core metrics (information about device, session, user activity and more) as well as create custom analytics events for tracking. All collected data is immediately exported to Azure. This allows you to perform analytical work in a convenient manner.

Additional functionality

Azure has some nice features like testing app builds on real devices, CI/CD settings for development automation and delivery of app builds straight to App Store or Google Play for beta-testing.

It also comes with an out-of-the-box framework for working with maps and geospatial data. This makes working with this format significantly easier.

The option of using artificial intelligence in your work is especially intriguing. I allows you to predict various analytical indicators and apply tools for computer vision, speech recognition and so much more.

Integration complexity

Microsoft Azure provides an SDK for major mobile platforms (iOS and Android) and sometimes also for cross-platform solutions (Xamarin and PhoneGap).

Users generally complain about an unfriendly interface and a high entry threshold. This indicates possible issues with service integration.

Of course, high entry threshold is not a unique case of Azure but a common issue for IaaS. For instance, our next subject, Amazon Web Services, is prone to it at a much higher scale.

Reliability

The Microsoft service shows decent operational stability. You can see short-term problems occur in different regions at least once a month. This indicates sufficient server stability. Malfunctions are rare, they happen only in certain regions and get fixed right away. This is what makes a decent uptime possible.

The list of recent incidents on Azure servers confirms this fact. According to it, most of the incidents were short-term warnings, and the last time servers were down was in early May. The statistics prove the service stability.

Pricing

Microsoft Azure pricing policy offers different rates. A free plan is available, it has certain limits but it is sufficient for testing. You should keep in mind that it’s hard to estimate working cost of any IaaS service due to complexity of measuring resource utilization. Lots of users face difficulties and can’t always calculate resource usage correctly. Thus, the actual number may differ significantly from the estimate.

Apart from the pricing plans Azure offers a few paid services: App Service Domain, Azure App Service Certificates and SSL Connections. All of them are related to administration of your infrastructure, we won’t elaborate on them.

In many reviews users complain about unclear pricing policy and unpredictability of the service costs. Users claim that Microsoft pricing calculator is useless and the service itself is way too expensive.

Conclusion on Azure

Microsoft Azure is a functional and reliable tool that can be used as the main MBaaS provider. The service offers a fully-functioning infrastructure and opens opportunities for further expansion of your backend outside of mobile app development. A wide choice of servers and regions lets you choose ones with an optimal delay. Positive reviews confirm this. One of the negatives is a high entry threshold and unpredictability of service costs.

Interested? You can learn more on Microsoft Azure and try it out here:

AWS Amplify

Amazon Web Services (AWS) is the second IaaS in our compilation. It represents a large number of services and is notable for its dedicated set of functionality called AWS Amplify. Similar to Microsoft Azure, AWS Amplify is essentially mobile backend. You may have heard about AWS Mobile Hub that has long been the main provider of MBaaS functionality. As Amazon puts it, it is an improved and modified Mobile Hub.

According to Amazon, Amplify gained trust of multiple major companies, including Netflix, Airbnb and many others.

MBaaS

Amazon’s mobile solution allows you to quickly configure all the necessary functionality for your mobile app. This includes server logic, data storage, user authorization, 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

There’s a separate service that is responsible for analytics, Amazon Pinpoint. It allows you to segment audience and conduct large-scale targeting campaigns via various channels (push notifications, SMS and email) to draw new users.

Pinpoint provides data in real time and lets you create dynamic customer segmentation, analyze engagement and optimize marketing strategy based on these data.

Additional functionality

Amazon Amplify gives access to AWS Device Farm so that you can test app builds on real devices. The service allows you to run automated parallel testing of your apps on a variety of physical devices. Manual testing is also available.

AWS Amplify Console is a tool for deployment and hosting of server resources as well as web applications with an option to configure CI/CD for development automation.

They also have an unusual option of implementing out-of-the-box voice and text bots in mobile apps to interact with a user. This feature is available on Amazon Lex.

It’s remarkable that AWS Amplify provides a small library of UI components for your React Native app. This can slightly accelerate development process. You can even use it in a prototype or an MVP.

Integration complexity

Amazon Amplify provides an SDK for iOS, Android, JavaScript, and React Native, along with the detailed documentation. In addition to REST the service also supports GraphQL.

Again, a high entry threshold is a common issue for IaaS’s. Amazon isn’t an exception. On the contrary, it is one of the most complex services. The reason behind that is a large number of tools available in AWS. Mastering it will take quite a while. But, if you stick to Amplify only, you can implement a working solution within a reasonable time frame.

Reliability

From a statistical point of view AWS looks less stable than Azure. On the bright side, the number of shutdowns (red cells) is relatively small. They are generally warnings or 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. Last time servers were down was in mid-June. All in all, it seems quite stable.

Pricing

Amazon Web Services pricing policy is pretty clear. You only pay for what is above the free limit. As with Microsoft Azure, the more services you use, the more complicated it is to predict the total cost.

Plenty of users say in reviews that AWS is way too expensive. Suffice to say that there are now companies around who earn their bread by optimizing your work with AWS, helping you minimize the bills.

Conclusion on Amazon Amplify

It is similar to Azure in many ways. It offers the same functionality, a full-fledged infrastructure and an option of expanding backend. What really stands out is Amazon marketing tools, such as Pinpoint.

The negatives are, again, a high entry threshold and difficulties in evaluating the costs. Add to this a less stable service and, judging by the reviews, a poor technical support.

Interested? Learn more about Amazon Amplify and try it out here:

Google Firebase

Firebase by Google is one of the most curious MBaaS services. It has long proved to be an effective tool for plenty of well-known applications, e.g. Shazam, Duolingo, Lyft and others.

MBaaS

Firebase takes care of everything your mobile app needs. The service offers fully-functional backend features such as data storage, synchronization, authentication as well as cloud functionality (backend code execution). Machine Learning Kit is currently in beta testing, it’s a tool that implements machine learning functionality, such as text and object recognition etc.

Analytics

Apart from backend functionality Firebase provides a wide range of features for mobile app analytics. Firebase comes with built-in Google Analytics as well as tools for user segmentation and push notification handling. In 2017 Google bought a popular service Fabric and integrated it in Firebase together with Crashlytics, a powerful crash reporting solution for mobile apps.

Additional functionality

Firebase provides a Firebase Dynamic Links tool for processing dynamic links to your content. It lets you generate links to an installed app or to its page in App Store or Google Play. These links work differently depending on where you open them. The page will be opened in a browser if you are using a PC, or you will be directed to an application if you are on a mobile device.

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

Integration complexity

Evidently, Firebase combines an huge number of features for your app. To integrate Firebase, use the SDK for the desired platform, including iOS, Android, JavaScript, as well as C++ and Unity if you develop video games. It is worth noting that Firebase has a fairly detailed documentation and a large developer community that generates plenty of helpful content, be it questions and answers or review articles.

Reliability

The question of whether you should rely on Google is worth a separate article. On the one hand, you have a stable and efficient provider, and on the other, you never know when Google closes it down as it did with other services. No wonder Google removed “Don’t be evil” from their mission.

When a provider has such resources at their disposal, you would think that the uptime should near 100%. And yet we still find multiple reports of problems, here is an example: “Downtime happens. In the case of Firebase, you might say that ‘uptime’ happens.” Indeed, if we look at the statistics of events in Firebase, we will find both short downtimes and total shutdowns lasting for five or seven hours. This may be critical for your business.

Sometimes it last for weeks. What is more, there may run code that is vital for the product. These statistics don’t look very pleasing.

Pricing

Firebase pricing policy is clear and simple. There are two plans to choose from: Spark and Blaze. Spark is a free one and despite limited functionality, it is sufficient for deploying and testing a significant part of the platform’s functionality.

Blaze is an extremely flexible plan that really stands out. It gives you unlimited access to the platform’s functionality where you pay for the services used. Say, you use the platform for testing purposes only. In this case you will only pay for what you used over the free limit.

Summing up, Firebase pricing policy is transparent and predictable. You understand how much certain functionality costs as you go, and it is easy to calculate it when scaling up or changing configuration.

Conclusion on Firebase

The Google Firebase is a full-fledged MBaaS provider that spares you the struggle of complex infrastructures that you encounter in AWS and Azure. It boasts all necessary functionality for developing a cloud backend, a wide choice of analytics tools and a low entry threshold. Integrating it is fairly easy and the pricing policy is transparent.

However, there are issues with stability. There’s no way to fix it, we can only hope that Google works something out.

Does that work for you? Here are a few sources where you can learn more about Google Firebase and try it out:

Kumulos

Kumulos is an independent MBaaS service created in 2011.

MBaaS

Kumulos offers plenty of standard tools for mobile backend that we have seen in previous services. There is also an option of creating campaigns based on schedule and geolocation, crash tracking and reports. Apart from that, the service offers an easy integration with Slack, Trello and Jira, data storage as well as handling and authentication of user accounts.

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

Analytics

Kumulos comes with an array of built-in analytics tools that allow you to generate reports for a chosen time period, segment your audience, analyze customers’ engagement, conduct cohort analysis and much more. Since the platform was originally created for Big Data, it is perfect for working with big datasets. All analytics is displayed in real time. Kumulos analytics tool helps you build insights based on collected statistics.

One of key features is that you can store and export data to other services, such as Salesforce, Google BigQuery, Amplitude and Tableau.

Additional functionality

A feature that makes Kumulos stand out is a tool that helps you optimize promoting an application in App Store. Kumulos App Store Optimization evaluates your app’s page in the store and suggests solutions to make it more attractive for users. The tool tracks user reviews and its position in country-specific rankings and generates reports based on these data.

Kumulos even offers a special toolkit for app development studios. It is an interface that allows you to manage your apps for different clients as well as to generate reports for them.

Integration complexity

Kumulos comes with a variety of SDKs for integration including both native and cross-platform tools. The libraries are actively updated and supported.

You can find detailed documentation for every tool. On top of that, there are several tutorials and examples of how to use the platform.

Reliability

Unfortunately, I couldn’t find any statistics on Kumulos server stability.

Pricing

In addition to a free trial Kumulos has three paid plans to choose from: Startup, Enterprise and Agency. All of them are “pay for what you use”. Alas, a price list is not available on their website. Apparently, it is calculated individually based on your needs.

Of course, I can’t estimate the predictability of prices without knowing payment rates for all plans. On the positive note, the pricing seems quite flexible.

Conclusion on Kumulos

Kumulos is an MBaaS platform that is largely similar to Firebase. It comes with a set of all the necessary MBaaS tools and provides extensive functionality for reporting and analytics. The solution for app development companies is especially notable. It offers plenty of additional features.

Sadly, there is no data about server stability and no clarity on prices.

Is it worth a try? If the answer is yes, you can learn more about Kumulos and try it out here:

Summary

Choosing the right cloud service for mobile backend is crucial. It will have a dramatic impact on developing and further scaling of your project.

We reviewed four services in this article, Microsoft Azure, AWS Amplify, Google Firebase and Kumulos. Two of them are large IaaS services and the other two are MBaaS that specialize in mobile backend. Each service has its flaws, there is no perfect solution. Choosing a technology for your project is always a compromise between key factors. Let’s go over them once again.

Functionality

Platform’s functionality directly affects the restrictions you impose on your backend. When choosing a service, you should be conscious of your priorities. For instance, if you need a specific feature like using push notifications to save money. Or maybe you want to build your own infrastructure within a single ecosystem to centralize the backend and keep it consistent.

Analytics

It is hard to imagine a modern service without analytics tools. This is not surprising since they help you improve your product, analyze customer behavior and make a bigger profit as a result. The quality of the final product directly depends on the quality and functionality of analytics. However, no one stops you from adding third-party analytics to your project, be it by Firebase, AppMetrica, Yandex or whatever service works for you.

Integration complexity

Сosts and efforts involved in app development correlate directly with the complexity of integration. Unpopularity of a service and a high entry threshold can make it hard to hire developers.

Reliability and stability

These are ones of the key indicators. It is quite unpleasant when your app suffers from issues on the provider’s end. The end user doesn’t care whose fault it is that the app is not working. As soon as the user is unable to do what they intended, the experience is ruined. There is a big chance they won’t use it ever again. Sure enough, no service is perfect but there are ways to minimize losses in case problems occur on the provider’s end.

Pricing policy

Pricing is a key factor for many people. Naturally, if your finances don’t meet provider’s payment rates, you can’t continue working together. It is significant for you to be able to predict the service costs that your product depends on. All services have different pricing but usually it is proportional to the resources used. It can be measured by the number of notifications sent or the amount of used storage.

Vendor lock

You should avoid using a single solution to not find yourself locked in with the provider. This way, if anything happens to the service — it changes ownership, direction of development or closes down — you will have to look for a new MBaaS provider. Depending on the app’s size, such a migration will require a significant amount of time and money. Having backend tied to a unique provider’s functionality is even more risky since different companies have different sets of functionality. That is why migration oftentimes means making a compromise.

We can summarize the pros and cons in a table:

We reviewed only four cloud services but there are dozens of them. There is no perfect solution, so the best strategy for finding one that works for you is listing your requirements for the provider and compromises you are willing to make. Good luck in finding the right service for you!

Data on service stability is taken from StatusGator: https://statusgator.com/
User reviews are taken from Capterra
: www.capterra.com

--

--

Alex Kuziaev
Surf
Writer for

Making waves in the world of mobile app development. Stay tuned for latest insights, trends and tools! 📲💡 https://www.linkedin.com/in/alexkuziaev/