如何批量管理上百个微服务、上千条流水线?

随着微服务和云原生技术的发展,一个业务系统往往由多个微服务应用组成,多个业务方向涉及几十上百应用,每个应用研发过程又划分为测试、预发、生产多条流水线,也即成百上千条流水线。而一个企业下通常只有 1~2 个运维或架构师负责这些应用的配置管理工作,该场景下你是否会遇到以下苦恼:

  • 业务应用太多啦,一个应用配置的修改就得修改几十上百遍,还有可能错改、漏改?

  • 流水线太多啦,怎么分组管理,快速找到目标流水线?流水线怎么批量授权给一线开发测试同学?

云效 AppStack 以应用为中心聚合管理资源环境、CI/CD流程、人员权限等;提供应用模板,支持使用模板一键创建应用,快速初始化应用配置;支持应用模板修改批量升级应用,帮助你高效管理上百应用、上千条流水线,帮助企业规范、管控手段落地。

1. 使用模板一键创建应用

通常企业下一类应用研发会采用相同的技术栈,如 Web 类后端服务通常会采用Java开发语言、Spring boot 框架、K8s 部署形态,前端服务通常会采用 Node.js 开发语言、K8s 部署形态等。一类应用的研发流程、部署架构、环境划分、角色权限划分基本类似,可将一类应用定义为应用模板,同类应用使用模板即可快速初始化配置。

1.1 从示例应用模板快速配置应用

云效提供两套示例应用模板,你可以直接从示例模板一键初始化应用配置,体验完整应用部署流程;实际应用部署可按需修改部分流程或配置。

  • 示例模板1 - Java K8s 应用示例模板,预置测试(镜像构建+测试环境部署)、预发(镜像构建+预发环境部署)、生产(镜像构建+人工卡点+生产环境部署)三条流水线,预置K8s Deployment 部署 YAML,预置开发、测试、预发、生产四套环境。

  • 示例模板2 - Java 主机应用示例模板,预置测试、预发、生产三条流水线,预置 Linux 主机部署 Shell 脚本,预置开发、测试、预发、生产四套环境。

image

image

image

1.2 企业自定义应用模板一键创建应用

示例应用模板用于帮助快速体验应用配置部署流程,在实际业务研发中,可以自定义符合企业业务特征、满足企业研发流程规范的应用模板。在企业全局设置中,新建应用模板(也可以从已有模板复制),按上述单应用配置方式配置应用环境、流水线、部署K8s YAML等, 其中,应用下少量不同的配置可以抽取成变量,关联全局变量组或应用内变量组进行差异化配置。

  • 如:Java 构建命令中,某些应用跳过 maven 测试。定义skipMvnTest为流水线变量,流水线关联应用变量组,由变量组取值决定是否跳过。

image

  • 如:部署 K8s YAML 中,某些应用 Deployment 开启 xx 特殊配置。定义pilotAutoEnable为编排配置变量,环境关联变量组,应用环境部署时由变量组取值决定是否开启。

image

新建应用时,选择上述配置好的模板,即可一键初始化应用配置,省去多应用逐个重复配置成本,“解放”双手。

image

应用创建成功后,可以批量为应用添加成员并赋予相应角色,以角色权限方式统一为应用的多套环境、多条流水线授权。企业可按需配置开发、测试等各角色的权限点。

image

image

2. 模板修改批量升级到应用

随着应用架构升级、或研发规范的调整,应用配置也需要不断的升级,通常会选取一两个试点应用做升级测试,验证通过后批量推广到所有应用。典型升级场景示例如下:

示例场景1:批量修改应用部署配置,增加 sidecar 容器,统一接入监控日志

应用稳定性升级项目要求所有统一接入监控日志,需要在应用部署中增加 skywalking sidecar 容器,用于日志采集、上报等。批量升级步骤如下:

  • 进入应用模板 -> 编排配置,开启同步功能。

image

  • 修改模板编排 YAML Demployment 文件,增加 skywalking 容器配置。

image

  • 选择试点应用,进行配置同步,重新部署试点应用进行测试验证。

  • 试点应用测试验证 OK 后,再批量选择应用同步,批量推广。同步后,应用下次部署使用最新同步的 YAML 即可生效 skywalking sidecar 容器,进行应用日志采集。

image

  • 点击应用模板 -> 版本记录,可以实时查看各应用同步状态和同步版本,整体控制升级进度和风险,避免错改、避免漏改。

image

示例场景2:应用研发流程统一增加安全扫描卡点

企业内引入安全扫描能力,安全同学要求将安全扫描结果作为发布流程卡点,没有通过安全扫描的应用不允许发布。应用批量接入步骤如下:

  • 进入应用模板 -> 研发流程配置,开启同步功能。

  • 编辑生产发布阶段流水线,增加「安全扫描卡点」组件。

image

  • 选择试点应用,进行配置同步,重新运行试点应用生产阶段发布流程,进行流程验证。

  • 试点应用流程验证 OK 后,再批量选择应用同步,批量推广。同步后,应用下次发布时,生产发布流程将经过「安全扫描卡点」,作为发布卡点。

image

以上,即介绍了以应用维度分组管理测试、预发、生产等不同环境流水线;通过应用模板一键初始化应用配置;通过应用模板批量同步功能统一配置管理上百应用、上千流水线,真正做到“解放”管理员双手,强化企业级管控“手段”。