Author | ali EMAS Yang 镔 greetings native applications research and development platform (ling ling Ming)
Takeaway: with the development of technology and the emergence of a variety of client scenario, business reception form becoming more diverse, “for a variety of digital scene to provide seamless, consistent user journey” has become the new era’s key objectives of enterprise application architecture, it is also the present large front-end technology behind the development of core business. Based on ali Cloud’s experience in serving a large number of users in the past few years, this paper summarizes a new end application RESEARCH and development paradigm based on cloud native technology, hoping to provide developers and enterprises with application research and development methodology for enterprise business reception in the era of cloud computing.
Multiexprience with large front end
With the implementation and continuous development of cloud computing, mobile, IoT, AI and other technological concepts, the digitalization process of society is accelerating. Gartner recently released a new enterprise Application architecture methodology MASA (Mesh Application and Service Architechture) [1], integrating the popular technical trends of the past five years. For the majority of enterprise information suppliers, developers and enterprise users to define a broader enterprise digital application architecture model.
[1] Use MASA to Deliver an Agile Multiexperience Enterprise Application Architecture, Gartner, 2019
Unlike ali, as defined by the middle, MASA will enterprise application apart for 3 three layer, based on the traditional back-end business ability, the enterprise at the front desk, and used in Taiwan before and after the link layer API gateway also covers come in, through the grid architecture implementation of enterprise business processes, people, services, content, the equipment, the dynamic connection between In order to build a more agile, flexible and extensible application architecture matching existing technology forms and future technology trends.
Along with MASA, Multiexperience (diversified user experience) for the enterprise front desk is clearly proposed and defined by Gartner as one of the ten technology trends for 2020 **[2]**. Multiexperience expects to use diversified front-end technologies (mobile applications, Web, applets, wearable devices, etc.) to comprehensively upgrade the enterprise’s digital touch points for end customers, and build a diversified (experience diversification) and integrated (architecture integration) user interface centered on end customers. Multiexperience is different from the popular big front-end concept in China, but they have the same story line behind them.
[2] Top 10 Strategic Technology Trends for 2020: Multiexperience, Gartner, 2020
Big front in domestic has not yet been a unified definition, it was more of a relatively pure technical concept, refers to the client side oriented side collection technology, it starts with two Native client and the Web technology stack constantly fusion, behind the core is cross-platform technology in mobile, PC, small programs, such as Web scene down continuously develop and mature.
The big front end technology stack is honed against the backdrop of business requirements such as Multiexperience, while in reverse supporting the business to continuously expand its scenarios and scope of digital touch points for end customers. Technology expands the boundaries of commerce, and commerce drives technological change. Multiexperience and the Big front end share the same user philosophy of providing a seamless and consistent digital user journey for full-end scenarios.
Now, facing the new business architecture paradigm, how to accelerate the development of diversified end applications in the new era to provide more agile and efficient delivery for the business? Cloud native technology is the best option.
How does cloud native technology drive terminal application research and development
A lot of people are wondering, what does cloud native have to do with the development of end testing? Isn’t cloud native a concept of back-end technology domain? It’s not. Cloud native represents an application building methodology: how to build and manage resilient applications at low cost and with agility, taking advantage of the cloud computing service model. Its key concepts include:
- All operating environments are transparent and flexible
- All r&d processes are streamlined and delivered efficiently
- All infrastructure is serviced and paid by volume
The cloud native development model is designed to reduce the technical risk of the business and allow developers to focus more purely on their business. The concept of cloud native technology also applies to the end-to-end application scenario.
Gartner defined a whole new technology track in 2019: Multiexperience Development Platform (MXDP) [3] is used to describe the R&D Platform that helps enterprises achieve Multiexperience efficiently through agile and modern technical capabilities, and its capability matrix is shown as follows:
**[3] **Technology Insight for Multiexperience Development Platforms, Gartner, 2020
As can be seen from the key elements of MXDP, cloud native technology has become the most core technical element of MXDP in addition to traditional r&d tool components. Typical technologies include the following aspects, which will be introduced one by one.
1. DevOps, the high-speed iteration of applications that drive them
End applications are typically different from traditional back-end applications. Taking mobile App as an example, the application itself is built on heterogeneous models and OS platforms, with more operating environment constraints and relying on a large number of back-end service support. The continuous integration and delivery process of the application itself also contains many elements unique to mobile scenarios. Key differences such as build environments, compatibility testing, in-test distribution, channel packaging, grayscale distribution, etc., dictate that end applications must build their own DevOps architecture.
1) R&D domain
The DevOps platform for end-to-end applications needs to address organizational collaboration and automation of the continuous application integration process. For the end application development period, a mature DevOps platform should have:
- Build a multi-terminal build environment and automate software updates;
- Reliable, resilient build service clusters;
- Code and certificate hosting;
- Static code scanning;
- Software-defined workflows.
2) Test domain
Compared with traditional back-end applications, the complexity of end-application testing is greatly increased. In addition to basic function and performance tests, compatibility tests for heterogeneous models, terminals and operating systems are also required. Mature end-application testing platforms should have:
- Compatibility testing services, covering mainstream models, devices, operating systems;
- Performance testing services, supporting monitoring and evaluation of key performance indicators such as application crashes, ANR, lag, IO, CPU, memory, etc.
- Automated test engine that supports test case writing, playback, and management;
- Remote real computer capability, support device cloud access;
- Intelligent Monkey and AITest and other intelligent technology driven testing capabilities.
3) Publishing domain
The target release objects of end applications are massive terminal devices. Production and release are restricted by application market review. Therefore, reliable, accurate and targeted application distribution capabilities are key technical requirements for application production and distribution, including:
- Intra-enterprise distribution capacity;
- Support grayscale capability defined by software, support grayscale distribution for different regions, networks, models, channels and other customized labels;
- Production and release capability for different channels;
- Versioning and archiving.
4) Operation and maintenance domain
The operation and maintenance system of end-to-end applications should always focus on problem perception, problem location and problem repair. On the basis of traditional Metrics, Tracing and Logging, we especially emphasize the ability of end-to-end Hotfix, which is different from the form of back-end applications. Mature end operation and maintenance system should include:
- The APM capability of the end-oriented application supports the monitoring and alarm system including the startup speed, page loading, crash, network performance, API performance, etc., and can be linked with the back-end APM for access tracking based on transactions.
- End-to-end application remote log capability, supporting real-time terminal log recording and management, accelerating remote diagnosis of problems;
- The hot repair capability of end – oriented applications supports the hot update of code and resources for different device platforms.
5) Operating domain
As the entrance of enterprise business, the end application is the key interface facing the end users. It must always observe the user’s behavior, listen to the user’s voice, and drive the agile iteration of business. App-oriented data analysis and public opinion feedback capabilities are one of the key closed loops for DevOps.
Data analysis shall include:
- Full-end user behavior data collection capability, including applets, APP, H5, PC, WEB, IoT, etc.
- Easy to use terminal burying tools: support code burying point, automatic burying point, visual burying point, etc.
- Open data capability: Supports API data synchronization and seamless connection with cloud vendors’ computing platforms.
Public opinion feedback should include:
- Full-end user feedback channel capability;
- Intelligent response robot;
- Public opinion data collection and analysis.
Key values that DevOps brings to Multiexperience production practices include:
- Shorter business iteration cycles
The workflow and automation capabilities of the full application lifecycle of the overlay side will greatly improve the continuous application delivery capability and cross-team collaboration efficiency, thus shortening the business delivery cycle. As an entry point for an enterprise to end users, shorter business iterations mean faster response to market, which is the cornerstone of business success in the digital age.
- More rational allocation of human resources
Cloud-native toolchains and automated pipelines will help companies avoid the cost of engineering to maintain localized tools and systems, while drastically reducing the human component of the continuous application delivery process. Companies can focus valuable human resources on their core business of production and research and development.
- More solid application delivery quality
The terminals of the automated test system and a full range of monitoring diagnosis system will provide complete and sufficient for the client application quality assurance, the native of cloud services will save a lot of segmentation for the enterprise in the field of professional investment, and through professional and continuous evolution of engineering technology and the introduction of smart technology constantly optimize the application of quality guarantee system.
- Better real-time user experience
The full range of behavioral data buried and analyzed around the end application will help enterprises better grasp the matching degree between product functions and the market, while the real-time public opinion feedback ability will help enterprises better manage users and maintain relationships. All of these direct and indirect customer voices will directly drive the rapid iteration of the business, enabling agile development production practices through cloud native DevOps.
2. Serverless & Backend as a Service (BaaS), the running engine of end applications
Serverless is one of the hottest topics in the developer community right now, and its core concept is de-servering: The basic capabilities of the underlying cloud computing are abstracted in a high dimension, and the access and acquisition of back-end capabilities are open in the form of API/SDK. The elastic scaling and pay-as-quantity back-end services are supported without the need for developers to configure and deploy server resources.
Serverless’s technical ideas have been around for years: Backend as a Service (BaaS) is a typical Service form that follows the design concept of Serverless. BaaS has been widely spread in the developer community since 2012 and is popular among developers for its convenient usage model. Typical BaaS services include message push, user authentication, cloud storage, and cloud database.
Because BaaS service greatly reduces the cost of enterprise back-end R&D, its back-end application scenarios are widely used. However, the core of BaaS is mainly to solve the back-end capability abstraction of vertical scenarios, and cannot support the back-end logic of the business itself. The emergence of Function as a Service (Faas) fills this gap and enables Serverless’s architectural paradigm to provide a more complete closed-loop for end-to-end application scenarios.
FaaS is a new way of building and deploying software based on an event-driven model that provides developers with a functional granularity hosting environment for business code. This architecture model is widely used in data processing, Backend for Frontend, mobile applications, IoT applications, and Web applications.
To sum up, application-oriented Serverless architecture includes two service forms, BaaS and FaaS. In order to fully support scenario requirements of end applications, a mature Serverless engine should include:
- Being pushed
Supports the establishment of reliable and power-saving long-term connections between servers and clients, and provides downlink message push for Android, iOS, Web, and IoT applications.
- Login authentication
It provides multi-dimensional, secure and reliable end-to-end authentication capability for developers, thus reducing the development cost and business risk of developers in login and account system. Authentication modes include email authentication, SMS authentication, number authentication and login authentication capabilities provided by mainstream Internet platforms (Taobao, Alipay, QQ, wechat, Google, etc.).
- Data synchronization
A stable, reliable, encrypted and secure data synchronization system supports offline use and online data synchronization on clients, providing consistent user experience among mobile applications, Web applications, and PC applications.
- Remote configuration
Remote configuration is a persistent configuration management service for end-to-end applications. It manages configuration content on the cloud and pushes updates to the client in real time to flexibly control application functions, configurations, and UI implementation.
- Cloud storage
Provides convenient cloud storage capabilities based on API/SDK, including text, pictures, videos, and other user-generated content.
- Cloud database
The cloud-based NoSQL database provides convenient access interfaces for various front ends and supports real-time data operation, cross-end data synchronization, and elastic scaling.
- Cloud function
It allows developers to host programs directly on the cloud function platform, complete the development of event-driven business logic with functions as the smallest unit, and carry out remote access and call through API.
- AI ability
Application intelligence is the key technology trend of end applications. Basic AI capabilities, including but not limited to OCR, face recognition, voice recognition and so on, will become the basic components of Serverless architecture of end applications.
The core value of the Serverless architecture and services is reflected in three aspects:
- Resource cost
Traditional application architecture model needs to purchase a batch of server equipment in advance, and make financial budget according to the estimated service peak within the service cycle. There are many uncertain factors, and empty server resources will also bring huge cost waste. Serverless’s architectural model implements an on-demand, pay-as-you-go elastic model that makes enterprise costs more manageable.
- Operational costs
Developers no longer have to worry about the capacity and daily operation of the underlying computing resources. All infrastructure maintenance will be handled by Serverless and transparent to developers. Reduced operational costs, flexible resource usage and scalability will help developers better focus on the growth of the business itself.
- R&d efficiency
The complete Serverless engine supports most scenarios of end-to-end applications, making application development very convenient and easy to maintain. However, under the traditional RESEARCH and development model, code development, environment building, capacity testing, cluster expansion, application deployment and other links will bring huge time costs.
3. Low code, new changes in application research and development form
The emergence of cloud native technology makes traditional business architecture transform to cloud architecture on a large scale, and the efficiency of software development has been significantly improved at this stage. However, in the digital era, with the emergence of various application scenarios, business has put forward higher requirements on the timeliness of MARKET-ORIENTED RESPONSE of IT. In the tide of cross-era technology evolution, low-code Development Platform emerges quickly, and with diversified end application scenarios, it begins to accelerate its popularization. Low code technology not only improves software development efficiency, but also revolutionizes it.
Compared with the traditional model of building applications based on manual coding, the low-code platform provides developers with a GUi-based software editing environment, and combines cloud native infrastructure to help developers quickly build applications. At the same time, such a research and development model greatly reduces the threshold of software development for software developers’ skills, and more people with certain IT basic concepts can participate in software development, while the cloud native architecture naturally helps developers solve the deployment, operation and maintenance of software itself.
Mature low code platform will be widely used in enterprise production, marketing, BPM, tool application and other scenarios, and its core capabilities are mainly composed of two parts:
-
Visual application choreography engine
- Supports multiple application scenarios, including Web, mobile apps, and small programs
- Supports visual UI orchestration, service flow orchestration, logic orchestration, and data orchestration
- Support module, module, template and other models, with open material system and component market
- Model-driven, with metadata parsing engine (including multi-terminal translation engine/rendering engine, etc.)
-
Cloud native application platform
- Industry domain modeling and metadata management
- Code generation engine
- Cloud native application hosting
- CI/CD
- Rich integration and expansion capabilities
We can see the value of low code in Schneider Electric’s partnership with Outsystems, a top low code platform company: After applying the low-code platform, Schneider Electric quickly launched 60 apps in just 20 months, most of which were developed and launched within 10 weeks, and the labor cost saved in the first year reached 650 person-days. Low code technology has greatly shortened the path of digital transformation of traditional enterprises.
By 2024, Gartner projects that 65% of all application development activity will be done in low-code fashion, which may seem a bit faster than expected, but it’s happening all the time. We can see OutSystems, Mendix, PowerApps, and App Maker growing rapidly in the global market. In the future, combining AI and machine learning, we can see the emergence of a true “App factory.”
Seeking change, never stop achieving technological innovation
As an industry giant in the field of mobile Internet and cloud computing in China, Alibaba has rich practical experience in the field of big front-end and cloud native. Since 2016, we have gradually exported the mature application middleware within the group to the cloud, and launched the mobile R&D platform EMAS in 2018. Now, EMAS has gradually grown into a cloud native application r&d platform spanning multiple scenarios (mobile App, H5 application, small program, Web application, etc.). Backend as a Service, Serverless, DevOps, and low-code Backend provides one-stop application development and management services for enterprises and developers, covering the entire application life cycle, such as development, testing, o&M, and operation.
Up to now, with the rapid popularization and development of cloud computing, we have served more than 150,000 enterprises and developers.
In the mass production practice, we also see the key challenges faced by cloud native technology in the application scenarios of the end:
- Develop mental changes
For all development teams, the definition of front and back end teams is ingrained and collaborative interfaces are natural. However, with the widespread application of cloud native technologies such as Serverless, in more and more end application scenarios, the development team only needs front-end developers to complete application development and online work in closed-loop; In the application architecture dimension, Serverless FaaS brings a new paradigm based on event-driven, stateless, functional logical fragments, which is quite different from traditional application models. Change is cost, and more importantly, it is not pure technology behind the change, but also organizational change, the change of production relations.
- Technology maturity
Both Serverless FaaS and low code development belong to the technology in the early stage of commercial development, and there is still a lack of product perfection. The scenarios covered also have certain limitations. For mainstream complex application scenarios, Serverless FaaS also needs to combine traditional microservices architecture to form hybrid Serverless applications. There is still a long way to go in the system observability, r&d and debugging convenience, function startup performance, function execution time and other technical critical control points.
- Architectural flexibility
Cloud native capability represents the high-dimensional encapsulation and abstraction of cloud infrastructure. Abstraction means that the granularity of control becomes coarser, and the flexibility and customized expansion capability of the system will be naturally weakened to some extent.
The challenges are huge, but the trend is there. EMAS BaaS has become the necessary infrastructure for a large number of mobile apps in China, covering more than 2 billion active device terminals worldwide, with more than 10 billion API calls per day. Based on EMAS Serverless, during the pandemic, we saw a large number of developers quickly implement the development of anti-epidemic tool applications, from the birth of the idea to the launch of the product in just one week; Within the enterprise, more and more office applications and forms applications are rapidly built on low-code platforms, resulting in significant productivity gains. According to the Hype Cycle model, a number of emerging technologies that are cloud native have emerged with a number of production practices and technology maturity has entered a steady climb.
There is no doubt that we are on the eve of another era of technology, cloud integration, cloud multi-terminal is becoming the de facto standard of foreground application development, embracing cloud native will become the shortest path for developers to enjoy the bonus of cloud computing. We welcome more talented people to join us (email: [email protected]) to transform productivity and change the world.
“Alibaba Cloud originator focuses on micro-service, Serverless, container, Service Mesh and other technical fields, focuses on the trend of cloud native popular technology, large-scale implementation of cloud native practice, and becomes the public account that most understands cloud native developers.”