云效AppStack与SAE集成:实现研发运维一体化管理

研发团队在应用开发运维中,普遍面临着在成本、质量、效率三者之间取得平衡的挑战。对于应用数量多、团队规模大、交付节奏快的组织而言,这一挑战尤为严峻。本文介绍云效与 SAE 的集成方案,帮助企业有效应对这些挑战,实现从代码、部署到运维的全生命周期统一管理。

核心优势

集成云效与SAE,将为您的研发团队带来以下核心价值:

  • 成本

    • SAE作为自适应弹性的应用托管平台,提供免运维k8s集群管理,自动弹性伸缩和按量计费的能力,用户无需自行管理集群节点,有效的控制资源成本和维护成本。什么是Serverless应用引擎?

    • 云效Appstack提供的是应用的开发/部署/运维,完整的应用生命周期管理,与SAE集成之后,可以在云效中配置应用不同环境的部署参数,并且直接部署SAE资源,将研发态和运维态统一管理。

  • 质量

    • 云效Appstack提供的应用模板和可定制的研发流程,能够规范团队的研发流程。您可以为不同的应用环境设置不同等级的质量控制标准,并对部署生产环境的准入规则进行约束,有效防止未经测验证的代码部署上线,保证生产环境的发布质量。

  • 效率

    • 云效Appstack的应用模板和参数化部署编排,可以大大节省研发流程的配置成本。研发团队无需再为每个应用重复配置 CI/CD 流水线,只需专注于业务代码开发,即可实现“自运维”,从繁杂的部署运维工作中解放出来。在研发过程中也可以选择Appstack变更集成模式,在多人协同开发场景效率提升明显。

方案介绍

image

基于应用的研发运维管理

云效Appstack提供了基于应用维度的管理模式。这与不同团队的关注点相契合:产品团队专注于围绕“产品”的整体规划,而研发团队则聚焦于“应用”的开发与实现。

应用作为可独立部署的最小单元,通常一个完整的产品由多个应用构成。通过将大型产品拆解为独立的应用:

  • 不仅有助于优化产品结构,提高模块间的独立性和灵活性,

  • 还能更迅速地响应业务需求变化。

  • 提升了持续集成和持续部署(CI/CD)流程的可行性和效率,从而加速产品的迭代周期并增强市场竞争力。

配置应用各环境的研发流程

云效AppStack提供了标准化的应用模板,确保所有应用的研发过程保持一致,便于团队成员快速上手并统一开发标准。

一般每个应用都会包含多个「环境」(如开发环境、测试环境、生产环境),在应用模板中可以对各个环境的流水线进行设置。通过模板创建的应用,也将会自动继承预置的研发流程,并且与模板的设置持续保持同步。

image

将应用部署到SAE

云效Appstack的应用环境可以关联多种部署资源,包括:主机部署、k8s部署、SAE部署。一般最常见的主机部署k8s部署。而当云效Appstack支持SAE之后,资源配置和部署方式将大大简化,将SAE资源作为集群导入Appstack以后,就可以直接将应用部署到SAE。

方案操作流程

1. SAE新增角色授权

  1. 在 RAM 控制台创建可信实体为阿里云账号的RAM角色,角色名为 sae-${accountId} ,并RAM角色授权 AliyunSAEFullAccess

    image

  2. 参考修改RAM角色的信任策略修改sae-${accountId}角色的信任策略,内容如下:

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "sae.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }

2. 云效Appstack连接SAE

  1. 进入云效流水线Flow页面,单击全局设置,在左侧导航栏单击服务连接管理,单击Serverless应用引擎(SAE),单击下一步,自定义服务连接名,其余配置保持默认即可,单击创建

  2. 进入云效应用交付AppStack页面,在左侧导航栏单击资源池,单击导入SAE集群:

    • 服务连接:选择上一步中创建的服务SAE服务连接

    • SAE集群地域(Region):集群所在的地域,建议使用ACK集群,在AppStack 中使用 ASK 集群可能存在偶发性异常。

    • 集群名称:集群的唯一标识,导入后不可修改,支持1~63个小写英文字母、数字或“-”,以字母开头,以字母或数字结尾。

    • 集群显示名:便于识别的集群名称,支持1-32个中英文字符、数字或符号

    image

3. 应用环境关联SAE集群

  1. 进入云效应用交付(AppStack)页面,单击左侧导航栏的应用,单击新建应用创建一个新的应用,关联代码源之后,

  2. 在左侧导航栏单击环境,单击新建环境,完成如下配置:

    • 名称:应用下环境唯一标识,创建后不可修改。支持1~63个小写英文字母、数字或“-”,以字母开头,以字母或数字结尾。

    • 显示名:环境显示名,创建后可在环境设置里按需修改。支持1-32个中英文字符、数字或符号。

    • 标签:可使用标签来归类环境,如环境等级(开发/测试/生产),关联后可在环境设置里按需修改。

    • 部署方式:选择SAE部署

      • SAE资源:选择刚创建的SAE集群。

    image

4. 设置应用的部署编排

进入应用设置——部署编排配置——编辑,在这里可以对资源yaml进行设置,由于SAE本身也会进行资源设置,在云效Appstack的设置中请遵循“尽量少”的原则,在这里配置的参数会直接应用在SAE部署Appstack的配置项会与SAE的设置进行合并。

image

5. 设置研发流程的部署步骤

进入应用研发流程的流水线编辑界面,设置SAE的部署任务,这里必须使用「Appstack部署」的任务,这样才能与刚刚配置好的部署编排yamlSAE环境进行关联。在「环境」中选择对应的SAE环境,在「制品」中选择镜像构建任务所产生的镜像文件。

image

运行研发流程部署SAE!

一切配置完成后,直接运行研发流程,就可以完成镜像的构建和部署,Appstack部署任务会专门创建「部署单」,通过部署单可以查看部署过程的进度和问题。部署成功以后,在SAE就可以看到成功创建了应用,SAE应用的名称和Appstack配置的deployment的名称完全对应,一个Appstack应用会根据不同的环境,创建多个SAE应用。

image

image

image

小结

云效AppStack与阿里云Serverless应用引擎(SAE)的集成方案,为企业研发团队提供了一套高效、低成本、高质量的研运一体化解决方案。在成本方面,SAE作为自适应弹性的免运维应用托管平台,支持自动伸缩与按量计费,用户无需管理底层K8s集群,显著降低了资源开销和维护成本。在效率方面,云效AppStack通过可复用的应用模板和参数化的部署编排,统一管理开发、测试、生产等多环境配置,研发人员只需专注业务代码,大幅减少了重复的运维配置工作。在质量方面,方案通过标准化的研发流程、严格的环境权限管控以及生产环境准入规则,有效保障了发布质量与系统稳定性。通过在云效中创建SAE服务连接并关联集群,团队可将应用环境直接部署到SAE,实现从代码提交、镜像构建到SAE部署的自动化流水线。该集成打通了研发与运维的壁垒,特别适用于应用数量多、团队规模大、交付节奏快的组织,助力企业实现敏捷、可靠的持续交付。