End application development enters the cloud native era

Introduction: Based on the accumulation of Alibaba Cloud's experience in serving a large number of users in the past few years, this article summarizes a new cloud-native technology-based end application research and development paradigm, and hopes to provide developers and enterprises with an application research and development methodology for the business front-end of the cloud computing era .

1.png

Author | Alibaba Cloud Cloud Native Application R&D Platform EMAS Yang Bin (Ling Ming)

Introduction : With the development of technology and the emergence of various client scenarios, business front-end forms have become more diverse. "Providing a seamless and consistent digital user journey for diverse client scenarios" has become a new era of enterprise application architecture At the same time, it is also the core business traction behind the development of current big front-end technology. Based on Alibaba Cloud’s accumulated experience in serving a large number of users in the past few years, this article summarizes a new cloud-native technology-based end-application R&D paradigm, hoping to provide developers and enterprises with an application R&D methodology for the front-end business of enterprises in the cloud computing era.

Multiexprience and big front end

With the conceptual landing and continuous development of cloud computing, mobilization, IoT, AI and other technologies, the digitalization process of society is accelerating. Gartner recently released a new enterprise application architecture methodology MASA (Mesh Application and Service Architechture, grid application and service architecture) [1] , integrating the technology trends that have been popular in the past five years, and providing information for the majority of enterprise information suppliers, developers and Enterprise users have defined a broader enterprise digital application architecture model.

[1] Use MASA to Deliver an Agile Multiexperience Enterprise Application Architecture, Gartner, 2019

2.png

Unlike the middle station defined by Alibaba, MASA disassembles enterprise applications into upper, middle and lower layers. Based on the traditional back-end business capabilities, it also covers the front-end of the enterprise and the API gateway layer for front-end and back-end links. In recent years, the dynamic connection between enterprise business processes, employees, services, content, and equipment has been realized through a grid-based architecture to build a more agile, flexible, and extensible application architecture that matches the existing technology form and future technology trends.

Along with MASA, Multiexperience (diversified user experience) for the front office of enterprises is clearly proposed and defined by Gartner as the top ten technology trends in 2020 [2] . Multiexperience expects to use diversified front-end technologies (mobile applications, Web, applets, wearable devices, etc.) to comprehensively upgrade the company’s digital touchpoints to end customers, and build a diversified (experience diversified) integration (integrated architecture) with end customers as the center ) User interface. Multiexperience is different from the big front-end concepts popular in China, but they have the same main story behind them.

[2] Top 10 Strategic Technology Trends for 2020: Multiexperience, Gartner, 2020

There is no unified definition of the big front end in China. It is more inclined to a relatively pure technical concept, which means a collection of client-oriented end technologies. Its emergence began with the continuous integration of the client Native and Web technology stacks. The core is the continuous development and maturity of cross-platform technology in mobile, PC, applet, and Web scenarios.

The big front-end technology stack continues to sharpen against the background of business requirements such as Multiexperience, and at the same time, it reversely supports the business to continuously expand the scenarios and scope of its digital touchpoints for end customers. Technology expands business boundaries, and business drives technological change. Facing all-end scenarios, providing a seamless and consistent digital user journey is the user philosophy of Multiexperience and the big front end.

Nowadays, facing the new business architecture paradigm, how to accelerate the development of diversified end applications in the new era and provide more agile and efficient delivery for the business? Cloud native technology is the best option.

One cloud with multiple terminals, how does cloud native technology drive terminal application development

Many people have doubts. What is the relationship between cloud native and end-testing research and development? Isn't cloud native a concept of back-end technology domain? actually not. Cloud native represents a methodology for application construction: how to make the most of the advantages of the cloud computing service model to build and manage a flexible application at low cost and agilely. Its key concepts include:

  • All operating environments are transparent and flexible
  • All R&D processes are streamlined and delivered efficiently
  • All infrastructures are service-oriented, pay-as-you-go

The cloud-native R&D model aims to reduce the technical risks of the business, allowing developers to focus on their business more simply. For end application scenarios, the concept of cloud native technology is also applicable.

Gartner defined a new technology track in 2019: Multiexperience Development Platform (MXDP) [3] to describe those R&D platforms that help companies efficiently implement Multiexperience through agile and modern technical capabilities. The capability matrix is ​​shown in the figure below. :

[3] Technology Insight for Multiexperience Development Platforms, Gartner, 2020

3.png

From the key elements of MXDP, we can see that, in addition to traditional R&D tool components, cloud native technology has become the core technical element of MXDP. Typical technologies include the following aspects, which we will introduce one by one.

1. DevOps, high-speed iteration of driver-side applications

There are typical differences between end-end applications and traditional back-ends. Taking mobile apps as an example, the applications themselves are built on heterogeneous models and OS platforms, and the operating environment is more constrained, relying on a large number of back-end service support, and the application itself continues The integration and delivery process also includes many unique elements of mobile scenarios, such as compilation environment, compatibility testing, internal test distribution, channel packaging, gray release, etc. These key differences determine that end applications must build their own unique DevOps system.

4.png

1) R&D domain

The DevOps platform for end applications needs to solve the organizational collaboration and automation of the application continuous integration process. For the development phase of end applications, a mature DevOps platform must have:

  • Multi-terminal compiling and building environment and automatic software update;
  • Reliable and flexible construction of service clusters;
  • Code and certificate hosting;
  • Static code scanning;
  • Software-defined workflow.

2) Test domain

Compared with traditional back-end application testing, the complexity of end application testing is greatly increased. In addition to basic function and performance testing, compatibility tests for heterogeneous models, terminals, and operating systems are also required. A mature end application test platform should have:

  • Compatibility testing service, covering mainstream models, equipment, and operating systems;
  • Performance testing services, supporting the monitoring and evaluation of key performance indicators such as various application crashes, ANR, stuttering, IO, CPU, and memory;
  • Automated test engine, supporting test case writing, playback and management;
  • Remote real machine capability, supporting cloud access of devices;
  • Test capabilities driven by intelligent technologies such as Smart Monkey and AITest.

3) Release domain

The target release target of end applications is a large number of terminal devices, and production release is restricted by the application market review. Therefore, reliable, accurate, and targeted application distribution capabilities are key technical requirements for application production and distribution, including:

  • Distribution capabilities within the enterprise;
  • Support software-defined grayscale capability, support grayscale distribution for different regions, networks, models, channels and other custom labels;
  • Production and release capabilities for different channels;
  • Version management and archiving.

4) Operation and maintenance domain

The operation and maintenance system of end-oriented 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 capabilities of end-oriented Hotfix, which is different from the back-end The special features of the application form. A mature terminal operation and maintenance system should include:

  • End-oriented application-oriented APM capabilities, support monitoring and alarm systems including startup speed, page loading, crashes, network performance, API performance, etc., and can link with back-end APM for transaction-based access tracking;
  • The remote log capability for end-oriented applications supports real-time terminal log recording and management to accelerate remote diagnosis of problems;
  • The hot repair capability for end applications supports hot update of codes and resources for different device platforms.

5) Operational domain

As an enterprise business portal, end-user applications are a key interface for end-users. They must always have insights into user behaviors, listen to users' voices, and drive agile business iteration. App-oriented data analysis and public opinion feedback capabilities are one of the key closed loops of DevOps.

Data analysis should have:

  • Full-end user behavior data collection capabilities, including small programs, APP, H5, PC, WEB, IoT, etc.;
  • Easy-to-use terminal embedding tools: support code embedding, automatic embedding, visual embedding, etc.;
  • Open data capabilities: support for synchronizing data by means of API, and support seamless connection with cloud vendors’ computing platforms.

Public opinion feedback should have:

  • Full-end user feedback channel capability;
  • Intelligent answering robot;
  • Public opinion data collection and analysis.

The key values ​​that DevOps brings to Multiexperience's production practices include:

  • Shorter business iteration cycle

The workflow and automation capabilities of the entire life cycle of the covered application will bring about continuous application delivery capabilities and a significant improvement in cross-team collaboration efficiency, thereby shortening the delivery cycle of the business. As an enterprise's entrance to end users, a shorter business iteration cycle means a faster response to the market, which is the cornerstone of business success in the digital age.

  • More reasonable allocation of human resources

Cloud-native tool chains and automated pipelines will help companies avoid consuming a large number of engineering and technical personnel to maintain localized tools and systems, while drastically reducing the manual links in the application continuous delivery process. Companies can focus their precious human resources on the production and R&D of their core business.

  • More robust application delivery quality

Automated terminal test system and comprehensive monitoring and diagnosis system will provide complete and sufficient quality assurance for end applications. These cloud-native services will save enterprises a large number of professional investment in subdivided fields, and through professional and continuous engineering technology evolution And the introduction of intelligent technology continuously optimizes the application quality assurance system.

  • Better instant user experience

The omni-directional behavioral data embedding and analysis around the end application will help companies better grasp the matching degree of product functions and the market, while the instant public opinion feedback capability will help companies better manage users and maintain relationships. All these direct and indirect voices from customers will directly drive the rapid iteration of the business and realize the production practice of agile development through cloud-native DevOps.

2. Serverless & Backend as a Service (BaaS), the running engine of the end application

Serverless is one of the hottest topics in the current developer community. Its core concept is to de-server: high-dimensional abstraction of the basic capabilities of the underlying cloud computing, open access and acquisition of back-end capabilities through API/SDK, without development Staffing and deploying server resources can get back-end service support with elastic scaling and pay-as-you-go.

The technical concept of Serverless has actually appeared a few years ago: Backend as a Service (BaaS) is a typical service form that follows the Serverless design concept. As early as 2012, BaaS was spread in the developer community and became Its convenient use model is deeply loved by developers. Typical BaaS services include message push, user authentication, cloud storage, cloud database, etc.

5.png

As the BaaS service greatly reduces the enterprise's back-end R&D expenses, its end-use application scenarios have been widely used. However, the core solution of BaaS is mainly the abstraction of the back-end capabilities of vertical scenarios, which cannot support the back-end logic of the business itself. The emergence of Function as a Service (Faas) makes up for this vacancy and enables the serverless architecture paradigm to provide a more complete closed loop for end application scenarios.

FaaS is a new way of software construction and deployment. Based on an event-driven model, FaaS provides developers with a hosting environment for business code with function granularity. This architecture model has a common application space in scenarios such as data processing, Backend for Frontend, mobile applications, IoT applications, and Web applications.

In summary, we can see that the application-oriented serverless architecture includes two service forms, BaaS and FaaS. In order to fully support the scenario requirements of end applications, a mature serverless engine should include:

  • News push

It supports the establishment of a reliable and power-saving long connection between the server and the client, and provides downstream message push capabilities for end applications such as Android, iOS, Web, and IoT.

  • Login authentication

Provide developers with multi-dimensional, safe and reliable end-to-end identity verification capabilities, thereby reducing developers' development costs and business risks in the login and account system. Identity verification modes include email verification, SMS verification, number verification, and login verification capabilities provided by mainstream Internet platforms (Taobao, Alipay, QQ, WeChat, Google, etc.).

  • data synchronization

Provide a stable, reliable, encrypted and secure data synchronization system that supports offline use of data on the client side and online synchronization updates to provide a consistent user experience between mobile applications, web applications, and PC applications.

  • Remote configuration

Remote configuration is a persistent configuration management service for end applications. It manages configuration content through the cloud and pushes updates to the client in real time to flexibly control application functions, configuration and UI implementation.

  • Cloud storage

Provide API/SDK-based convenient cloud storage capabilities, including text, pictures, videos, and other user-generated content.

  • Cloud database

The cloud-based NoSQL database provides convenient access interfaces for various front ends, supports real-time data operations, cross-end data synchronization, and elastic scaling.

  • Cloud function

Allows developers to directly host programs on the cloud function platform, complete event-driven business logic development with functions as the smallest unit, and remotely access and call through API.

  • AI capabilities

Application intelligence is the key technology trend of end applications. Basic AI capabilities will become the basic components of end application serverless architecture, including but not limited to OCR, face recognition, voice recognition, etc.

The core values ​​brought by Serverless architecture and services are reflected in three aspects:

  • Resource cost

The traditional application architecture model requires the purchase of a batch of server equipment in advance, and the financial budget according to the estimated business peak value during the service cycle. There are many uncertain factors, and the vacancy of server resources will also bring huge cost waste. The serverless architecture model implements a flexible model of on-demand expansion and pay-as-you-go, making enterprise costs more controllable.

  • Operation and maintenance cost

Developers no longer need to care about the capacity of underlying computing resources and daily operation and maintenance issues. All infrastructure maintenance will be solved by serverless service providers and transparent to developers. Reduced operation and maintenance costs, flexible use of resources and scalability and capabilities will help developers to better focus on the growth of the business itself.

  • R & D efficiency

The complete serverless engine provides support for most scenarios of end-oriented applications, making application development very convenient and easy to maintain. Under the traditional R&D model, code development, environment construction, capacity pressure testing, cluster expansion, application deployment and other links will bring huge time costs.

3. Low code, new changes in application development

The emergence of cloud-native technology has made a large-scale transformation of traditional business architecture to cloud architecture, and the efficiency of software development has also been significantly improved at this stage. However, in the digital age, various application scenarios have emerged, and business has also put forward higher requirements for the immediate response of IT to the market. In the wave of technological evolution across the ages, Low-code Development Platform (low-code platform) quickly surfaced, and with diversified end application scenarios began to accelerate its popularity. Low-code technology not only improves the efficiency of software development, but also changes.

6.png

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, combined with cloud native infrastructure to help developers quickly complete application construction. At the same time, this R&D model greatly reduces the skill requirements of software developers for software R&D. More people with certain basic IT concepts can participate in software development, while the cloud native architecture naturally helps developers solve the software problem. Its own deployment, operation and maintenance work.

A mature low-code platform will be widely used in enterprise production, marketing, BPM, tool application and other scenarios. Its core capabilities are mainly composed of two parts:

  • Visual application orchestration engine

    • Support multi-terminal application scenarios including Web, mobile App, and applet
    • Support includes UI visual orchestration, business flow orchestration, logic orchestration, data orchestration, etc.
    • Support components, modules, templates and other models, with open material systems and component markets
    • Model-driven, with metadata analysis engine (including multi-terminal translation engine/rendering engine, etc.)
  • Cloud Native Application Platform

    • Industrialized domain model and metadata management
    • Code generation engine
    • Cloud native application hosting
    • CI / CD
    • Rich integration and expansion capabilities

We can see the value brought by low code from the cooperation between Schneider Electric and Outsystems, a top low-code platform company: Schneider Electric quickly launched 60 apps in just 20 months after applying the low-code platform. Most apps were developed and launched within 10 weeks, and the labor cost saved in the first year reached 650 man-days. Low-code technology has greatly shortened the path of digital transformation of traditional enterprises.

By 2024, Gartner predicts that 65% of all application development activities will be completed in a low-code manner, which seems to be faster than expected, but it does happen continuously. In the global market, we can see the rapid growth of OutSystems, Mendix, PowerApps, and App Maker. Combining AI and machine learning in the future, we can foresee the birth of a real "App Factory".

Seek change and adapt, never stop making technological innovation

As an industry giant in the domestic mobile Internet and cloud computing fields, Alibaba has rich practical experience in the big front-end and cloud native fields. We started to gradually export the mature application middleware within the group into the cloud in 2016, and launched the mobile R&D platform EMAS in 2018. Today, EMAS has gradually grown to span multiple terminals (mobile App, H5 application, applet, Web Application, etc.) scenario cloud native application development platform, based on a wide range of cloud native technologies (Backend as a Service, Serverless, DevOps, low code, etc.), to provide enterprises and developers with one-stop application development management services, covering development, Test, operation and maintenance, operation and other application life cycle.

7.png

As of today, 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 have also seen the key challenges faced by cloud native technology in end application scenarios:

  • R&D mental changes

For all development teams, the definition of front-end and back-end teams is deeply ingrained, and collaborative interfaces have become natural. However, with the widespread application of serverless and other cloud native technologies, in more and more end application scenarios, the development team only needs front-end developers to complete the application development and online work in a closed loop; in the application architecture dimension, Serverless FaaS brings It is a brand new paradigm based on event-driven, stateless, functional logic fragments, which is quite different from the traditional application model. Change is the cost. What's more important is that it is not pure technology behind the change, but also organizational changes and changes in production relations.

  • Technology maturity

Whether it is Serverless FaaS or low-code development, it is a technology in the commercial introduction period. The product perfection is still lacking, and the scenarios that can be covered have certain limitations. For mainstream complex application scenarios, Serverless FaaS needs to be combined with traditional micro Services and other architectures form a hybrid serverless application. There is still a long way to go in key technical control points such as system observability, ease of development and debugging, function startup performance, and function execution time.

  • Architecture flexibility

Cloud native capabilities represent high-dimensional encapsulation and abstraction of cloud infrastructure. Abstraction means that the granularity of management and control becomes coarser, and the flexibility of the system and the ability to customize and expand will naturally be weakened.

Although the challenge is huge, the trend is already here. EMAS BaaS has become an indispensable infrastructure for a large number of domestic mobile apps, covering more than 2 billion active device terminals worldwide, with daily API calls exceeding tens of billions; based on EMAS Serverless , we have seen a large number of developers quickly The development of anti-epidemic and anti-epidemic tool applications has been realized. It only takes one week from the birth of the idea to the product launch. Within the enterprise, more and more office applications and form applications are quickly built on low-code platforms, and enterprise productivity has been greatly improved. With reference to the Hype Cycle model, a number of cloud-native emerging technologies have emerged in a large number of production practice projects, and the technological maturity has entered a steady ramp-up period.

There is no doubt that we are standing on the eve of another technological era. Cloud integration, one cloud and multiple terminals are becoming the de facto standard for foreground application development. Embracing cloud native will become the shortest path for developers to enjoy the benefits of cloud computing. We welcome more people of insight to join us (contact email: [email protected]) to change productivity and change the world.

" Alibaba Cloud Native focuses on technical fields such as microservices, serverless, containers, and Service Mesh, focuses on the trend of cloud native popular technologies, and cloud native large-scale landing practices, and is the official account for developers who know best about cloud native."

Original link: https://developer.aliyun.com/article/776590?

Copyright statement: The content of this article is contributed spontaneously by Alibaba Cloud real-name registered users. The copyright belongs to the original author. The Alibaba Cloud developer community does not own its copyright and does not assume corresponding legal responsibilities. Please refer to the "Alibaba Cloud Developer Community User Service Agreement" and "Alibaba Cloud Developer Community Intellectual Property Protection Guidelines" for specific rules. If you find that there is suspected plagiarism in this community, fill in the infringement complaint form to report it. Once verified, the community will immediately delete the suspected infringing content.

Guess you like

Origin blog.csdn.net/alitech2017/article/details/109339475