问题描述
在设计一个复杂的本地企业应用程序的配置管理时遇到了困难。他希望能够找到一些最佳实践的参考资料,以便验证自己的设计解决方案或者获取一些建议。
他发现互联网上的资料都是关于非常基本的例子,比如“让我们在nginx后面配置另一个Web应用程序”。这感觉就像是基于“Hello World”示例编写微服务应用程序一样。
他遇到的问题包括:
– 配置的易用性与配置的复杂性
– 自编写解决方案与开源适配方案的比较
– 预编译配置包与实际部署中的动态模板
– 快速配置回滚的方法
用户希望能够找到一些参考资料,以便了解自己的设计方向是否正确。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
在配置管理中,有两种常见的方法可以参考:策略管理和承诺理论。
– 策略管理:在策略管理中,你描述了为实现所需状态而执行的操作,假设系统的先前状态或特定测试。这种方法可以使用简单的脚本来实现。
– 承诺理论:承诺理论工具通常更复杂(如Ansible、Chef、Puppet、Salt),但它们通常是幂等的,这意味着只有在实际状态与期望状态不匹配时才会进行更改。
对于第二个问题,我们可以给出一个明确的答案:
不要重复造轮子,现在有一些严肃的配置管理软件可供选择,如果你自己编写的话,会比现有软件提供的功能少,而且会带来更多的维护工作。无论你选择哪种方法,都需要学习一些新的知识,但学习一个维护良好的软件要比编写自己的系统并在应用程序配置之上进行维护更值得。
方案2
ITIL 是最接近官方的配置管理最佳实践来源,但重要的是要记住(大多数人不知道)ITIL 是一套思想和技术的工具箱,应该根据每个场景的独特要求进行调整,而不是照搬。
总结
在配置管理中,可以参考策略管理和承诺理论。策略管理使用简单的脚本来描述所需的操作,而承诺理论工具更复杂,但通常是幂等的。对于配置管理的最佳实践,可以参考ITIL,但需要根据实际情况进行调整。无论选择哪种方法,都应该避免重复造轮子,选择一个维护良好的软件来管理配置。