Introduction to Backend as a Service (BaaS)

As a new cloud service, Backend as a Service (BaaS), or Mobile Backend as a Service (MBaaS), seeks to provide mobile and web applications with backend cloud services including cloud data, file storage, account management, message pushing, and social media integration. With the evolution of the mobile Internet, BaaS is gaining popularity among developers. BaaS is a new model for application development and can lower development costs, allowing developers to focus on the development process itself.

Derived from the mobile internet, BaaS is a development architecture for accelerating mobile application development. BaaS transforms backend capabilities into services, reducing repetitive construction for service developers.

IaaS, PaaS, and SaaS

Most of us are already familiar with IaaS, PaaS, and SaaS as these terms are widely used in cloud computing.

  • Infrastructure as a Service (IaaS)
    Servitization of infrastructures, represented by AWS and Alibaba Cloud.
  • Platform as a Service (PaaS)
    Servitization of development platforms, represented by Google APP Engine, Alibaba Cloud, Baidu open platform, Tencent development platform, and Sina development platform.
  • Software as a Service (SaaS)
    Servitization of software programs, represented by Microsoft Office 365.

BaaS - The Improvement of PaaS

Being an intermediate architecture between PaaS and SaaS, the essence of creating BaaS is to meet the rapid development needs of the mobile Internet and to provide backend capabilities as services. Built on PaaS platforms, developers can utilize the serviced backend capabilities to develop their software solutions.

Being an alternative to mobile middleware, BaaS uses unified APIs and SDKs to connect mobile applications to backend cloud storage, whereas legacy mobile middleware uses local physical services to integrate backend services. The biggest difference between middleware and BaaS is the inclusion of cloud services. In this manner, BaaS is an expansion of PaaS in the mobile vertical field, or better yet, the combination of mobile middleware and the cloud.

While PaaS simplifies the application deployment process, BaaS simplifies the application development process. PaaS is a development platform for executing code and managing application operating environments. Users can interact with it by using a code version management tool such as SVN or Git. For developers, PaaS is largely a container where the input is code and configuration files, and the output is various URLs to applications. The BaaS platform then further abstracts user needs.

Let us look at a user management example. After creating user database tables (models), clients should ideally be able to directly operate these models through the RESTful interface, where all operations are abstracted as CRUD. Previously, developers had to create tables, develop interfaces, and write check codes to enable this feature. By using the BaaS platform, developers only need to define models, and the platform will automatically generate corresponding interfaces, enabling developers to focus only on client-specific codes.

BaaS helps transform the J2EE platform for development, adapting to the needs of modern businesses. Let us examine the conventional method of J2EE PaaS.

Some of the major improvements introduced by the J2EE Stack include new services and APIs such as:
1. JDBC (Java Database Connectivity) JDBC APIs provide a unified path for accessing different databases.
2. JNDI (Java Name and Directory Interface) makes requests to remote methods, after which the RMI protocol invokes the methods in remote objects. It can implement data transfers between clients and servers in a serial manner.
3. Java Servlet, which is a functional extension of web servers.
4. JMS, an application interface for the inter-communication between object-message-oriented middleware.

As server-end development enters the middleware phase, developers can use the features and specifications provided by middleware to meet various business needs. With the development of J2EE and middleware, developers have formed a PaaS foundation for cloud architecture. Specifically, these middleware and servers constitute a development platform, which provides developers comprehensive capabilities through various specifications and protocols.

J2EE is also the most common development architecture today. Initially, J2EE was thought to be the ideal solution to development, allowing developers to go in depth into various technical details only when necessary. In reality, this architecture has come to its bottleneck.

Because its emphasis on high development efficiency and low costs, this development architecture has multiple disadvantages, such as the high technical skills required for development. It is also necessary to upgrade the development architecture.

Improved Development Efficiency and Lowered Costs through BaaS

Ideally, what steps should you take during the development of a typical web business system?

Usually, the development process consists of backend development and frontend development. The backend is responsible for a series of features including data storage, retrieval, integration, business logics, authentication, and authorization, which you may think are easy to implement:

However, in reality, the process looks much more like this:

There are a lot more services and applications to be considered in our development process.

Building an internet web system with high reliability, concurrency, performance, long-term technical accumulation, and high resource cost is essential for enhancing development capabilities.

Existing development processes are repetitive because developers have to repeat the same job for each business group. In an ideal scenario, developers should be able to produce results by simply selecting inputs and letting the interface and APIs generate the desired output.

The development of cloud computing makes this dream increasingly possible. On the Alibaba Cloud IaaS platform, you can complete server deployment just by entering the desired number of servers and configurations. Furthermore, middleware services such as RDS, OSS, and messaging on the Alibaba Cloud PaaS platform, allow you to achieve storage, messaging capabilities with a single click.

Alibaba Cloud is working on implementing additional services through BaaS, including authentication and authorization, message pushing, data modeling, mapping, and voice. With BaaS, external applications as services get backend capabilities.

By integrating backend capabilities into a platform, we can build a new development architecture:

The BaaS architecture consists of the following components:
BaaS = IaaS + PaaS + APIs + SDKs

Developers can implement desired features by using APIs or SDKs, allowing them to focus only on developing business-specific applications. This development architecture significantly accelerates businesses without complicated backend development and maintenance, simplifying the technical requirements for developers.

BaaS Industry Ecosystem

Since 2012, BaaS has witnessed rapid development in the industry. Many large enterprises have acquired BaaS startups to incorporate BaaS in their system. In April 2013, Facebook acquired Parse; in June 2014, Apple released CloudKit in the annual WWDC; in October 2014, Google acquired Firebase.

Facebook intends to remove isolated information islands between applications to enable content communication and switching between them. With this vision, Facebook has released a "protocol" named AppLinks, which depends on backend services to support a series of technologies in the backend, such as data storage, computing, and push notification.

For Apple, CloudKit can provide a comprehensive and elastic backend solution to help developers develop server code and maintain server requirements. Obviously, Apple's aim is to lower development costs of iOS applications and maintain the success of the iOS ecosystem.

James Tamplin, the founder of Firebase, wrote on his blog, "Firebase and Google Cloud Platform can complement each other perfectly." Just like Apple providing CloudKit for iOS developers, Google also wants to develop a similar service to assist the developers in the Android ecosystem.

BaaS Values and Benefits

BaaS can seamlessly link technologies with businesses. With BaaS, business development teams can work as external entrepreneurial companies, and their core competencies lie in the understanding and implementation of businesses. They can develop applications in a timely and cost-effective manner to meet their needs with low cost while committing their critical resources to expanding their core competence.

It is possible to build the BaaS platform as a product, transforming PaaS capabilities to BaaS services that are easier to use for developers. Meanwhile, developers can operate, maintain, and separately deploy the platform, providing service capabilities with high concurrency, performance, and reliability.

Besides, as a cloud product, the BaaS platform can provide mid- and small-size developers and entrepreneurial teams, enterprises, and organizations with various BaaS-related products and services.

Here are some of the major benefits of BaaS:

  • Creating an implementation threshold for personal mobile application developers
    For personal mobile developers, both frontend and backend development capabilities must be in place to fulfill their ideas. For this purpose, outsourcing or building a small team can help. But this remains difficult for mobile developers.
  • Cost control and meeting quick development needs of entrepreneurial teams
    For entrepreneurial teams, quickness and agility are key to winning market opportunities. However, backend development and O&M of mobile applications are repetitive, monotonous and time- and labor-consuming. For various reasons, entrepreneurial team members normally have to play multiple roles, and this labor shortage can cause delayed product launch and aborted great ideas.
  • Data security and agile development needs of enterprises
    For enterprises, building the backend by themselves is repetitive and costly. Comparatively, purchasing proven services and putting enterprise labor in other jobs with greater creation values is preferable to devoting labor and time resources to repetitive workloads. Despite this, the business logics of different enterprises are different. Thus, cloud customization services for enterprises become important.

Baas is the provider of backend business logic solutions for business development. It provides personal developers and entrepreneurial teams with free public cloud services and provides enterprises with private cloud customization services. BaaS is designed to remove backend development and deployment concerns for developers so that they no longer need to purchase servers (with IaaS), deploy backend environments (with PaaS), develop backend code (with BaaS) and can easily modify business logics (with SDKs and APIs), leading to quick implementations.

Meanwhile, the removal of those non-necessities can reduce costs and O&M workload. Also, developers no longer have to learn about various middleware and worry about the concurrency and stability of applications as they all will become simple services.

Conclusion

BaaS can serve as the fundamental service of the mobile internet, as it caters to all web and mobile applications. BaaS can also link cloud services and developer services together and provide them to personal users for free, and to large- and mid-size enterprise users at lower costs.

Looking ahead, BaaS should be associated with big data to control the future with a complete set of required resources. It can collect user behavior data by using APIs and SDKs. Being combined with business intelligence of big data, it can deliver significant value and reduce data barriers.

时间: 2024-10-25 20:06:08

Introduction to Backend as a Service (BaaS)的相关文章

BaaS后端即服务 - 分析篇

在本文中我们将主要研究目前主要的BaaS平台的功能,以及Google,Facebook,Apple等互联网巨头在BaaS领域的动作.同时我们也会关注国内一些主流BaaS平台的发展以及国内互联网巨头如百度,华为等在BaaS领域的投入发展. 1. 国外主流的BaaS平台   在BaaS领域,有几件事情值得关注: 2013年4月,Facebook收购Parse: 2013年12月,Paypal收购stackmob; 2014年6月,苹果在一年一度的WWDC上发布了CloudKit: 2014年10月,

三分钟了解 BaaS 与 PaaS 的区别何在

BaaS(Backend as a Service)BaaS 是一种新型的云服务,旨在为移动和 Web 应用提供后端云服务,包括云端数据/文件存储.账户管理.消息推送.社交媒体整合等.BaaS 是垂直领域的云服务,随着移动互联网的持续火热,BaaS 也受到越来越多的开发者的亲睐.它作为应用开发的新模型,可以降低开发者成本,让开发者只需专注于具体的开发工作. BaaS是移动中间件的替代品(或者说备选方案),它使用统一的API和SDK来连接移动应用到后端云存储,传统的移动中间件通过本地的物理服务把后

2014年智能手机市场趋势分析

2013年已经过去,却为2014年留下了很多未解的问题.智能手机市场会有怎样的变化?硬件.软件市场会有怎样的发展?云服务和数据隐私的冲突会缓和吗? 很多问题只有时间能给我们答案,也没有人可以百分百预测成功.那不妨让我们和作者Duncan Anderson一起,期待2014年智能手机.移动智能设备.软硬件.PC市场会有怎样的变化. 1. 智能手机更智能,更多传感器 我们经常会忘记自己口袋里的拥有众多传感器的智能手机有多强大:我口袋里的那部iPhone有计步器.指南针.加速计.GPS.指纹传感器.蓝

BaaS云架构核心模式之Serverless架构 - 用服务代替服务器(Martin Fowler)

Martin Fowler最近非常推崇的serverless架构模式,是BaaS云架构实现的核心架构模式. Martin Fowler在2016.6.17号发表了一篇博客: <Serverless Architectures>,引起业界广泛关注: 在这篇博客里,他介绍了serverless架构,以及FaaS,Microservice,Docker等流行的架构和概念,描述了Amazon AWS lambda的价值, 进一步将这种云时代的架构清晰的展现在大家的视野里. 本文很多内容来自这篇博客,让

BaaS、FaaS、Serverless都是什么馅儿?

小编说:软件行业是一个飞速发展的行业,不断推出新技术,以及令人目不暇接的概念和术语.厘清各种概念和术语的含义,对于分析技术发展趋势,决定是否需要及时入坑很有必要.今天我们就来聊一聊最近被热烈讨论的Serverless,以及与之相关的两个概念BaaS及FaaS.本文编译自What's Serverless?(O'Reilly电子书)作者:Mike Roberts,John Chapin. 国内外的各大云厂商 Amazon.微软.Google.IBM.阿里云.腾讯云相继推出Serverless产品,

BaaS后端即服务 - 概念篇

什么是BaaS? BaaS(Backend as a Service)是一种新型的云服务,旨在为移动和Web应用提供后端云服务,包括云端数据/文件存储.账户管理.消息推送.社交媒体整合等.BaaS是垂直领域的云服务,随着移动互联网的持续火热,BaaS也受到越来越多的开发者的亲睐.它作为应用开发的新模型,可以降低开发者成本,让开发者只需专注于具体的开发工作. 可以说BaaS是诞生于移动互联网,为了加速移动应用开发和降低成本而形成的开发架构.BaaS可以带来后端能力的服务化,服务化也为后端能力优化管

悄悄的告诉你 BaaS真是开发者的好基友

在笔者看来,21世纪仿佛是一个aaS的世纪,从最初的IaaS.PaaS.SaaS到不断涌现的DaaS.CaaS.MaaS和DBaaS可以说无奇不有,而BaaS实际上也是在这股aaS浪潮中涌现出的一个开发者好基友. 为什么这么说呢? BaaS也叫作MBaaS是Mobile backend as a service(移动后端即服务)的简称,是一种新型的云服务,旨在为移动和Web应用提供后端云服务,包括云端数据.文件存储.账户管理.消息推送.社交媒体整合等.BaaS将应用层的通用服务进行抽象,这种方式

多屏时代的App实时同步,BackWire为开发者提供后台跨屏数据同步的BaaS解决方案

移动互联网时代,要想给用户提供一个完整.无缝的产品体验,开发者必须为自己的产品开发支持多个终端的应用.同时在多终端环境下,还要解决各终端间数据实时同步的问题.而昨天在InnoSpace 的首届DemoDay 上,就出现了一家为开发者提供App 多终端数据实时同步服务的创业公司:Backwire. 宏观上来说,Backwire 是一家BaaS(Backend as a Service,后端即服务)创业公司.而公司要解决的首要问题,是开发者的跨平台跨设备App如何通过后台服务(Backend Ser

移动催生BaaS 幕后服务也可有大作为

最近国内针对移动开发者的服务火了起来,像七牛云存储.ShareSDK都获得了资本市场的认可,拿到了投资,而百度.阿里也动作频频,推出了一系列方便移动开发者的服务,在国外,推出to Developer服务的创业公司层出不穷,成功融资的也不在少数.他们的成功全都和一个叫BaaS的概念联系在一起,到底BaaS是什么,它为什么得到了资本市场的认可?本文就试图来回答这个问题. 本文将分为三个部分,第一部分讲BaaS的定义,分析它的特征,以及和其他aaS的关系;第二部分讲BaaS和开发者,为什么要用BaaS