AppStack 高效管理微服务应用

云效 AppStack 通过应用中心化管理、应用模板支持和批量升级功能,简化微服务应用的配置管理,提升效率,减少错误,实现对上百个应用和上千条流水线的高效管理和批量授权。

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

在企业中,通常同类应用的研发会采用相同的技术栈。例如,Web 类后端服务常用 Java 开发语言、Spring Boot 框架和 K8s 部署形态,而前端服务则常用 Node.js 开发语言和 K8s 部署形态。由于这类应用的研发流程、部署架构、环境划分和角色权限划分基本相似,可以将其定义为应用模板,从而使同类应用能够通过模板快速初始化配置。

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

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

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

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

莫小@1x

莫小@1x

莫小@1x

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

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

  1. 配置模板。

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

    莫小@1x

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

    莫小@1x

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

    莫小@1x

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

    莫小@1x

    莫小@1x

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

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

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

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

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

    莫小@1x

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

    莫小@1x

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

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

    莫小@1x

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

    莫小@1x

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

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

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

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

    莫小@1x

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

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

    莫小@1x

综上所述,介绍了如何以应用维度分组管理测试、预发和生产等不同环境的流水线;通过应用模板实现一键初始化应用配置;以及通过应用模板的批量同步功能实现对上百个应用和上千条流水线的统一配置管理,从而真正“解放”管理员的双手,强化企业级管控能力。