By Buchen, Alibaba Cloud Serverless Product Development Leader. He is committed to building the next generation of elastic and a highly available serverless computing platform.
Earlier, I co-hosted a livestream with InfoQ gurus to talk to developers about Serverless from my perspective. Everyone is enthusiastic about Serverless, but there are still concerns; hence why I'm writing this article. As a witness to this technological wave, I would like to think about the reasons for the birth of Serverless, the evolution of Alibaba Cloud Serverless technologies and products, and my judgment on the future trend of Serverless.
Serverless is still new to many people, but the form of Serverless has already existed for a while.
In 2010, I joined Alibaba Cloud and participated in the development of the Apsara operating system. The Apsara operating system initially performed big data processing by managing thousands of machines. The programming interface of users is a MapReduce task that processes large amounts of data using SQL statements, which was the early Serverless form.
The first cloud service of Alibaba Cloud (Object Storage Service (OSS)) and the first cloud service of Amazon Web Services (S3) are Serverless storage services. Users do not need to care about how data is fragmented and stored on different servers to implement load balancing nor how to ensure high reliability and high availability of data when the server is down or the switch fails. They only need to use a simple API to realize the reliable storage of massive data. They all block the complexity of the Server and allow users to have a simple Serverless experience. These are all Serverless forms.
The Serverless concept was first proposed in 2012. When Amazon Web Services officially commercialized Lambda, Serverless gradually became popular. Over the past ten years, this evolution process has not been accidental or achieved overnight. On the contrary, it was inevitable because the cloud product system has been evolving to Serverless.
Whether it is Alibaba Cloud, Azure, or Amazon Web Services, the vast majority of new products are fully managed Serverless. Today, public cloud users are becoming more accustomed to using fully hosted services. In addition to saving effort, the most important thing for many users is to solve business problems more efficiently. If fully hosted services can bring better performance, better stability, and less O&M costs, why not?
According to these logics, more cloud products will evolve into a fully hosted and Serverless form. When the Serverless cloud product system reaches a critical value, and the entire application can be fully implemented by combining Serverless computing services (such as Function Compute) with other Serverless cloud services, Serverless will become a technology trend and become more popular.
Serverless popularity reached a peak in 2017-2018. However, like many emerging technologies, we will experience a low point of disillusionment from concept discussion to enterprise implementation. From the perspective of the development of Serverless over the past ten years, both academia and industry believe this is a disruptive technology that has great potential to improve R&D efficiency and resource efficiency. However, as a new concept and new computing form, the main challenge of Serverless is to change the mind of developers. Developers need to change their ideas in terms of tool chain, programming model, and application architecture.
Today, these problems are being solved quickly and continuously.
Serverless is in a period of steady rise. We can see that the industry-leading cloud service providers are constantly introducing different forms of Serverless computing services, such as Google Cloud Run, Amazon Web Services App Runner, and Alibaba Cloud Serverless App Engine (SAE). In addition, the most classic Serverless computing services, such as Alibaba Cloud Function Compute, are becoming more common and have less and less intrusion into applications.
Developers have a more objective and pragmatic understanding of Serverless, whether on Alibaba or Alibaba Cloud, and have introduced Serverless technologies and related tool chains in more scenarios, driving the Serverless ecosystem to become more mature.
We experienced a process from Serverless being very concerned to implementation difficulties to Serverless being widely used. This process also encountered many challenges. The key to solving the difficulties of Serverless implementation is to give developers a sense of security. For developers, Serverless gives more technical things to cloud vendors. Therefore, giving them a sense of security and making them use it without burden is critical. It is also the most important point they pay attention to when making technology selections.
There are two main reasons for developers' concerns about security:
There are concerns about supplier lock-in. Alibaba Cloud builds Serverless products in a trinity of public cloud, Alibaba Group, and open-source, firmly embracing open-source and openness. The run time of Alibaba Cloud Function Compute uses a non-intrusive standard http-server protocol. Users can interact with the Serverless platform by using a Web server written by Golang or PHP.
In addition, Function Compute observability is based on open-source standards, such as OpenTelemetry and OpenTracing. The Serverless Devs tool chain launched by Alibaba Cloud is also open-source and provides the ability to deploy Serverless applications from multiple cloud vendors. EventBridge, which hosts Alibaba Cloud event ecosystems, also uses the CNCF CloudEvents open standard. All these options help developers use products in an open-source way. In the future, we will actively promote standards in the Serverless field.
The most important thing for the problem of controlling black boxes is to balance the product design, which can give developers control and reduce the complexity of developers. Alibaba Cloud Function Compute regards giving developers a sense of security as the most important thing. We are the industry's first and only instance-level metrics in observability, making it easier for users to tune Serverless applications. We have revealed fine-grained resource measurement data, making it easier for users to determine whether costs meet expectations.
In the future, we will reveal system events and states to developers in an appropriate way so they can easily anticipate the behavior of the system. We will also open up more capabilities in problem diagnosis and other aspects to conform to the existing development habits of developers so they can use Serverless more smoothly.
In terms of application scenarios, Serverless is no longer just an applet but also scenarios, such as e-commerce promotion, audio and video transcoding, AI algorithm services, game application package distribution, real-time file processing, IoT data processing, and microservices. Serverless is continuing to converge with the ecosystem of containers and microservices, lowering the threshold for developers to use Serverless technologies. In turn, it will promote the cloud-native transition of traditional applications.
In terms of enterprise empowerment, especially after the pandemic, we can see that users' awareness of Serverless has deepened. In many scenarios, switching to Serverless architecture can benefit users, and users have gradually recognized this technology.
Alibaba Cloud realized the first large-scale implementation of Serverless in the core business scenario in China during the Double 11 Global Shopping Festival in 2020, which carried the world's largest network traffic peak and created a milestone in Serverless implementation applications.
During Double 11 Global Shopping Festival 2021, Alibaba Cloud Serverless supported more business scenarios with a wider range. Alibaba Cloud Function Compute fully realizes standardized docking with the operation and maintenance system within the group, opening up the last kilometer of research and development and realizing the Serverless systematic research and development of FaaS + BaaS for the full business link for the first time, covering business scenarios, such as Taote, Tao Xi, Alimama, 1688, AutoNavi, and Fliggy. The number of supporting scenarios doubled year on year. The total number of peak traffic tripled year on year, achieving a breakthrough of millions of QPS, and human efficiency increased by 40%.
There are many algorithmic services supporting the NetEase Cloud Music product, such as audio transcoding of multiple bit rates, audio fingerprint generation and recognition applied in song recognition, chorus detection, and minority language phonetic lyrics. The resource requirements and execution time of these tasks vary greatly. They need to be implemented in various languages, such as C++ and Python, which requires flexibility in computing power.
Originally NetEase built such an algorithm service platform in its data center, implementing 60+ audio and video algorithms to connect with 100+ business scenarios. However, as the business grows, the burden of infrastructure management is increasing. There are many ways to simplify the connection of internal business scenarios and algorithms, but more algorithms involve inventory and incremental processing. Business scenarios have traffic of different scales, and different business scenarios may reuse the same algorithm, resulting in less time spent on business.
For example, if a new algorithm is launched, more than 60 million existing songs must be processed first, which requires the platform to use a large amount of computing power in a short time, perform tasks reliably, and provide comprehensive applications, examples, and other multi-dimensional monitoring information. These requirements are matching Function Compute. NetEase processes more than 20 million tasks a day at the peak of Function Compute. Algorithms are applied to business ten times faster, and the cost of algorithms for sparse calls is reduced significantly.
The most interesting point in the case of NetEase lies in their integration of services of server room and public cloud at the application layer. In the past, when people talked about Serverless, they thought it was difficult to apply in hybrid cloud scenarios. NetEase's case proves that the integration of Apsara Stack and the public cloud is a way to manage resources. Considering the integration solution at the application layer sometimes works better.
Another interesting case is how Pumpkin Film used SAE to realize the zero migration transformation of traditional micro-application. It only took the company one week to completely migrate to the SAE platform.
Pumpkin Film's original microservice platform faced several challenges:
The experience prompted a technical upgrade for Pumpkin Film. Users also compared K8s and SAE, choosing K8s in the end. Building a team of professionals is costly. The SAE product form is friendly. Pumpkin Film migrated to SAE in a short time, and now all applications are running on SAE.
The development of the cloud must be a higher level of abstraction, so users can develop more efficiently and quickly and use resources more efficiently. Therefore, the cloud product system must be Serverless since more cloud services are fully hosted and Serverless. If we regard the cloud as a computer, then the IaaS layer is hardware, the container orchestration system represented by K8s is the operating system, and Serverless computing is the run time of the application. Therefore, Serverless is the future of the cloud. This is not a future prediction; it is already happening.
Next, Serverless product forms will become diverse. In the early years, everyone equated Lambda products with Serverless computing. In recent years, we have seen Google Cloud Run, Amazon Web Services App Runner, and other Serverless services for Web application scenarios. Alibaba Cloud Function Compute is also evolving, supporting container mirroring and fewer operation restrictions. Moreover, we have introduced services in the form of SAE for the stock market, such as traditional microservices, which enable users to migrate stock applications conveniently and enjoy the dividends of Serverless.
Some trends deserve attention in the development of Serverless underlying technologies. This includes being more intelligent in resource scheduling because the Serverless computing mode provides the platform with more load information, allowing the platform to make resource scheduling and traffic routing more accurate in a data-driven manner. In addition, Serverless is expected to support more types of hardware, including heterogeneous hardware, such as ARM-type CPU, GPU, or FPGA, to provide users with more cost-effective computing types.
When discussing the future, I can't help but talk about the judgment of the point of the terminal station of Serverless. I think the cloud is like a computer. Over the past ten years, the cloud has mainly adopted the Cloud Hosting model, which is compatible with the original programming model and provides developers with a lot of computing power. However, this pattern is like programming in the assembly language, and developers need to deal with a lot of details. Microsoft predicts that 0.5 billion new applications will be generated in the next five years, more than the sum of the past 40 years, which is difficult for traditional development models to support.
We are seeing modern applications, low code, and other concepts starting to catch on. The cloud programming model will usher in great innovation over the next ten years. In the past, the PC and mobile Internet have developed from the beginning of hardware innovation to the formation of their own native programming model, forming a complete and prosperous industrial ecology. The cloud is also going through this process. Ultimately, the cloud will have a native efficient programming model and application development model. Serverless plays the role of application run time in the cloud ecosystem and is the infrastructure that hosts the operation of applications.
Serverless Engineering Practices | The Self-Built Apache OpenWhisk Platform
100 posts | 7 followers
FollowAlibaba Cloud Native Community - March 20, 2023
Alibaba Clouder - February 14, 2020
Alibaba Clouder - August 31, 2018
Alibaba Cloud Native Community - March 8, 2021
Alibaba Developer - September 22, 2020
Alibaba Cloud Serverless - March 8, 2023
100 posts | 7 followers
FollowAlibaba Cloud Function Compute is a fully-managed event-driven compute service. It allows you to focus on writing and uploading code without the need to manage infrastructure such as servers.
Learn MoreMSE provides a fully managed registration and configuration center, and gateway and microservices governance capabilities.
Learn MoreVisualization, O&M-free orchestration, and Coordination of Stateful Application Scenarios
Learn MoreServerless Application Engine (SAE) is the world's first application-oriented serverless PaaS, providing a cost-effective and highly efficient one-stop application hosting solution.
Learn MoreMore Posts by Alibaba Cloud Serverless