一个应用程序集中式配置管理系统如何?

问题描述 投票:1回答:2

我们有一个构建管道来管理工件的生命周期。该指导线包括四个阶段:

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

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

我有一个构建集中式配置管理系统(简称ccm的想法,因此我们可以在那维护配置项,而在部署中仅保留一个url(连接到ccm)替换任务(处理不同的阶段)脚本。因此,工件不保存配置值,而是向ccm索要配置值。

这是可行的还是一个错误的主意?

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

configuration configuration-management
2个回答
2
投票

配置文件应保留在项目中或在运行时设置为配置变量。这背后的原因是,您要在体系结构中添加新的故障点,必须考虑到配置服务器可能会停机,从而破坏了所有依赖于此的服务器。我建议不要将自己置于这种情况。

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

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


0
投票

[checkout Lygeum,一个集中式配置服务器,我已经对其进行了一段时间的测试,并且运行良好,可以使用docker进行引导。

© www.soinside.com 2019 - 2024. All rights reserved.