Backend-as-a-Service (BaaS) for Efficient Software Development
First-generation cloud services, such as Alibaba Cloud IaaS and PaaS products, eliminate the need for managing servers and O&M systems by deploying cloud data centers. Backend-as-a-Service (BaaS) represents the second-generation cloud service platform. BaaS can further simplify and optimize cloud computing resources and provide all-in-one cloud services including development, O&M, and service management.
BaaS can package public cloud data center resources based on frontend application scenarios and provide them to developers through simple interface invocation. With those benefits, developers can focus on studying users, creating and designing app software, and developing mobile-end apps. This greatly simplifies the development procedure, development cycle and personnel, as well as capital investment while accelerating the launch of apps to the market. The objective for the development of the BaaS architecture is to solve business development efficiency problems. From this article, you can understand the development trends of current software development models.
The New Age of Technology
With the proliferation of the Internet and the booming number of mobile-technology-based start-ups, the time for implementing an idea is as short as a few months. With intense competition, if a company fails to do so, other similar products may come out, which is true for O2O, Internet of Things and Internet finance. For entrepreneurs, launching products quickly, going through market tests and occupying the target market is undoubtedly a quick-action battle. To survive and thrive in such a competitive marketplace, you must run your business efficiently and effectively. Rooted in the furnace of the mobile internet, the BaaS architecture has gained importance.
For entrepreneurial developers, the priority is cost and efficiency. They normally lack technical accumulation, and they need to develop their businesses by proving their business models with low costs. In this context, cloud service providers become their best options.
When entrepreneurs’ technical teams are trying to implement their architectures, they will be delighted to find that dedicated entrepreneurial technical companies are providing some of those required common features. Being open to developers as cloud services, these features can either provide certain portions of the required functionality or complete features. On this basis, the cloud service ecosystem is formed and can provide entrepreneurs with various technical services.
Let us assume that you are the CTO of an O2O entrepreneurial company and are considering developing a business platform from an O2O idea. In this age of the mobile internet, mobile app and web features are mandatory. You are likely to face the following challenges:
●Deployment and maintenance of servers
●Development of apps and websites
●Development of backend servers
●Platform functions like authentication and authorization, file storage, pushing and communication, mapping, payment, social sharing, verification and security, intelligent identification, searching, and user behavior analysis
●Services like Activity management
As a CTO, to overcome these challenges, you need to recruit backend, frontend, iOS, Android and O&M engineers. However, when trying to design and implement each of these features, you may find that some of these recruits are technically not sound. On the other hand, implementing these features independently and quickly requires high costs, time, and resources.
However, by researching the technical market, you can find that these basic services are already available as solutions from dedicated companies, so all you have to do is integrate those solutions to save development costs.
You can find entrepreneurial technical companies that provide dedicated services in almost every common functional area. With sharp business acumen, these technical companies can quickly respond to market needs, and this boosts the emergence of new technical architecture services. Entrepreneurs can directly utilize such rich solutions to meet their business needs and quickly develop product platforms for end users.
In fact, those entrepreneurial and technical platform companies are building a complementary relationship between themselves. While entrepreneurial companies are using the services from technical platform companies, the latter can obtain more data, and the former can obtain free and improved services. Through competitions, technical platform companies can enhance their services and offer developers a better development experience. This allows those companies to take the lead in their respective business fields.
In this mobile internet and cloud computing age, the technical platform companies can encapsulate certain features as services to acquire new users (in the form of developers). The strategy has resulted in the popularity of the BaaS architecture soaring in recent years.
Real World Challenges
Redundant Systems against Lightweight Scale
Today, so many systems exist in Taobao’s technical departments, and we know little about their specific roles. To figure this out, we can go over those systems by using the domain layered model:
Surprisingly, we find that there are hundreds of systems supporting a relatively small number of services. By exploring those systems in depth, we can find the following major problems:
- Repetitive construction
- Unplanned implementation
Here, you can easily see the waste of development and physical resources. Those systems have also become a huge burden that requires lots of effort and resources to maintain, upgrade, develop, run, and monitor. To perform code-level reconstruction on a software program that is complicated and difficult to maintain, you probably require architecture-level reconstruction to overcome the system-level complexity.
Excessive Workloads on Developers Prevent Development of Critical Systems
Alibaba Cloud’s developers have deep technical understanding as well as extensive practical industry experience in cloud technology. On the one hand, Alibaba Cloud has outstanding business scenarios that require excellent technical skills to maintain; on the other hand, internal developers have to go through highly intensive development practices, which make them come out on top.
While outsourcing internal systems, for example, to develop a new business system, Alibaba Cloud was able to determine some of the best practices that developers need to follow during different phases.
Developers need to consider how to design databases, separate databases, and tables, and ensure high security, concurrency, and performance. In this case, developers need to use the databases (MySQL and Hbase), message middleware (notify and metaq), cache (Tair), distributed invocation (HSF) and .J2EE.
Alibaba Cloud’s attitude towards system stability is that stability prevails over everything. During one recent promotion event, most development teams focused on ensuring system stability by reviewing system architecture and dependency strength and designing traffic limitation plans. Thus, high concurrency, system performance optimization, and JVM have also become strengths of Alibaba Cloud developers.
However, we must go over the following questions: Is it necessary for developers to master so many skills in developing business systems in addition to implementing business logic? Shouldn’t business system developers focus on developing business logic? Shouldn’t system stability and high backend concurrency performance be implemented by less advanced and professional teams, why does each development team have to do the same job? Is this the result of job division, planning or the technical architecture?
Vague Boundaries of Business and Technical Platform Systems
In Alibaba Cloud, there is a trend: after a certain period, technical system developers are prone to running businesses, and business system developers are prone to building platforms. On the one hand, this phenomenon reflects the developers’ desire to promote themselves based on KPIs; on the other hand, this reveals their confusion about career development resulting from ambiguous objectives.
To be specific, business development teams need to meet business requirements while technical development teams need to provide various capabilities for business development and ensure underlying support services. Such architectural specificity ensures unambiguous assignment of responsibilities.
Lack of Inter-System Integration Collaboration Standards
To solve problems of complexity, we need to learn from enterprise middleware software programs. For example, for traditional banking businesses, different internal systems can combine various standards such as EIP and ESB to work out complicated businesses together.
Alibaba Cloud Recommendations
Software engineering draws many references from construction engineering. In the construction field, China Grand Enterprises is famous for constructing the Broad Pavilion overnight at the Shanghai Expo 2010.
Recently, China Grand Enterprises constructed a high-rise with 57 floors in 19 days. Their constructional renovation achievement demonstrates China’s progress in today’s world. Their achievement lies in the innovative construction method, namely constructing buildings by following the “standard construction model.
If you can standardize and modularize your accumulative technical skills so that business teams can quickly utilize those skills, you will be able to gain the expected “platform” capabilities.
For Alibaba Cloud, its technical accumulation has formed a complete system from cloud infrastructure construction to middleware, to e-commerce systems.
This system covers almost all technical fields, and the accumulated skills can support the world’s largest e-commerce businesses. To solve current problems, it needs to review existing processes and “modularize” its capabilities in addition to combining those capabilities through “standardization.”
In this way, Alibaba Cloud development teams can effectively develop separate capability modules while business systems can use these modules in the standard way.
Build a Capability Supermarket
Building a capability supermarket allows you to use refined market management to transform the development model from an open market to a modern supermarket. As we all know, supermarkets are bound to replace open fairs during urbanization development.
The reasons are simple. Essentially, supermarkets outshine open fairs due to their chain of operation, which features centralized procurement, distribution, and management. Centered around the linking system, chained supermarkets rely on the network of mass outlets, develop sales revenue based on the centralized procurement system, and make a logistic profit out of modern distribution centers. They route marketing information to the processing and manufacturing industry to develop OEM products and even form a supply chain to develop manufacturing profit. That is to say that chained operation expands standardization, routinization, and industrialization to the circulation domain to reduce costs dramatically while providing consumers with tangible benefits.
In this centralized management and standardization approach, chain operation can earn maximum scale and efficiency advantages. Similarly, business development teams should also learn from this modern supermarket operation model to improve work efficiency through centralized management and standardization.
Nowadays, uneven business development and technical planning have created a gap in Alibaba Cloud’s operation. By reviewing its internal development ecosystem, Alibaba Cloud found that different development teams develop based on separate department businesses, resulting in cases of repeated construction of resources. Technical and business departments cannot fully support and complement each other while they do not have a clear understanding of each other’s capabilities or overall market capabilities. This results in redundant workloads that create a similar situation to that of repetitive procurement in open markets. To solve this problem, we can take cues from modern supermarkets for their overall management and planning of operation models, layouts, stocks, and capabilities. In this way, it is possible to manage the responsibilities and capabilities of different development teams explicitly while ensuring close cooperation among them.
Metaphorically, capabilities are like products in a supermarket. You can purchase the required capabilities, while at the same time able to discard the unsalable ones. You can enhance salable capabilities, and avoid repetitive capabilities. You can also centrally plan categories of capabilities, with their utilization monitored and charged accordingly.
By doing this, you can formulate an effective mechanism with which a newly-developed capability will be available to all business teams, and it can undergo further development to meet the requirements. In this way, different development teams will not develop similar capabilities repeatedly, preventing wastage of resources. (For example, think about how many rule systems are there internally.)
By operating capability developers and consumers, one can create an efficient ecosystem to avoid resource wastage. By using the supermarket capability, consumers can understand all internal capabilities while capability developers can respond to market needs to develop required capabilities.
Set Up Inter-system Enterprise-like Integration Standards
Legacy enterprise middleware uses enterprise integration systems to coordinate complicated business problems among multiple systems. Similarly, Alibaba Cloud’s business development also requires the coordination of its systems and needs to respond to complicated businesses quickly.
Many scenarios need data synchronization, such as the data synchronization between business systems and search systems and the data exchange between ODPS offline data and online data.
Currently, we achieve data interaction of these systems by custom APIs or scripts of specific systems. To develop such standards, developers need to understand each system’s APIs. Once those standards are ready, like enterprise integration, it will significantly lower the development threshold of developers and improve development efficiency.
Upgrade Development from the J2EE Era to the Cloud Development Era
Soon, the new tiers of the mobile internet cloud-computing era (UI, MBaaS, and platform) will replace the three-tier architecture of the J2EE time (presentation, middle and data service tiers).
With the new architecture, complicated business systems can become simple and loosely-coupled as well enable easy sharing of data and interfaces internally and externally.
As shown in the figure above, most of Alibaba Cloud’s development architecture stays in the tightly-coupled state, or it partially transforms into the SOA a;;rchitecture. Ideally, it needs to move to a third development architecture to meet complex business needs among systems in a simple, standard and interchangeable way.
For backend teams, they need to focus on implementing platforms and services. To implement those services, they need to upgrade their development architectures from the J2EE era (such as MVC and RPC) to new architectures of the cloud era such as microservices, EDA and CQRS. They should enhance their understanding of system complexities and utilize servitization to meet the needs of business teams.
With the upgrade of those architectures, division of responsibility for development teams will have better definitions, for example:
Development team -> frontend, interaction and business logic
Backend team -> platforms, services, and stability
Build a Developer Ecosystem
By building an optimum ecosystem around data for applications (businesses), developers and platforms, it is possible to share all developers’ expertise and experience effectively. Further, all developers can review and follow the development of various businesses and the designing and implementation of architectures. Meanwhile, by developing development expansion and module standards, developers can take the initiative to submit their capability modules, which you can purchase through the platform “capability supermarket.”
This article looked at some of the development trends of current software development models. We discussed how the adoption of the Internet and mobile technologies has revolutionized the business ecosystem, with entrepreneurs able to implement their ideas quickly by leveraging services of technical platform providers. We also looked at certain challenges that are likely to come in our way, and finally discussed some recommendations by Alibaba Cloud on overcoming these challenges.