我正在尝试为新项目找到合适的配置管理工具。我遇到了Consule。在我提出问题之前,我想引用一下consul页面说的话:
配置管理工具可能提供的静态配置可以移动到动态键/值存储中。这样可以在不进行慢速收敛运行的情况下更新应用程序配置。
它还说:
也就是说,Consul不是配置管理工具的替代品。这些工具对于设置应用程序仍然至关重要,包括Consul本身。静态配置最好由现有工具管理,而Consul可以更好地管理动态状态和发现。
来源:https://www.consul.io/intro/vs/chef-puppet.html
我的理解是consul是一个动态配置管理工具,速度很快。但我的问题是它与主厨等静态配置管理工具有什么不同?
最重要的是何时选择什么?
答案 0 :(得分:2)
快或慢并不是真的那么多。 Chef / Ansible / Puppet等的问题。这些系统通常是定期运行的,例如每30分钟一次。
因此,如果一个节点发生更改(或添加/删除),则可能需要长达30分钟,直到所有其他节点都注意到这一点(无论是应用服务器和数据库服务器是否相互找到)。
领事(可能与consul-template)在这里更快,更直接。所有连接的笔记都会收到更改通知。但是,它没有提供上述配置管理工具的原语。
因此两者的结合也是有效的。厨师/木偶/ Ansible /等。安装软件包并编写大部分配置,以及Consul(或etcd)用于快速移动的部件。
答案 1 :(得分:1)
这是我在这个问题上的0.05美元: 如果您在某些云上有动态基础架构 - 意味着偶尔创建和销毁的服务器("短暂的服务器"),通常是为了满足一些不断变化的负载,那么consul是一个很好的工具:这些服务器可以在启动时从领事处启动并读取其配置。
理想情况下,在此用例中,您将启动根据您的需求自定义的预烘焙服务器。例如,您的服务器在启动时需要有一个consul。您可以使用Ansible将领事预先烘焙到服务器中。
所以过程是这样的: