最近正在整理项目的代码,和同事们对如何管理项目中的配置信息却产生了差异,在此抛砖引玉,也主要希望了解大家在自己的项目中是如何做的。我们的问题是这样的,我们有多个项目,而且多个项目往往共享很多相同的配置参数,像第三方服务的证书,一些服务的回调地址等,我们之前给每个项目都设了一个配置文件,将其放入版本管理之外,每次修改都要手动去更改,随着服务器数量和项目的增加,这对部署的复杂度是爆炸性的。
一位同事推荐让多个项目共享一个配置文件,以解决配置文件重复的问题,这个方法可行,但我更倾向于 12factor 的使用环境变量存储配置信息的办法,但就我们现有的实际情况,也包括我对环境变量的理解有限,我却不太清楚如何去操作。
首先,由于我们需要在多个项目中共享配置信息,但如果使用 dotenv 或是 figaro 的话只能配置临时变量,不能做到项目间的共享,我也可以将这些信息写在 .bashrc 中,这样的话配置信息颗粒度太细,也不利于更新和维护。
不知道大家是否有面对和我相近的问题,或者说在自己的项目中如何去实践的。