什么是应用中心

Serverless应用中心是阿里云面向Serverless应用的一站式开发及生命周期管理平台。通过Serverless应用中心,您可以有效聚焦业务场景,快速开发及部署Serverless应用、白屏化操作资源提高运维效率,实现应用的全生命周期的管理。本文介绍Serverless应用中心的相关概念、优势以及功能。

使用说明

关于计费

Serverless应用中心是个免费的平台,本身不会收取任何费用,但是不同模板以及环境会访问一些云服务,这些服务可能会产生费用。具体计费详情,请参考具体云产品价格说明。

关于权限

通过Serverless应用中心部署应用时,可能会访问其他云服务,例如,部署函数计算的服务和函数资源,创建或更新VPC、NAS、SLS相关资源等,此时需要授予函数计算相应的访问权限。首先为应用或环境关联一个RAM服务角色,然后将目标授信服务设置为函数计算,应用中心使用AssumeRole - 获取扮演角色的临时身份凭证方式访问用户的云服务。

为了简化授权操作步骤,Serverless应用中心提供了系统默认角色,即AliyunFCServerlessDevsRole。该角色包含了应用中心需要访问的部分云资源权限。您可以登录RAM角色管理控制台,查看AliyunFCServerlessDevsRole角色的权限内容。

由于AliyunFCServerlessDevsRole角色包含的权限是较粗粒度的权限,如果需要定制更细粒度的权限,您可以为应用或环境关联其他角色及相关权限策略。

说明

为了遵循最小授权原则,不建议为应用直接复用服务中指定的角色。应用使用的角色和服务角色使用场景不同,具体说明如下。

  • 应用角色的用途是管控链路,即在应用部署阶段访问云服务,例如,创建VPC及交换机、构建并上传ACR镜像或更新函数等。

  • 服务角色的用途是数据链路,即在函数调用阶段访问云服务,例如,挂载ENI网卡、拉取ACR镜像或将函数执行日志写入SLS等。

优势

通过Serverless应用中心,用户在部署应用之前,无需进行构建、打包和发布等额外操作,即可通过应用中心的天然GitOps能力,快速部署和管理应用。Serverless应用中心帮助用户快速联动云上的上下游服务,轻松沉淀最佳实践。

  • 让开发者可以通过控制台操作,更简单、更方便、更快速地体验和上手Serverless应用。

  • 让Serverless应用可以以一种更为科学、安全与稳定的方法,进行开发、创建、更新以及运维、迭代等。

  • 将传统的资源以应用的维度进行聚合、管理,可以让开发者真正意义上聚焦业务,聚焦应用,而不再是零散在不同产品页面上的资源。

功能

Serverless应用中心为开发者提供了Web开发框架、Web应用、人工智能、音视频处理和文件处理等在内的10个分类近百款热门应用。无论是全景Web页面录制、二维码生成工具、PDF文件添加水印、轻商城应用、KodBox应用等,还是Django、Flask、SpringBoot、Express等各类开发框架等,都可以通过应用中心一键创建并快速体验。通过应用中心的天然GitOps能力,开发者也可以快速地对应用进行二次开发与应用的发布上线,以适应个性化的需求,满足更复杂的业务场景。

除通过模板快速创建之外,Serverless应用中心还提供Serverless应用导入能力,对于符合Serverless Devs应用规范的应用(即包括了业务代码与资源描述文件,例如s.yaml等),可以快速导入,并进行环境的划分、流水线的创建等。

说明
  • 应用中心提供大量应用案例,旨在帮助开发者快速体验和二次开发。针对定制化需求,开发者可以在此基础上,进行二次开发,以实现更多能力。

  • 应用中心集成了各种应用模板,关于模板本身的问题,不在函数计算的维护服务范围内。

相关概念

应用

一个Serverless应用的完整描述。应用可以关联一个代码仓库、多个环境和多条流水线。

应用和函数的区别

  • 函数托管的是代码交付物(包括代码ZIP包/JAR包/WAR包/镜像),关注的是代码的运行态及运维态。函数提供了各种运行时来加载并执行代码交付物。

  • 应用面向的是源码(包括Github/Codeup/Gitee/Gitlab),关注的是Serverless软件开发及交付的生命周期。应用纳管了代码仓库、函数、基础设施资源,目前内置了丰富的应用模板及DevOps能力,实现用户从入门Serverless到上线生产的完整工作流。

环境

描述测试、预发、生产类别的具体环境。环境的作用如下所示。

  • 物理隔离。例如地域、VPC和NAS隔离等。

  • 提供BaaS相关能力。例如托管数据库和存储等。

  • 提供函数配置差异化能力。例如实例规格和内存等。

通过环境,能完成应用部署在相互隔离(非强制)的网络空间,并且为业务提供差异化的配置注入能力。典型的使用场景如下所示。

  • 研发迭代流程需要,例如测试、预发、生产环境。

  • 出于容灾的考虑,需要将服务进行多地域部署,每个地域多可用区部署,每个地域或者可用区部署一套生产环境。

  • 出于性能及延迟的考虑,中国内地业务部署华北2(北京)、华东1(杭州)和华南1(深圳)三个数据中心,海外业务部署新加坡和美国(弗吉尼亚)两个数据中心,每个数据中心下部署一套环境。

  • 出于多租的考虑,将服务的不同租户划分到不同环境上,每个环境服务一类租户。

  • 出于法律法规的考虑,例如,欧洲的数据保护法律要求欧洲的用户数据必须存放到欧洲,因此需要在欧洲部署一个独立环境,非欧洲的核心业务部署在另外的环境上。

  • 出于演练及安全生产的考虑,需要划分出独立的环境进行大促演练、安全生产巡检等操作。

CI/CD

应用中心提供了Serverless的流水线能力,帮助用户解决CI/CD场景的定义与执行问题。用户可以通过模板的方式,在应用中心预定义一个构建、部署、审批、上线的流程,并通过手动触发或代码变更触发的方式执行,将代码发布到Serverless产品。

流水线目前支持两种触发方式:

  • 手动触发

    可以在环境管理页面单击立即部署或者选择其他版本重新部署,触发流水线的执行。

  • Git事件触发

    对代码仓库提交变更,包括推送代码、提交PR或MR等。

成功触发流水线后会创建一个部署版本,并且会记录代码Commit、应用配置、环境配置和流水线配置的快照,通过版本管理可以实现快速回滚的能力。

流水线模板

用户需要在创建环境或应用的流程中,为应用中心预设流水线模板。

任务

任务是流水线执行的基本单位,一个流水线由多个任务组成。不同任务会运行在不同独立的实例上。任务目前运行了应用预设的程序,可以按照用户自定义的方式运行脚本。