掘金 人工智能 09月15日
云效与SAE集成:实现应用研发运维一体化
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了云效AppStack与阿里云Serverless应用引擎(SAE)的集成方案,旨在帮助企业研发团队解决应用开发运维中的成本、质量和效率难题。通过SAE的免运维、弹性伸缩和按量计费特性,有效降低了集群管理成本。云效AppStack则通过应用模板、流程管理和参数化部署编排,实现了研发流程的规范化和部署运维的自动化。该方案支持将应用直接部署到SAE,统一管理应用生命周期,特别适合应用多、团队大、交付快的研发场景,助力实现敏捷可靠的持续交付。

💡 **成本优化与免运维托管**:SAE作为Serverless应用引擎,无需用户自行管理Kubernetes集群,支持弹性伸缩和按量计费,显著降低了应用托管的资源和维护成本。云效AppStack通过与SAE集成,将应用的开发、部署、运维过程统一管理,进一步简化了运维负担。

🚀 **效率提升与流程自动化**:云效AppStack提供的应用模板和参数化部署编排,大幅节省了研发流程配置成本,并允许不同环境共享配置。研发团队可以从繁琐的部署运维工作中解放出来,专注于核心研发任务。变更集成模式还能在多人协同开发场景下显著提升效率。

✅ **质量保障与规范化管理**:云效AppStack的应用模板和研发流程管理,能够规范研发流程,并允许运维团队统一制定质量控制标准。通过精细的环境权限管控和生产环境准入规则,有效防止未经测试的代码部署到生产环境,确保发布质量和系统稳定性。

🔧 **集成操作简便,实现研运一体**:通过在RAM控制台创建SAE角色授权,并在云效Flow中配置SAE服务连接,即可将SAE资源导入云效AppStack。应用环境可直接关联SAE集群,并设置部署编排和研发流程中的SAE部署任务,最终实现代码提交到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。

然后在这个角色中修改信任策略:

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

云效 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 服务连接并关联集群,团队可将应用环境直接部署到 SAE,实现从代码提交、镜像构建到 SAE 部署的自动化流水线。该集成打通了研发与运维的壁垒,特别适用于应用数量多、团队规模大、交付节奏快的组织,助力企业实现敏捷、可靠的持续交付。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

云效 SAE Serverless DevOps 应用运维 研发效率 Cloud-native DevOps SAE Serverless DevOps Application Operations R&D Efficiency
相关文章