假设一个应用程序可以有不同的服务类型——比如说 A、B、C、D。
该应用程序有一个配置文件。每种类型与所有其他类型共享大约 95% 的配置条目。每种类型都有一些唯一值。有些甚至非常特定于每个实例(由于 NAT 问题导致的 IP 地址)。
保留这些配置文件并不容易。目前我们使用ansible,但感觉很麻烦且容易出错。每种类型都有一个角色,每个共享变量都有一个公共部分。
我们正在考虑 Hashicorps consul
。但是,我们还没有弄清楚如何维护每种类型不同的变量。
例如,配置文件(仅作为示例):
{
param1: 20,
param2: 30,
param3: 9,
log-level: "info",
ip: x.x.x.x
}
param1
每种类型可能不同。我可以在 KV 存储中想到 aparam1.A
等param1.B
,但是当我们查询时需要进行一些转换,因为配置文件仍然需要param1
在文件中......
我们是否过于复杂化了这一点?
我们想要的是能够集中管理所有类型的配置文件,并且可能能够查询每种类型的值,最好是通过实例查询。
是consul
正确的工具吗?有替代品吗?我们最初考虑自定义实现一些东西,但如果有一些可以重用的东西,那就更好了。