1

我们有一个构建管道来管理工件的生命周期。该管道由四个阶段组成:

1.commit(运行单元/集成测试)
2.at(将工件部署到环境并运行自动化验收测试)
3.uat(将工件部署到 uat 环境并运行手动验收测试)
4.pt(部署到pt环境并运行性能测试)
5.//TODO 我们正在尝试支持生产环境。

该管道支持环境变量,因此我们可以通过使用选项触发来部署具有不同配置的工件。问题是有时配置项太多,使得部署脚本包含太多替换任务。

我有个想法,搭建一个集中的配置管理系统(简称ccm),这样我们就可以在那边维护配置项,在deploy脚本中只留下一个url(连接到ccm)替换任务(处理不同阶段)。因此,工件不保存配置值,它向 ccm 询问它们。

首先这是可行的还是一个坏主意?

我担心的是,配置键(在工件中定义)和值(在 ccm 中设置)之间的潜在不匹配无法通过此解决方案解决,甚至可能更糟。

4

1 回答 1

2

配置文件应保留在项目中或设置为运行它们的配置变量。这背后的原因是您在架构中添加了一个新的故障点,您必须考虑到您的配置服务器可能会关闭,从而破坏依赖它的所有内容。
我建议不要让自己陷入这种境地。

为项目定义一长串环境变量是没有问题的,除此之外,这甚至可能意味着您正在正确地做事。

如果由于某种原因您发现自己更改了很多配置文件(例如数据库连接字符串、api ednpoints 等),那么问题可能是需要更改很多配置,而这些配置应该几乎始终保持不变。

于 2013-07-08T08:48:19.687 回答