背景
目前,我所在公司负责运维的1套应用子系统,由于历史原因,部署发版均需要人工协助。
每个月的版本日,开发人员提交说明文档给部署,部署人员根据文档,修改配置,最后将修好的配置文件同步到生产主机。
问题提出
部署人员在修改配置文件时,偶尔会出现误操作的场景。
配置文件均使用xml格式编写,少一个闭合标签、少一段文件类型配置,均有可能导致生产服务异常,引发生产事故。
由于该系统在资金领域重要性,必须保证所有修改均如预期(按照部署操作文档一比一修改)。
为了解决该问题,我们开发了内部工具平台,负责将部署人员操作前、后的部署目录和文件,进行全面比对,并发现差异,展示结果。
运维工具平台原理
- 部署平台每天执行定时任务,将该子系统所有配置,同步至工具平台,工具平台挂载NAS卷,按日期妥善存储。
- 版本发布后,部署人员登陆主机,执行类似commit命令,将应用目录打包,提交至工具平台。
- 工具平台提供web页面,用于展示提交的文件信息。
- 工具平台提供完善的后台异步任务功能,可以将部署人员提交(来自生产主机)目录,和历史备份做全量对比(既对比目录文件数量、文件名称,又对比文件内容)。
- 工具平台提供web接口,创建后台对比任务。
- 工具平台展示任务对比结果,文本文件分屏展示差异细节。