Primary source | alibaba cloud

In 2012, Ken, vice president of Iron.io, a cloud infrastructure service provider, talked about the future of the software development industry and proposed the concept of Serverless for the first time, describing a new system architecture for applications running in the cloud. Since then, cloud service vendors represented by AWS have gradually implemented the concept of Serverless and launched FaaS (function as a service) products based on Serverless. After several years of development, the Serverless architecture has been recognized by the industry as the trend leading to the next decade of cloud native development.

According to Gartner report, in 2020, 20% of the world’s enterprises have adopted Serverless technology deployment. Serverless changes the form of computing resources from the bottom, and introduces innovative technical design ideas for enterprise software architecture design and application service deployment.

Nevertheless, some enterprises and developers in China still take a wait-and-see attitude when facing Serverless. On the one hand, related technologies started late in China, and some developers have low acceptance of new technologies. On the other hand, the domestic Serverless ecological construction is relatively backward, and the relevant tool chain on the market is not perfect, which leads to difficult development and deployment and high cost.

Recently, Ali Cloud Serverless technology team announced the open source Serverless Devs platform, providing a set of Serverless tool chain system for developers. It is reported that through this platform, developers can experience multi-cloud Serverless products with one key, and quickly deploy Serverless projects.

In order to further understand the characteristics of Serverless Devs project, as well as the development trend of cloud native technology ecosystem such as Serverless and microservices in China, Open Source China invited Yang Haoran, head of R&D of Ali Cloud Serverless. Jiang Yu, product manager of Aliyun Serverless and initiator of Serverless Devs project, shared with us the details of Serverless project and domestic Serverless ecology.

The following is the transcript of the interview:

1. Please briefly introduce the composition of technical team members of Aliyun Serverless Devs project.

< Jiang Yu > : The team is led by the head of aliyun intelligent cloud native middleware front-end, together with a number of technical experts from aliyun intelligent cloud native function computing team, as well as several community enthusiasts. Through open source ideas, the project construction took 120 days.

The core r&d personnel of Serverless Devs technical team mainly include:

  • Cold oblique: Ali Cloud intelligent cloud native middleware front-end leader, joined Ali Middleware in 2016 to engage in cloud product enterprise console r&d, currently lead the team in charge of front-end r&d of middleware over 20 cloud products. The main technology stack is the big front-end general technology, including NodeJS/typescript/React/electron/Reactnative, which improves the front-end research and development efficiency, and has years of practical experience in the construction of front-end digital experience management system. Currently, I focus on the construction of Serverless developer tool chain, and am one of the principals of cloud native Serverless Dev Tools (S) R&D. The core contributed the S initiator parsing kernel, S/core core package, and led the RESEARCH and development of S/ GUI desktop Tools. Pay attention to the latest technology trends in the front end, pay attention to the impact of cloud native technology on the front end group, and commit to promoting the concept of cloud native to the front end group.

  • Xiliu: Ali Cloud intelligent cloud native function computing technology expert, responsible for ali Cloud function computing product function development: Runtime development, event source integration and implementation of enterprise-level Sereverless solutions. Currently, I focus on the construction of Serverless developer tool chain. I am one of the principals of cloud native Serverless Dev Tools research and development, leading the development of S/ FC components. Pay attention to Serverless latest technology trends and implementation of enterprise-level solutions, and commit to promoting Serverless popularity among developers.

  • The sea: Ali Cloud intelligent cloud native PaaS product senior R&D engineer, participated in the development of enterprise-level distributed application service EDAS, application configuration management ACM, Web application hosting service and many other enterprise-level micro-service products. At the same time, he is one of the founders of Alibaba Cloud Toolkit and Serverless Dev Tools. He continues to pay attention to the development of Cloud native fields such as microservices, PaaS and Serverless, and is committed to building developer Tools in the Cloud native field.

2. What are the actual scenarios of using aliYun Serverless platform services?

< No Hatred > : Serverless as a base for basic RESEARCH and development is being accepted by more and more enterprises and applied to business practices. In addition to the earliest Internet enterprises “taste fresh”, traditional enterprises are also exploring the large-scale use of Serverless.

Take Century Lianhua as an example, in 2019 double 11, function calculation FC helped century Lianhua successfully through the great promotion. On November 11, 2020, Century Lianhua fully migrated to functional computing 2.0, which overcame the business peak of 230% over last year, and improved r&d efficiency by more than 30%, and reduced elastic resource cost by more than 40%. At present, The whole economy of Ali is practicing Serverless, including Taobao, Tmall, Alipay, Dingding, Feizhu, Xianyu, Yuqi, etc., and the application scenarios of Serverless are extended to front-end full stack, small program, micro service, new retail, game and mutual entertainment and other fields. Specific scenarios are as follows:

  • Applets/Web/Mobile/API back-end services

In small programs, Web/Moible applications, API services and other scenarios, the business logic is complex and changeable, and the iteration on-line speed is required to be high. Moreover, the resource utilization rate of such online applications is usually less than 30%, especially for long-tail applications such as small programs, the resource utilization rate is less than 10%. Serverless computing free operation and maintenance, pay-on-demand features are very suitable for building small program/Web/Mobile/API back-end system, by reserving computing resources + real-time automatic scaling, developers can quickly build delayed and stable online applications that can bear high frequency access. Inside Ali, Serverless is the most common scenario For building back-end services, including Serverless For Frontends in the field of front-end full-stack, machine learning algorithm services, small program platform implementation, and so on.

  • Large-scale batch task processing

Typical offline task batch processing systems, such as large-scale audio and video file transcoding services, contain a series of functions such as computing resource management, task priority scheduling, task scheduling, reliable task execution, and task data visualization. If the construction starts from the machine or container level, users usually use message queues to persist task information and allocate computing resources, use container scheduling systems such as K8s to achieve resource scaling and fault tolerance, and build or integrate monitoring and alarm systems by themselves. If a task involves multiple steps, workflow services need to be integrated to achieve reliable step execution. However, with Serverless computing platform, users only need to focus on task processing logic, and the extreme flexibility of Serverless computing can well meet the demands of sudden tasks on computing power.

  • Online applications and offline data processing based on event-driven architecture

Typical Serverless computing services are widely integrated with various types of cloud services in an event-driven way. Users do not need to manage servers and other infrastructure and write glue codes to integrate multiple services, so it is easy to build applications with loosely coupled and distributed event-driven architecture.

Taking Ali Cloud function computing as an example, users can quickly realize API back-end services through the integration of API gateway and function computing. Through the event integration of object storage and function calculation, functions can respond to events such as object creation and deletion in real time, and realize large-scale data processing centered on object storage. Through the event integration of message middleware and function calculation, users can quickly process massive messages. Through the integration with Aliyun EventBridge, all events can be quickly and conveniently processed by functions, whether it is the cloud service of one party, the SaaS service of three parties, or the system built by users.

  • Operation and maintenance automation

With timing triggers, users can quickly implement scheduled tasks with functions without having to manage the underlying server that performs the task. By using cloud monitoring triggers, users can receive O&M events of IaaS services, such as ECS restart or outage and OSS object storage flow control, and automatically trigger functions for processing. Please refer to the specific cases: case-study.functioncompute.com/case-study….

3. What was the opportunity and vision for the Serverless Dev project? Is there any connection between Serverless Dev and Midway, another Serverless project that ali Cloud opened source?

< No anger > : First of all we saw when serving users inside and outside the group that the tool chain was the biggest obstacle to Serverless being accepted by users. This is mainly reflected in the following aspects:

  • When developing and operating Serverless applications, the experience is disconnected from existing tools or processes. For users in complex business scenarios, their different workloads usually run on multiple platforms such as virtual machines, containers or Serverless. Users prefer to use the same set of tools and processes to build, deploy and monitor applications based on virtual machines, containers or Serverless.

  • Users expect the tool chain to cover development, testing, construction, deployment, distribution, and monitoring, providing a closed-loop R&D operation and maintenance experience without having to jump out of the console of each product or use multiple tools.

  • Users want the same tool chain to manage applications in different public cloud Serverless platforms, such as Ali Cloud, Tencent Cloud, or on-premise environment. As a result of the above problems, Serverless did not significantly improve the r&d efficiency in many scenarios.

Secondly, from the perspective of the trend of cloud native development, the range and complexity of problems developers have to solve when building cloud native applications are increasing. For example, when building an application, developers still have to spend a lot of effort on details that have nothing to do with business logic, including resource creation and deletion, permission management, and so on. For enterprise customers, in addition to resource management and control, security compliance is also required, such as how to ensure that sensitive data is not wrongly granted external access rights, and VMS are not prohibited from accessing the public network. We believe there is tremendous room for innovation at the tool level.

Therefore, from the perspective of actual user needs and future trends, we hope to create a tool chain for developers, which can help users completely solve problems in application development and operation and maintenance, and truly connect DEV and OPS to improve r&d efficiency. We wanted this tool to be sensitive to the complexity of the problem, and it could be used quickly if the problem was simple. When things get complicated, the same tools and processes still work. < Jiang Yu > : Although Serverless has been developed for a long time and is not a new concept, Serverless tool chain is still lacking. We not only realized this problem, but also had in-depth communication with many users, and were very concerned about the problems users encountered when using Serverless. Finally, we decided to build a “Serverless toolchain system from the perspective of developers”. Its purpose is to allow developers to use Serverless like mobile phones, which can give you a simpler, convenient and fast hands-on experience and practical operation, and can play a role in the whole life cycle of Serverless projects. As for the connection to Midway, I think it’s very strong, because Serverless Devs is more of a tool tier product, and Midway is more of a framework tier product.

4. We see that Serverless Devs is positioned as “the first cloud-native full life cycle management platform supporting mainstream Serverless services/frameworks”. In what aspects is its initiative reflected? What are the advantages compared with the existing Serverless service platform in the industry?

< no anger > : Compared to popular tools like Serverless Framework, Serverless Devs has several obvious differences:

  • Serverless Devs is dedicated to solving the whole process of build, deploy, release, Monitoring/Trouble shooting and other application development and operation and maintenance problems, providing users with end-to-end development and operation closed-loop experience and improving r&d efficiency. Other tools focus on solving a single problem.

  • Serverless applications depend not only on computing products, but also on various cloud products such as storage and middleware. Tools are required to manage rich cloud products. Serverless Devs will support cloud products from all major cloud vendors such as Ali Cloud, Tencent Cloud, AWS, Azure and Google in the future, as well as K8s Ecosystem applications. Compared to tools such as Serverless Framework, it has advantages in depth and breadth of resource management.

  • Serverless Devs is open source and enables developers to build complex cloud-native applications in simple, higher level, composable manner through component mechanisms based on high-level language abstraction capabilities.

5. What parts of Serverless Devs are open source? What is the purpose of choosing open source?

< Jiang Yu > : Serverless Devs open source two main parts: command line tools and application center. Serverless is a very developer-driven field. We open source the whole project and open the whole idea. The main purpose is to provide developers with the tools they need from the perspective of developers and let them define and build the Serverless tool chain by themselves. You can interact with more developers, get in touch with more Serverless enthusiasts, and Serverless with everyone.

6. If developers deploy their applications on Serverless Devs, can they then move the applications to other platforms? For example, is it convenient to move to another cloud service platform or local server?

< No anger > : Application migration under cloudy conditions involves many factors, not only computing platform migration, but also data migration, configuration flow migration, etc. The design philosophy of Serverless Devs is to help developers build, deploy, release containers or Serverless applications in a unified way. Regardless of what language they are using (nodejs/python/golang/Java), what platform (K8s/ali cloud Serverless/Google cloud run, etc.), the experience of research and development operations is consistent, Therefore, Serverless Devs simplifies the migration of applications to other platforms.

7. There is a saying that “Serverless will hinder the innovation of open source services”, because many popular open source software cannot be deployed on the Faas platform on a large scale. After all, the main open source software is not aimed at Serverless execution environment, especially data system. Is the future trend to create more Serverless native open source software, or migrate some of the existing major open source software to the Serverless architecture?

< no anger > : “Serverless will hinder the innovation of open source services. “The idea comes from UC Berkeley’s paper Serverless Computing: One Step Forward, Two Steps Back. The obstacles of Serverless to open source service innovation mentioned in this paper refer to the limitations of Serverless at present. Six months later they published another paper: Cloud Programming Simplified: A Berkeley View on Serverless Computing predicts that the challenges facing Serverless are solvable and will become the default paradigm of cloud Computing. At present, Serverless has become a research hot spot in the academic world. Since 2017, the number of related papers has increased by two times every year.

Current academic/industrial research trends in Serverless:

  • Make popular application frameworks Serverless, such as the Serverless Machine learning framework.

  • Expand the Serverless programming model, such as Stateful FaaS, to enable Serverless computing to support more application scenarios.

  • Refactoring at each layer of the cloud to accommodate Serverless applications with high dynamic resource usage. At the data center level, computing and storage are separated by ultra-fast network architecture, and cpus, Gpus, FPGas, disks, and even memory are pooled to achieve better flexibility and resource utilization. At the Serverless computing platform level, storage services are highly optimized for the Serverless mode. With high IOPS, low latency, and low cost, distributed systems can be built using the Serverless mode.

  • Performance optimization, such as GPU, FPGA and other heterogeneous hardware support, software and hardware coordination optimization, etc. You can see these trends pushing Serverless to become the most innovative area.

8. What is the relationship between the Serverless architecture and some popular microservices architectures? Will Serverless replace the microservices architecture?

< No anger > : Serverless and microservice architecture are not opposites, but different dimensional concepts. Microservices is an architectural pattern, and Serverless computing platform represented by FaaS is a way to realize microservices. Microservices can be implemented using FaaS, SpringCloud PaaS platform, K8s + container, or VM.

To determine what to use to realize microservices, reliability, cost, performance, engineering efficiency, security, system migration difficulty and other dimensions should be considered. Different scenarios have different choices. Currently, the biggest challenge of using Serverless architecture in microservice scenarios lies in compatibility with existing microservice frameworks and smooth migration of existing applications. In order to solve such problems, Ali Cloud Serverless application engine emerged as The Times required, which is compatible with popular micro-service frameworks such as SpringCloud and Dubbo. Smooth migration of traditional applications and integration of Ali Cloud services such as ARMS provide out-of-the-box observable capabilities, and elastic capabilities such as timing scaling and scaling according to indicators. Let microservice scenarios also enjoy the benefits of Serverless.

9. Some netizens worry that the emergence of cloud services such as Serverless will replace many back-end engineers’ jobs. In the future, small and medium-sized companies will only need to hire front-end business developers. Can you give some advice to some young backend developers?

No anger: This view is one-sided. For any technology, we need to think about its origin, trend, advantages and disadvantages, especially to practice, to get an objective judgment. Serverless is not a new technology. Ali Cloud’s first cloud service object storage OSS is The storage service of Serverless. The use of OSS does not compress the technical development space of back-end developers. The following is a list of factors to consider when building an elastic and highly available back-end system. Only the boxes dotted with blue lines are responsible for the platform, but a lot of other things still need to be designed and implemented by back-end developers:

Serverless computing solves only the most basic, undifferentiated, dirty work like infrastructure management. Just as few developers now build applications based on assembly language, Serverless also aims to provide users with high-level language programming experience in the era of Cloud Programming.

Serverless Devs Open Source project:

  • Github address: github.com/serverless-…
  • Gitee address: gitee.com/organizatio…
  • Serverless Devs official website: www.serverless-devs.com

Guest profile