静态与动态配置配置

时间:2017-02-27 21:10:45

标签: configuration chef consul

我正在尝试为新项目找到合适的配置管理工具。我遇到了Consule。在我提出问题之前,我想引用一下consul页面说的话:

  

配置管理工具可能提供的静态配置可以移动到动态键/值存储中。这样可以在不进行慢速收敛运行的情况下更新应用程序配置。

它还说:

  

也就是说,Consul不是配置管理工具的替代品。这些工具对于设置应用程序仍然至关重要,包括Consul本身。静态配置最好由现有工具管理,而Consul可以更好地管理动态状态和发现。

来源:https://www.consul.io/intro/vs/chef-puppet.html

我的理解是consul是一个动态配置管理工具,速度很快。但我的问题是它与主厨等静态配置管理工具有什么不同?

最重要的是何时选择什么?

2 个答案:

答案 0 :(得分:2)

快或慢并不是真的那么多。 Chef / Ansible / Puppet等的问题。这些系统通常是定期运行的,例如每30分钟一次。

因此,如果一个节点发生更改(或添加/删除),则可能需要长达30分钟,直到所有其他节点都注意到这一点(无论是应用服务器和数据库服务器是否相互找到)。

领事(可能与consul-template)在这里更快,更直接。所有连接的笔记都会收到更改通知。但是,它没有提供上述配置管理工具的原语。

因此两者的结合也是有效的。厨师/木偶/ Ansible /等。安装软件包并编写大部分配置,以及Consul(或etcd)用于快速移动的部件。

答案 1 :(得分:1)

这是我在这个问题上的0.05美元: 如果您在某些云上有动态基础架构 - 意味着偶尔创建和销毁的服务器("短暂的服务器"),通常是为了满足一些不断变化的负载,那么consul是一个很好的工具:这些服务器可以在启动时从领事处启动并读取其配置。

理想情况下,在此用例中,您将启动根据您的需求自定义的预烘焙服务器。例如,您的服务器在启动时需要有一个consul。您可以使用Ansible将领事预先烘焙到服务器中。

所以过程是这样的:

  1. 您可以为您的服务器创建一个模板,其中包含您需要的所有好东西(库,应用程序,领事等等)。您可以使用Ansible这样做。这只需完成一次(每个模板)
  2. 您使用云来启动这些模板 - 当它们启动时,它们上的consul客户端从Consul集群获得一些额外的配置值(每次启动服务器时都会发生这种情况)。