应用多、交付快,研发运维怎么管?看云效 +SAE 如何一站式破局
作者:天彤
背景
对于研发团队来说,应用程序(Application)的开发运维的成本、质量、效率,永远是比较难均衡的三个核心要素,特别是对于应用程序较多、团队规模较大、研发交付节奏较快的研发团队,面临的挑战就会更大。为了保证应用的发布质量,一般需要专门部署运维团队投入,而管理常规的 K8s 集群的成本通常较高,当人手不足时运维团队又会成为瓶颈,限制研发交付的速率。通过云效+Serverless 应用引擎(SAE)的集成方案,可以有效的解决这个问题,帮助企业研发团队统一管理应用程序的研发、部署、运维过程,实现研发团队的自运维。
成本
SAE 是自适应弹性的应用托管平台,可以免运维管理 K8s 集群,相较于普通容器服务,支持自动弹性伸缩和按量计费,用户无需自行管理集群节点,有效的控制资源成本和维护成本。云效 AppStack 提供的是应用的开发/部署/运维,完整的应用生命周期管理,云效与 SAE 集成之后,可以在云效中配置应用不同环境的部署参数,并且直接部署 SAE 资源,将研发态和运维态统一管理。
质量
云效 AppStack 的应用模板和研发流程管理,可以比较好的规范研发流程,运维团队可以统一制定规范,在不同的应用环境可以使用不同等级的质量控制标准,并且可以对部署生产环境的准入规则进行约束,对于没有经过测试环境验证的代码提交,防止部署到生产环境,同时通过精细的环境权限管控,保证生产环境的发布质量。
效率
云效 AppStack 的应用模板可以大大节省研发流程的配置成本,如果需要整体调整流水线只需修改模板即可。在应用的部署编排上也是采用相似的设计,并且不同的环境共享一个编排配置,通过参数化适配不同环境。研发团队只需专注在日常研发工作中,从繁杂的部署运维工作解放出来,非常方便研发团队自运维。在研发过程中也可以选择 AppStack 的变更集成模式,在多人协同开发场景效率提升明显。
方案介绍

基于应用的研发运维管理
云效 AppStack 提供了基于应用维度的管理模式。一般产品团队专注于围绕“产品”进行规划设计,而研发团队则聚焦于“应用”的开发与实现。应用作为可独立部署的最小单元,通常一个完整的产品由多个应用构成。通过将大型产品拆解为独立的应用,不仅有助于优化产品结构,提高模块间的独立性和灵活性,还能更迅速地响应业务需求变化。此外,这种架构上的优化也提升了持续集成和持续部署(CI/CD)流程的可行性和效率,从而加速产品的迭代周期并增强市场竞争力。
配置应用各环境的研发流程
云效 AppStack 集成了云效 Flow 的强大流程设置功能,实现了软件开发过程的规范化管理。AppStack 提供了标准化的应用模板,确保所有应用的研发过程保持一致,便于团队成员快速上手并统一开发标准。
一般每个应用都会包含多个「环境」(如开发环境、测试环境、生产环境),在应用模板中可以对各个环境的流水线进行设置。通过模板创建的应用,也将会自动继承预置的研发流程,并且与模板的设置持续保持同步。

将应用部署到 SAE
云效 AppStack 的应用环境可以关联多种部署资源,包括:主机部署、K8s 部署、SAE 部署。一般最常见的主机部署和 K8s 部署。而当云效 AppStack 支持 SAE 之后,资源配置和部署方式将大大简化,将 SAE 资源作为集群导入 AppStack 以后,就可以直接将应用部署到 SAE。
方案操作流程
SAE 新增角色授权
要实现 SAE 与云效 AppStack 的集成,首先需要在 RAM 控制台为账号创建名为 sae-${accountId} 的 RAM 角色,并且为角色授权 AliyunSAEFullAccess。

然后在这个角色中修改信任策略:
云效 AppStack 连接 SAE
进入云效 Flow 的全局设置——服务连接管理,新建一个 SAE 的服务连接。

再进入云效 AppStack——资源池,添加新的 SAE 集群,这个集群对应的是 SAE 的某个地域。

应用环境关联 SAE 集群
在 AppStack 创建一个新的应用,关联代码源之后,直接在「环境」中添加 SAE 环境,这里需要设置环境的标签(开发/测试/生产),部署方式选择 SAE 部署,并且选择刚创建的 SAE 集群。

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

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

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



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