Backend as a service

From HandWiki

Backend as a service (BaaS), sometimes also referred to as mobile backend as a service (MBaaS),[1][2][3] is a service for providing web app and mobile app developers with a way to easily build a backend to their frontend applications. Features available include user management, push notifications, and integration with social networking services.[4] These services are provided via the use of custom software development kits (SDKs) and application programming interfaces (APIs). BaaS is a relatively recent development in cloud computing,[5] with most BaaS startups dating from 2011 or later.[6][7][8] Some of the most popular service providers are AWS Amplify and Firebase.

Purpose

Web and mobile apps require a similar set of features on the backend, including notification service, integration with social networks, and cloud storage.[9][10] Each of these services has its own API that must be individually incorporated into an app, a process that can be time-consuming and complicated for app developers.[11] BaaS providers form a bridge between the frontend of an application and various cloud-based backends via a unified API and SDK.[3]

Providing a consistent way to manage backend data means that developers do not need to redevelop their own backend for each of the services that their apps need to access,[10] potentially saving both time and money.[11][12]

Although similar to other cloud-computing business models, such as serverless computing, software as a service (SaaS), infrastructure as a service (IaaS), and platform as a service (PaaS), BaaS is distinct from these other services in that it specifically addresses the cloud-computing needs of web and mobile app developers by providing a unified means of connecting their apps to cloud services.[13][14]

Features

BaaS providers offer different set of features and backend tools.[15] Some of the most common features include:

  • Database management. Most BaaS solutions provide SQL and/or NoSQL database management services for applications.[16] Developers can store their app data without deploying and managing databases themselves. BaaS usually provides client SDKs, REST and GraphQL APIs for the frontend to interact with databases.
  • File storage. BaaS providers often offer storage solutions for media files, user uploads, and other binary data. Applications can upload, download, and delete files through provided SDKs and APIs.
  • Authentication and authorization. Some BaaS offer authentication and authorization services that allow developers to easily manage app users.[16] This includes user sign-up, login, password reset, social media login integration through OAuth, user group and permission management etc.
  • Notification service. Some BaaS providers such as Firebase and AWS Amplify have notification services that can send custom emails to users and push native notifications on mobile platforms.[17][18] This is especially useful for applications that need to send messages, alerts, and reminders.
  • Cloud functions. Some BaaS allow developers to deploy and run serverless functions. The functions are usually stateless and can be triggered by various ways including HTTP requests, SDK invocation, background server events, and cloud scheduled executions.[19][20] Different providers offer runtime support for different languages, some of the popular languages are JavaScript/TypeScript (Node.js, Deno), Python, Java/Kotlin.[19][20][21] Cloud functions extend the potential and flexibility of BaaS by allowing developers to write custom functionalities for their apps, working in a way similar to a traditional REST API backend framework.[22]
  • Usage analytics. Analytics data about application usage is often included in BaaS. This allows developers to monitor user behaviors and make decisions correspondingly in marketing strategies and performance optimizations.[23][24]
  • UI design. Some BaaS providers, such as AWS Amplify and Backendless, offer user interface designing tools that help developers design the frontend UI of web and mobile apps.[25][26] While this may be useful for small teams and individual developers, UI design assistance may not be conventional in BaaS as it goes beyond the scope of backend infrastructure.
  • Others. Different BaaS providers have their unique feature offerings. To list a few, Firebase supports pre-packaged extensions to provide features and integrations with other platforms.[27] Appwrite has avatar and localization services to manage icons and user locations.[28][29] Back4App offers autonomous AI agents to assist with DevOps.[30]

Service providers

BaaS providers have a broad focus, providing SDKs and APIs that work for app development on multiple platforms with different technology stacks, such as JavaScript (for Web apps), Flutter, Java/Kotlin (for Android apps), Swift/Objective-C (for iOS/MacOS/WatchOS/TvOS apps), .NET (for Windows) and others. BaaS providers also come in different types, suiting developers of different needs.

Cloud-based BaaS

Most BaaS providers host backend platforms on their cloud servers.[31] They also manage the infrastructure, security, and scalability of the platforms. Developers can access the backend services via a web interface or the provided APIs.[16] Some examples of cloud-based BaaS include Firebase (hosted on Google Cloud Platform), AWS Amplify (hosted on Amazon Web Services), and Microsoft Azure Mobile Apps (hosted on Microsoft Azure).

Self-hosted BaaS

Self-hosted BaaS allow developers to host backend on their own servers, providing more flexibility and potential to customization compared to cloud-based BaaS, which often is more difficult to migrate from. However, developers are also in charge of managing the infrastructure, security, and scalability of their servers.[16][31] Some of the self-hosted BaaS are open source. Supabase, for example, features itself as "the open source Firebase alternative",[32] emphasizing its flexibility and openness as a community supported project in comparison to Firebase. While being open source and support self hosting, Supabase and some other providers such as Appwrite and Strapi also offer paid cloud-based hosting services.

Mobile BaaS

Mobile backend as a service (MBaaS) is a type of BaaS specifically for applications deployed in mobile systems. While some references use MBaaS interchangeably for BaaS, BaaS can have a wider variety of support such as for web apps and desktop apps.[33][34] Some examples of MBaaS are Backendless and Microsoft Azure Mobile Apps.

Business model

BaaS providers generate revenue from their services in various ways, often using a freemium model. Under this model, a client receives a certain number of free active users or API calls per month, and pays a fee for each user or call over this limit. Alternatively, clients can pay a set fee for a package which allows for a greater number of calls or active users per month.[10] There are also flat fee plans that make the pricing more predictable. Some of the providers offer the unlimited API calls inside their free plan offerings.[35] Another business model that has been used by a lot of BaaS providers is PAYG (pay as you go),[36] which has a flexible cost based on developers' usage of database, storage, bandwidth, function calls, user numbers etc.

See also

References

  1. Monroe, Martin. "The Gospel of MBaaS (Part 1 of 2)". InfoQ. http://www.infoq.com/news/2013/05/MBaaS-Anypresence. 
  2. Monroe, Martin. "The Gospel of MBaaS (Part 2)". InfoQ. http://www.infoq.com/news/2013/05/MBaas-Anypresence-Mendis. 
  3. 3.0 3.1 Lane, Kin (3 June 2012). "Rise of Mobile Backend as a Service (MBaaS) API Stacks". API Evangelist. http://apievangelist.com/2012/06/03/rise-of-mobile-backend-as-a-service-mbaas-api-stacks/. 
  4. Carney, Michael. "AnyPresence partners with Heroku to beef up its enterprise mBaaS offering". PandoDaily. http://pandodaily.com/2013/06/24/anypresence-partners-with-heroku-to-beef-up-its-enterprise-mbaas-offering/. 
  5. Williams, Alex (11 October 2012). "Kii Cloud Opens Doors For Mobile Developer Platform With 25 Million End Users". TechCrunch. https://techcrunch.com/2012/10/11/kii-cloud-opens-doors-for-mobile-developer-platform-with-25-million-end-users/. 
  6. Tan, Aaron (30 September 2012). "FatFractal ups the ante in backend-as-a-service market". Techgoondu.com. http://www.techgoondu.com/2012/09/30/fatfractal-ups-the-ante-in-backend-as-a-service/. 
  7. Rowinski, Dan (9 November 2011). "Mobile Backend As A Service Parse Raises $5.5 Million in Series A Funding". ReadWrite. http://readwrite.com/2011/11/09/mobile-backend-as-a-service-pa. 
  8. Mishra, Pankaj (7 January 2014). "MobStac Raises $2 Million In Series B To Help Brands Leverage Mobile Commerce". TechCrunch. https://techcrunch.com/2014/01/07/mobstac-raises-2-million-in-series-b-to-help-brands-leverage-mobile-commerce/. 
  9. Lane, Kin. "New Features From BaaS Provider AnyPresence". API Evangelist. http://www.apievangelist.com/2013/05/28/new-features-from-baas-provider-anypresence//. 
  10. 10.0 10.1 10.2 Lawler, Ryan (26 March 2012). "Parse offers its mobile backend-as-a-service on a freemium model". GigaOM. http://gigaom.com/2012/03/26/parse-freemium-service/. 
  11. 11.0 11.1 Williams, Alex (11 July 2012). "Kinvey Raises $5 Million For Mobile And Web App Backend As A Service". TechCrunch. https://techcrunch.com/2012/07/11/kinvey-raises-5-million-for-mobile-and-web-app-back-end-as-a-service/. 
  12. Facemire, Michael (2 September 2012). "Enterprise Mobility: How Fast Can Development Go?". Michael Facemire's Blog. Forrester.com. http://blogs.forrester.com/michael_facemire/12-09-02-enterprise_mobility_how_fast_can_development_go. 
  13. "Understanding the Basics of Backend as a Service (BaaS)". Mobile City. Silicon India. 9 August 2012. http://mobile.siliconindia.com/news/Understanding-the-Basics-of-Backend-as-a-Service-BaaS-nid-126045.html. 
  14. Rowinski, Dan (17 April 2012). "The Rise of Mobile Cloud Services: BaaS Startups Grow Up". ReadWrite. http://readwrite.com/2012/04/17/mobile-backend-as-a-service-ec. 
  15. Lane, Kin. "New Features From BaaS Provider AnyPresence". API Evangelist. http://www.apievangelist.com/2013/05/28/new-features-from-baas-provider-anypresence//. 
  16. 16.0 16.1 16.2 16.3 Zomko, Roman. "The Brief Guide to Backend as a Service (BaaS)" (in en). https://impressit.io/blog/guide-to-baas. 
  17. "Firebase Cloud Messaging" (in en). https://firebase.google.com/docs/cloud-messaging. 
  18. "Notifications - AWS Amplify Hosting". https://docs.aws.amazon.com/amplify/latest/userguide/notifications.html. 
  19. 19.0 19.1 "Cloud Functions for Firebase" (in en). https://firebase.google.com/docs/functions. 
  20. 20.0 20.1 "Functions - Docs - Appwrite" (in en). https://appwrite.io/docs/products/functions. 
  21. "Edge Functions | Supabase Docs" (in en). https://supabase.com/docs/guides/functions. 
  22. Ail, Vijit (2022-06-15). "Using Edge Functions in Supabase: A complete guide". https://blog.logrocket.com/using-edge-functions-supabase-complete-guide/. 
  23. Rowinski, Dan (17 April 2012). "The Rise of Mobile Cloud Services: BaaS Startups Grow Up". ReadWrite. http://readwrite.com/2012/04/17/mobile-backend-as-a-service-ec. 
  24. "Google Analytics for Firebase" (in en). https://firebase.google.com/docs/analytics. 
  25. "Full Stack Web App Editor - Extensible App Builder - AWS Amplify Studio - AWS" (in en-US). https://aws.amazon.com/amplify/studio/. 
  26. "UI Builder" (in en). https://backendless.com/recipe/ui-builder/. 
  27. "Firebase Extensions" (in en). https://firebase.google.com/docs/extensions. 
  28. "Avatars API Reference - Docs - Appwrite" (in en). https://appwrite.io/docs/references/cloud/client-web/avatars. 
  29. "Locale API Reference - Docs - Appwrite" (in en). https://appwrite.io/docs/references/cloud/client-web/locale. 
  30. "Back4App Agent" (in en). https://www.back4app.com/agent. 
  31. 31.0 31.1 "How to Choose the Right Backend as a Service (BaaS) Provider for Your Project" (in en). 2023-09-13. https://dev.to/hackmamba/how-to-choose-the-right-backend-as-a-service-baas-provider-for-your-project-2djd. 
  32. "Supabase | The Open Source Firebase Alternative" (in en). https://supabase.com/. 
  33. "What is BaaS? | Backend-as-a-Service vs. serverless". https://www.cloudflare.com/learning/serverless/glossary/backend-as-a-service-baas/. 
  34. "What Is Mobile Backend As A Service (MBaaS)? (2022)" (in en). 2023-01-20. https://backendless.com/what-is-mobile-backend-as-a-service-mbaas/. 
  35. "MongoDB Stitch - Backend as a Service". MongoDB. https://www.mongodb.com/cloud/stitch. 
  36. "Firebase Pricing". Firebase. https://firebase.google.com/pricing.