随着软件系统的复杂性和规模的不断增长,配置管理和变更成为了一个重要的领域,尤其在云原生和微服务架构下,业务配置变更和运行时环境配置变更是常见需求。在环境配置变更方面,通常可以使用原生的 Kubernetes YAML 配置管理实现变更。而在业务配置变更方面,由阿里开源的 Nacos 已逐渐成为市场上主流采用的配置管理工具。
ZadigX 能够和 Nacos 紧密集成,通过自动化和变更管道的方式,实现配置管理的自动化,并确保变更的安全性和一致性。
本文介绍 ZadigX 如何支持 Nacos 配置管理,并提供真实的研发场景示例,全面展示自动化配置变更的过程。
ZadigX 如何支持 Nacos 配置管理
只需要在 ZadigX 中集成 Nacos 配置管理系统,配置工作流任务,即可实现配置的自动化、安全变更。
第一步:集成 Nacos 访问 ZadigX 系统设置 > 集成管理 > 配置管理 > 添加 Nacos 配置管理系统。
第二步:配置工作流任务将 Nacos 配置变更任务编排进工作流中即可实现使用 ZadigX 工作流一键自动变更配置。具体操作:编辑工作流 > 添加配置变更任务 > 选择 Nacos 配置变更 > 填写相关参数后保存。
Nacos 配置变更任务中具体配置参考:工作流中支持的更多任务类型可参考文档:工作流任务[1]。
任务名称:根据实际语义配置,比如<nacos-config-update>
Nacos 地址:即第一步中集成的地址
命名空间:要变更的 Nacos 配置所在的命名空间,设置为固定值
配置修改范围:允许使用工作流变更的 Nacos 配置集合
配置选择:无需配置,执行工作流时指定
关于 Nacos 配置中命名空间的更多建议:
推荐 ZadigX 中不同的环境使用不同的 Nacos 命名空间来实现环境配置隔离。比如:开发、测试、生产环境的 Nacos 配置分别在 dev、sit、prod 命名空间中。
推荐使用不同的工作流来变更不同环境的 Nacos 配置,以避免执行工作流时人工误操作。
典型研发场景
接下来以典型的研发场景,详细阐述 ZadigX 如何支持 Nacos 的配置变更,以实现自动化、安全和高效的变更管理。
前置条件:资源准备 配置环境 配置 3 套环境分别用于日常开发自测联调(dev 环境)、集成测试验证(sit 环境)以及生产发布和查看(prod 环境)。
配置工作流
配置 3 条工作流,具体配置参考如下:
配置协作模式
配置协作模式,为研发、测试、发布工程师配置工作流和环境粒度的权限,具体配置参考如下:
场景一:开发阶段
构建 > Nacos 配置变更 > 部署,实现开发环境业务和配置的自动化变更。
开发工程师代码实现完毕后需要自测联调时,执行 demo-workflow-dev 工作流,在构建任务中选择要部署的服务及对应代码,在 Nacos 配置变更任务中选择要变更的配置并修改配置内容。
配置变更成功后会自动执行部署任务更新 dev 环境,实现开发环境中业务代码和配置的一键变更,快速自测联调。
场景二:测试阶段
构建 > QA 审批 > Nacos 配置变更 > 部署 > 自动化测试 > IM 通知,实现测试环境业务和配置的自动化、高效变更。
测试(开发)工程师需要对服务进行集成测试验证时,执行 demo-workflow-sit 工作流,指定要部署的服务以及需要变更的 Nacos 配置并修改配置内容。
在 Nacos 配置变更任务执行之前会触发 QA 审批,待 QA 审批通过后会自动执行 Nacos 配置变更、sit 环境部署、自动化测试,并将工作流执行结果通知到 IM 中,以便测试工程师及时感知环境和配置更新状态,尽早验收把关质量。
场景三:生产发布阶段
SRE 审批 > Nacos 配置变更 > 生产环境分阶段灰度发布 > 自动化测试,实现业务和配置自动化、安全上线。
发布工程师执行 demo-workflow-prod 工作流进行生产发布,选择要变更的 Nacos 配置并修改内容。需要一次变更多个命名空间中的 Nacos 配置时,在工作流中配置多个配置变更任务即可,支持并发执行以提高变更效率。鉴于生产环境的严肃性,针对生产发布有以下策略建议:
测试验收通过的版本才允许发布,从质量上建设发布门禁。
灵活编排蓝绿、金丝雀、分批次灰度、Istio 等发布策略,以确保发布的可靠性,可参考:发布工作流[2]。
发布工作流增加人工审批,确保业务流程上的发布合规性。
小结
ZadigX 工作流支持编排 Nacos 配置变更任务,并发执行任务,实现业务和配置的自动化、高效变更。协作模式可以将权限分配到工作流和环境粒度,实现资源专人专用,将配置变更能力安全的赋予给团队内每个角色。针对集成测试环境(多人协作)和生产环境(极其严肃)的配置变更有专人审批,安全性有保障。
参考链接
[1]工作流任务:https://docs.koderover.com/zadig/ZadigX%20v1.5.0/project/workflow-jobs/
[2]发布工作流:https://docs.koderover.com/zadig/ZadigX%20v1.5.0/project/release-workflow/
推荐阅读
ZadigX 上线飞书官方:先进组织,一站式高效协同解决方案