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:
- JDBC (Java Database Connectivity) JDBC APIs provide a unified path for accessing different databases.
- 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.
- Java Servlet, which is a functional extension of web servers.
- 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.
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.