Community Blog Discussing the Services and Functions within Alibaba Cloud Function Compute

Discussing the Services and Functions within Alibaba Cloud Function Compute

This article defines and addresses the relationship between the services and functions of Alibaba Cloud Function Compute (FC).

By Liu Yu

Once, someone asked me, “What is the relationship between the services and functions of Alibaba Cloud Function Compute (FC)? I believe some colleagues still don't understand their relationship.

Recently, Alibaba Cloud officially released another *concept: application. Now, Alibaba Cloud Function Compute (FC) has three-layer concepts: function, service, and application. It is a bit confusing.

People who pay attention to Alibaba Cloud Serverless may find two things:

  1. Alibaba Cloud Function Compute (FC) releases the application but also promotes it.
  2. Alibaba Cloud Function Compute (FC) launches a phase of experience activities based on the application: one-click deployment of online storage.

Why does Alibaba Cloud Function Compute release so many features, but only a few will be accompanied by experience activities to do operations? What is the application? What does it have to do with the service and the function?

Discussion on the Application from the Business Layer

First of all, we need to make it clear that many concepts are now abstract and not absolute, especially after the resource and business layers are associated. For example, what does a function correspond to? Is it a function, a method, a function, a service, or a framework? There is no clear definition, so our exploration this time must be based on a kind of the doctrine of the mean, a subtle feeling of being unspeakable.

In addition, all nouns are abstract, corresponding to different development tasks, and different businesses may vary from each other. Therefore, the exploration in this article is only for some cases.

Before discussing function, service, and application, I would like to explain my idea:


Through this figure, it is not difficult to find the following facts:

  • Application: It refers to a slightly higher-layer concept, which is a combination of one or more FaaS resources and one or more BaaS resources. For example, the backend of my photo album applet uses a Function Compute service that involves three functions and a domain name, a bucket, a NAS, a MySQL database, a Redis database, and corresponding VPC resources and log resources. These can be considered as an application to a certain extent. In my opinion, these FaaS and BaaS resources are combined to realize a complete application function or business capability.
  • Service: It refers to the Function Compute service to a certain extent. It is a grouping of functions, or some functions we think are related and can be grouped together according to certain rules, but there is a special point in the grouping, it has a certain configuration. In other words, a Function Compute service has the same business attributes or certain business goals to complete and has an associated set of functions in functions using specified log storage, VPC, NAS, and other resources. Therefore, the Function Compute service is a service-level configuration and a series of function resources.
  • Function: It can be considered as a resource at the business layer. For example, there are three functions in the backend business of the photo album applet mentioned above:

    • Function 1: API implementing the REST-style provides several features for my applet, including the addition, deletion, modification, and query of photo albums and photos.
    • Function 2: Uploaded photos are stored in Object Storage Service (OSS). This function is triggered by Object Storage Service (OSS) to implement asynchronous image compression, image caption of images, and clustering of people in images.
    • Function 3: It provides regular cleaning, processing, proofreading, analysis, and other operations for corresponding resources.

In summary, Function is regarded as a resource, which is a certain business granularity when corresponding to our business. Service is a collection of functions, abstracting a certain configuration. Application serves as a combination of business and resources.

Does "Application" Have "Value" or Not?

Function Compute (FC) already has the concept of service and function. At first glance, function and service are both resources. Then, application is added to the two existing concepts, but application is more like a kind of logic rather than a resource, which is the logic associated with resources. What is the value of the application? Why should there be applications, and why should we use them?

I think application is a mental upgrade to some extent, which is the process of upgrading from resource logic to business logic. In addition, the emergence of application means Serverless architecture may really be delivering application. How can we understand this sentence? From the perspective of the current Function Compute application, it is not difficult to find that:

  1. The current application corresponds to a code repository that can often be considered as an application.
  2. You only need to put the business code on GitHub (push/release) to trigger application construction and release, which involves the release of different resources.
  3. The follow-up monitoring, alarming, multi-environment, and other features (and even the overall deletion of the application) can be done directly at this layer.

Therefore, this is an idea of using Serverless architecture from the perspective of application. Of course, it is undeniable that the current application still has many features that require improvement, but we can also see that it becomes more delicate, more refined, and more interesting.

As a result, the application is a full lifecycle management capability that is closer to the business layer to a certain extent. The thought upgrade allows developers and business teams to pay more attention to their business logic, applications, and features. Compared with the application deployment and management at the traditional resource layer, application is more professional and clearer. You can see all resources on one page and manage these resources appropriately:


In addition, it can view or roll back how many times the application has been deployed or how results and logs are each time at any time:


In the near future, monitoring, alarming and environmental division will be reflected on the application side, which will be good news for business development.

This Application Is "Open"

The application launched by Alibaba Cloud Function Compute is a very interesting capability. It has two methods for creation. One is to directly import an application that meets the Serverless Devs specification, and the other is to create an application quickly through existing templates:


Through the figure above, it is not difficult to find there are various web frameworks, web applications, and artificial intelligence cases for reference in the application. Therefore, on the one hand, the application is trying to solve the pain points of how to make Serverless fast onboard. For example, the threshold for getting started or experiencing is relatively high. On the other hand, the application enables developers to use Serverless architecture simply, quickly, and conveniently in more cases. Many applications are ready to use out of the box.

Let's take an application of lossless compression of PNG pictures that my friend asked me to write the other day as an example:


As a community contributor, after developing the application, I only need to fill in an official application collection form:


After it is audited, it can be automatically synchronized to the application center for more people to test and use. When others use it, it only needs one click:

1.  Creating


2.  Deploying


3.  Experiencing


The whole process was smooth. Currently, the templates for the application contain applications contributed by dozens of communities, including AI target detection and OCR recognition:


Therefore, when we say open here, we also mean the application of Alibaba Cloud Function Compute (FC) echoes the open-source project Serverless Devs in the community. In other words, Alibaba Cloud Function Compute (FC) regards itself as a subset of open-source in an effort to embrace open-source. It means all cases and templates of the application are manifestations of the Serverless Devs application center. It contributes to open-source construction and open ecology, which is the attitude of using Serverless architecture with developers.

I hope more developers can use Serverless with us. There are more and more community projects now. I believe this is only the beginning.

0 0 0
Share on

You may also like


Related Products