想象一下一个具有大量服务器的系统。它们每个都有许多设置:
- 一些特定于服务器的
- 一些特定于该地区的
- 他们之间有些共同点
- 也许您可以进行一些自定义分组,例如这组服务器仅用于读取
- 等等
我想到的当前实践是具有压倒性能力的简单属性结构。
让我们以Google服务器为例。其中每个都有一个要加载的设置列表。
例如,伦敦服务器可能具有:
rootsettings.properties
,europesettings.properties
,londonsettings.properties
,searchengine.properties
,等。
每个文件都包含一组属性,并且加载顺序使您可以覆盖属性,您可以走得更远。
举例来说:rootsettings.properties
可有accessible=false
作为默认,但重写在searchengine.properties
与accessible=true
我在使用此结构时遇到的问题是,很容易失控。它根本不是结构化的,这意味着您可以在任何级别定义任何属性,并且许多项目可能会过时。
此外,随着网络的增长,更改中间级别变得不可能了,因为您现在影响了非常多的服务器。
最后但并非最不重要的一点是,每个单独的实例可能需要1个特殊属性,这意味着您的树最终还是为每个服务器配置了一个配置,这使其不是最佳解决方案。
如果您对更好的配置管理体系结构有任何建议/想法,将不胜感激。