Cloud computing has emerged as a game changer in building mobile applications especially in the provision of mobile back-end as a service. The cloud combines many fields of computing that provide great flexibility and potential cost benefits for mobile developers and start-ups. Cloud computing is rooted in the delivery of services, software and processing power over the internet which reduces cost, increases storage and automation. However, the realisation of these benefits is far from being achieved for mobile applications. The existing cloud computing tools only tackle specific problems such as parallel processing on massive data volumes and flexible virtual machine(VM) management or large storage.
However, the tools above provide little support for the mobile applications. The full potential of mobile cloud applications especially mobile back-end as a service can only be unleashed if computation and storage is offloaded to the cloud but without hurting user interactivity, introducing latency or limiting application possibilities. In addition, as mobile environments change, the application has to shift computation between device and the cloud without operation interruptions considering many external and internal parameters. This can create bugs, slow execution time and use up network bandwidth which can hurt user interactivity.
When choosing a platform to host your mobile back-end there are some factors one should look at, for example,
1.The level of programming abstraction
5.Vendor lock in
Firstly, when choosing a platform of choice, it is important that the level of programming abstraction is high (the platform should be able to hide underlying cloud technologies), this should make development simpler and intuitive as this will enable faster app development. However, the developer should be able to control the behaviour and location of his application.
Secondly, cloud services can become expensive very quickly. This is much complex than upfront costs for the services you must have for the app. The expensive part is what new services the app might require as it grows. Even with cloud cost management tools, they have poor management tools and they offer poor cos visibility. They work well with the vendors own products but not as well with other suppliers.
Thirdly, performance. It is one of the main concerns of cloud computing. Achieving high speed delivery of applications in the cloud is a multi-faceted challenge that requires a holistic approach and end to end view the application response request path. Some of the issues relating to performance include geographical proximity of the application and the end user interacts with the data. For mobile apps that seek to maximise user experience, latency issues resulting from poor network performance will negatively impact user experience.
Fourthly, the technology stack offered by a cloud provider is also key to where your mobile app can be hosted. If your application is built using Ruby on Rails, Heroku and Engine yard would be perfect to host your app, or for .NET for Azure. This saves a lot of time and expense by shielding you from having to deal with lower level infrastructure set up and configuration. The flip side is that they require developers to follow certain best practices in architecting and modifying the which creates a higher degree of vendor lock-in.
Last but not least, security and compliance. For apps that hold sensitive client data, the location where you hold your data matters. For example, data relating to EU residents should be held in the EU only. Furthermore, in a recent survey by Zenoss Inc, security was listed as the biggest concern about cloud computing. Password security must be heavily emphasised to avoid data theft and to secure the future of your mobile app.
To conclude, choosing the best cloud provider for your app is a multidimensional problem. As the number of cloud provider’s increases, and as many of them focus on specialised needs and use cases, more choices require more focused examinations. Fortunately, services are emerging that help choose cloud services that will tell which provider is suited for which application.
Below is a matrix we created that can give you some pointers on where you could host your mobile application.
|Host||Price||USP||Pro’s and Con’s|
|Firebase (Cloud services provider and back end as a service specialist company). Was acquired by google in 2014 and part of google cloud services.||•Free account up to 1 GB storage
•Flame account at $25
•Pay as you go account on the google cloud $0.026 per GB, Test lab $5 per hr
|•Focus is mainly on data storage
|•It is multi-platform: iOS, Android, JS, Rest
•It provides real-time time database
•Easy to use software development kits
•Authentication is FB, google, Twitter etc. is a breeze
|•There are no in built push notifications (users cannot be notified of new messages or events)
•To use firebase you need specialist skills. Especially JSON has a learning curve
•No mobile analytics
|AWS (Mobile Hub): Amazon web services own mobile app development feature||•Pay as you go (No minimum commitment) Storage cost per hr = $0.15. Data transfer cost = 0.12 per hr
•Testing = $0.17 per device minute
•Analytics = $1.00 per million events
•Great variety of services
|•It can replace every Parse feature from the cloud
•It is very scalable
•Best in class pricing per with generous limits
|•Need to use another programming language such as node.js which are not very common
•It provides a steep learning curve e.g. database management is not intuitive
|MS Azure (Mobile services): Microsoft’s own mobile app feature in the cloud that is fully managed as Platform as a service||•Free account = £125 free services in the first month
•Basic account = £9.1574 per month
•Standard account = £85.52 per month
|•Easy to deploy with speed
•It has very familiar services
|•Great backend services including Parse server
•Great client support
•Easy to integrate with other services
•Great analytics available e.g. Power BI
|•Loss of control over innovation as off the shelf solutions can foster complacency as there is no drive to think outside the box|
|Custom backend: Build own server and services||•Unknown as cost is dependant the kind of features needed||•Full control of innovation||•Highly customizable and flexible
•Can choose any language or frame
|•Managing infrastructure like database, servers, etc. requires maintenance
•Scaling can become an issue without prior experience
•Can get costly quickly