我们有一个构建管道来管理工件的生命周期。管道由四个阶段组成:
1.commit(runing unit/ingetration tests) 2.at(deploy artifact to at environment and runn automated acceptance tests) 3.uat(deploy artifact to uat environment and run manual acceptance tests) 4.pt(deploy to pt environment and run performance tests) 5.//TODO we're trying to support the production environment.
管道支持环境变量,因此我们可以通过使用选项触发来部署具有不同配置的工件。问题是有时配置项太多,导致部署脚本包含太多替换任务。
我有一个构建集中配置管理系统(简称ccm)的想法,所以我们可以在那里维护配置项,只留下一个url(连接到ccm)替换任务(处理不同的阶段)部署脚本。因此,工件不会保存配置值,它会询问ccm。
首先这是可行还是坏主意?
我担心的是配置键(在工件中定义)和值(在ccm中设置)之间的潜在不匹配不能通过此解决方案解决,甚至可能更糟。
答案 0 :(得分:2)
配置文件应保留在项目中,或设置为运行它们的配置变量。这背后的原因是你在架构中添加了一个新的故障点,你必须考虑到你的配置服务器可能会崩溃,从而打破所有依赖它的东西。
我建议不要把自己置于这种情况。
为项目定义一长串环境变量没有问题,除此之外甚至可能意味着你正在做的事情。
如果出于某种原因你发现自己经常更改配置文件(例如数据库连接字符串,api ednpoints等等),那么问题可能是需要更改很多配置,这应该几乎总是保持不变相同。