AppStack 高效管理微服务应用

更新时间:
复制 MD 格式

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

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

组织应用研发通常采用相同的技术栈和流程。通过定义应用模板,可以快速初始化配置,节省时间。

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

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

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

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

新建应用页面,输入应用名(1~63个小写英文字母、数字或-),应用模板选择从模板创建,选中Java K8s 应用示例模板卡片,单击确定

使用 Java K8s 应用示例模板初始化后,在研发流程页面可查看标准研发流程(发布窗口为每周二、周四 20:00)。选中预发阶段后,流水线依次执行流水线源变更管理器变更准入卡点构建-镜像构建等步骤,各步骤均显示为运行成功状态。

应用的环境管理页面以卡片形式展示各环境的状态和当前版本,其中预发环境状态为运行中(绿色标识),开发环境状态为异常(红色标识),测试环境和生产环境状态为未部署。每张卡片提供立即部署按钮,页面右上角提供新建环境按钮。

组织自定义应用模板一键创建应用

示例模板用于快速体验配置流程。在实际业务中,您可以自定义应用模板,按需配置环境、流水线和部署。少量不同的配置可抽取成变量,关联全局或应用内变量组。

  1. 配置模板。

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

    Java 构建步骤中,选择 JDK 1.8Maven 3.5.2,构建命令配置为 mvn -B clean package -Dmaven.test.skip=${skipMvnTest} -Dautoconfig.skip

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

    编辑编排模板页面的 YAML 编辑器中,通过条件判断语法引用 pilotAutoEnable 变量实现条件渲染;右侧占位符表格中该变量描述为"是否开启xx配置",并开启部署时可改开关。

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

    新建应用对话框中,填写应用名account-app,在应用模板区域选择从模板创建并选中中台spring-boot模板,设置拥有者,填写描述后单击确定,即可基于模板一键初始化应用配置。

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

    应用设置 > 成员管理页面操作,可分配的角色包括拥有者、负责人、开发、测试和运维。

    系统内置拥有者负责人开发测试运维五种角色,每种角色可分别配置变更研发流程(管理研发流程、运行研发流程、新建变更、管理变更)、关联流水线环境管理(新建环境、部署环境、回滚环境、扩缩环境、登录容器、锁定解锁环境)三类权限,权限粒度可精确到开发环境、测试环境、预发环境和生产环境。

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

应用架构升级或研发规范调整时,应用配置也需升级。通常先选取试点应用测试,验证通过后再批量推广。以下是典型升级场景:

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

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

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

    同步开关位于页面右上角,开启后显示同步0/4(表示4个关联应用待同步)。

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

    在 YAML 编辑器的 containers 部分,增加 skywalking sidecar 容器:- name: skywalking,镜像为 registry.cn-xx.cr.aliyuncs.com/ns/skywalking:1.0.0。主容器 main 的镜像通过占位符 AppStack.image.backend 引用,端口为 8080。右侧占位符面板中,namespacereplicas变量的部署时可改开关已开启,支持部署时动态调整。

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

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

    将编排版本同步到应用弹窗中,查看各应用的同步状态,勾选状态为未同步的目标应用,单击开始同步完成批量推广。

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

    版本记录列表中,应用同步状态列以分数形式(如 1/4、3/4)展示各版本已同步的环境数与总环境数之比,便于直观掌握每个版本在开发、测试、预发、生产环境中的推广进度。

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

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

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

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

    在流水线编辑界面的生产发布阶段中,将安全扫描卡点组件插入到部署步骤之前,使其作为发布流程的质量门禁节点;配置扫描规则与阻断条件后,未通过扫描的应用将被拦截,无法继续发布。

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

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

    在研发流程配置页面右侧的关联应用面板中,可查看各应用的同步状态(已同步未同步),单击底部批量同步可将流程模板批量推送至未同步的应用。

以上介绍了如何通过应用模板管理和批量同步配置,实现高效的企业级管控。