如何管理线上项目的配置文件—思考

917 阅读2分钟

线上配置文件管理是谁的事情?是开发 or 运维

要回答这个问题,首先要明确配置文件存在的目的:配置文件本质是程序的一部分,是程序外部变量的集合,由开发人员创建、使用;同时配置文件作为特殊的"外挂"程序,其加载方式、以及日常维护,涉及到运维的工作范围。

如何分工、考量配置文件的管理?

从角色和使用方式上总结出如下规则:

  • 由开发定义:如何使用配置文件和加载方式。
  • 由运维定义:如何管理配置文件和加载方式。

如上总结的原因:

开发人员了解配置文件中变量的含义以及对程序运行起到的作用,使用什么技术、有多少种途径能够读取配置文件;而运维人员关注程序整体的可用性、安全性、维护的便利性。所以开发人员侧重使用,运维侧重管理。

所以如何管理配置文件的问题,变成了如何定义读取配置文件的方式。

如何定义读取配置文件,总结为两种方式

  1. 嵌入配置

    从自身项目中读取配置文件,配置文件与程序一起打包发布

  2. 从外部引入

    共享配置文件,程序运行时,由外部链接读入配置文件

具体如何选择读取配置文件的方式?

其中一个思路是:根据公司业务以及系统特点选择:

  1. 项目小、量多的情况,可以通过嵌入方式。通过程序本身实现自管理模式。

    优势:程序运行主要由开发者自主维护,能够灵活应对众多情况。(运维大量的小项目,在实践操作上可能很难)

    缺点:遇到开发文档不完善,难以维护。

  2. 项目大而重的情况,可以通过共享管理的配置。

    优势:这类项目,一般是公司重点项目,能够做到精准管理,把配置文件的更新与程序的发布解耦。运维也有精力维护。(也值得维护)

    缺点:共享配置文件搞错了,造成整体瘫痪。

以上是关于项目中如何管理配置文件的思考以及方案。

最后从工作性质角度总结一下:

  • 运维关注点在整体:考虑整体的可用性、安全性、维护的便利性。
  • 开发关注点在程序内部:变量可维护性以及维护便利性。