All Products
Search
Document Center

Function Compute (2.0):Overview

Last Updated:Nov 03, 2023

Serverless Application Center is a unified platform that is used to develop serverless applications and manage lifecycles of applications. Serverless Application Center allows you to focus on your business logic, develop and deploy serverless applications in an efficient manner, perform O&M on GUIs, and manage lifecycles of applications. This topic describes the concepts, benefits, and features of Serverless Application Center.

Usage notes

Billing

Serverless Application Center is free of charge. However, you may be charged by Alibaba Cloud services that are accessed when you use specific templates or environments. For more information about the billing of Alibaba Cloud services, visit the pricing pages of the corresponding services.

Permissions

When you deploy applications in Serverless Application Center, make sure that Function Compute is granted with the required permissions. For example, some permissions are required when you deploy specific service and function resources and access other Alibaba Cloud services, such as Virtual Private Cloud (VPC), Apsara File Storage NAS (NAS), and Simple Log Service. First of all, you must associate a RAM role with the application or environment and set Function Compute as the trusted service. Then, Service Application Center can call the AssumeRole operation to obtain a Security Token Service (STS) token and assume the RAM role to access Alibaba Cloud services.

To simplify authorization, Serverless Application Center provides the default role AliyunFCServerlessDevsRole. This role has the permissions on some Alibaba Cloud resources that are accessed by Service Application Center. You can log on to the Resource Access Management (RAM) console to view the permissions of the AliyunFCServerlessDevsRole role.

The permissions of the AliyunFCServerlessDevsRole role are coarse-grained. You can also assign other RAM roles to the applications or environments or attach related policies to the RAM roles to grant fine-grained permissions.

Note

To follow the principle of least privilege, we recommend that you do not directly reuse the specified role of a service for an application. Application roles and service roles are used in different scenarios:

  • Application roles are used in access control links to access Alibaba Cloud services during application deployment. For example, application roles can be used to create VPCs and vSwitches, create and upload Container Registry images, or update functions.

  • Service roles are used in data links to access Alibaba Cloud services during function invocations. For example, service roles can be used to mount elastic network interfaces (ENIs), pull Container Registry images, and write function execution logs to Simple Log Service.

Benefits

Serverless Application Center provides GitOps capabilities, which helps you deploy and manage applications in an efficient manner. If you use Serverless Application Center to deploy an application, you do not need to build, pack, or publish the application. Serverless Application Center helps you efficiently connect upstream and downstream services in the cloud and accumulate best practices with ease. The following items describe the benefits of Serverless Application Center:

  • Allows developers to use the console to try and get the hang of serverless applications quickly with ease.

  • Helps develop, create, update, operate, maintain, and iterate serverless applications in a scientific, secure, and stable manner.

  • Allows developers to manage and integrate traditional resources into applications. This way, the developers can focus on their business and applications instead of scattered resources.

Features

Serverless Application Center provides developers with about 100 popular applications in 10 categories, including web development frameworks, web applications, artificial intelligence, audio and video processing, and file processing. Serverless Application Center allows you to create and test run lightweight marketplace applications, KodBox applications, and applications that are used to record web pages, generate QR codes, and add watermarks to PDF files. You can also create frameworks such as Django, Flask, SpringBoot, and Express with a few clicks. Developers can develop and publish custom applications by using the GitOps capabilities of Serverless Application Center to meet specific requirements in complex business scenarios.

Serverless Application Center allows you to create applications by using templates or importing serverless applications. You can quickly import applications that include business code and resource description files, such as the s.yaml file, to Serverless Application Center, and perform operations such as environment isolation and pipeline creation.

Note
  • Serverless Application Center provides various application cases based on which developers can test run applications and develop custom applications. If you have custom requirements, we recommend that you develop custom applications. This also enriches the capability package of Serverless Application Center.

  • Various application templates are integrated into Serverless Application Center. The Function Compute technical support team is not responsible for maintaining these templates.

Terms

application

A serverless program that performs specific operations. An application can be associated with one code repository, multiple environments, and multiple pipelines.

Differences between applications and functions

  • A function hosts code deliverables, such as ZIP packages, JAR packages, WAR packages, and images, and focuses on the running and O&M status of code. The function provides various runtimes to load and execute code deliverables.

  • Applications are based on source code, including the GitHub, Codeup, Gitee, and GitLab code. An application focuses on the whole process of development and delivery of serverless software. An application hosts code repositories, functions, and infrastructure resources. Various built-in application templates and DevOps capabilities are provided to implement a complete workflow from getting started to production.

environment

A workspace to develop the source code for an application. Environments are classified into test, pre-release, and production environments. The following items describe the roles of environments.

  • Allows physical isolation, such as isolation at the region, VPC, and Apsara File Storage NAS (NAS) levels.

  • Provides Backend-as-a-Service (BaaS) capabilities, such as managed databases and storage.

  • Allows differentiated function configurations, such as the instance specification and memory size.

You can deploy applications in mutually isolated environments, and use environments to configure differentiated settings for applications. The following items describe the typical scenarios:

  • Use different environments, such as test, prerelease, and production environments, to meet the iteration requirements of R&D.

  • Deploy a production environment in each region or zone in which a service is deployed to implement disaster recovery.

  • Deploy one environment in each region to achieve optimal performance and latency. For example, you can deploy one environment in each of the China (Beijing), China (Hangzhou), and China (Shenzhen) regions for workloads that serve the Chinese mainland market, and one environment in each of the Singapore and United States (Virginia) regions for workloads that serve markets outside the Chinese mainland.

  • Deploy different tenants of a service in different environments to implement multi-tenancy.

  • Use mutually isolated environments to meet the regulatory compliance requirements. For example, data protection laws of Europe require that user data in Europe must be stored in Europe. Therefore, it is mandatory that an independent environment be deployed in Europe to store user data of Europe and workloads of other regions be deployed in other environments.

  • Deploy services in drill environments to implement promotion drills and inspections.

CI/CD

Serverless Application Center provides serverless pipeline capabilities to help you resolve the definition and execution issues that occur in continuous integration and continuous deployment (CI/CD) scenarios. You can predefine a build-deploy-approve-launch process (a pipeline) as a template in Serverless Application Center. You can manually execute the pipeline or specify that the pipeline is executed upon code changes to publish code to serverless applications.

Pipelines can be triggered by:

  • Manual operations

    On the environment management page, you can click Deploy Now or select another version to redeploy to trigger the execution of a pipeline.

  • Git events

    A pipeline can be triggered upon changes in a code repository. Examples of changes include code push, and pull request (PR) and merge request (MR) operations.

After a pipeline is triggered, a deployment version is created and snapshots of the code commit, application configurations, environment configurations, and pipeline configurations are recorded. You can use the versioning feature to implement quick rollback.

Pipeline template

You need to preset a pipeline template in the process of creating an environment or application.

Task

A task is the basic unit of pipeline execution. A pipeline consists of multiple tasks. Different tasks run on different independent instances. Tasks run preset programs of an application. The scripts can be run in a user-defined manner.