(目前只是浅显的研究)

涉及到的工具:

这几个工具都是 Go 写的,开箱即用。

consul 和 etcd 提供类似的服务,还没去研究,只是看到有人提到使用时遇到不少坑,所以暂时先不去研究了。

etcd

etcd 是一个分布式的k/v存储,通过Raft保证一致性。

扩展阅读:

confd

confd 是一个轻量的配置管理工具,配合 etcdconsulredis 等后端提供配置数据,模板配置使用 toml,模板使用 Go Text 来管理配置,通过间隔周期检查后端存储里的变动,进而动态的更新配置。

扩展阅读:

考虑点和想法

目前关注这么几点:

像 confd + etcd 这类配置模式,可以做到动态更新,不过 Salt/Ansible 这些其实也可以通过定时任务执行检查diff进而直接应用或者发邮件告警。所以这块还有没有其它的特点呢?目前没有想到。

看了下 etcd(目前 V3 版本),V3 版本好像没有直接提供安全性的处理,可能需要外部来做了。

而管理方面,常规手法就是 Web 上管理,这个搜下还是有的,不过规模看起来都不大;可能更使用以静态配置管理,定期导入到 etcd 中?

实践场景方面,其实是想看看其它朋友是否有一些经验可以介绍,不过找了很久,似乎除了和官方教程一样的 nginx 配置外,没什么好的经验介绍了。

关于我们目前的配置管理,都是 salt 定期检查并且将 diff 以邮件方式告警,因为配置和进程管理这块不敢百分百相信第三方工具,毕竟像这类工具由太多人一起维护,质量上我不敢担保,所以我们一般确认 diff 后会手动更新。那么像 confd + etcd 这种模式,姑且认为工具是百分百可靠,那么人为失误导致配置更新有误怎么办呢?没有一个显式的 diff 来确认,就这么自动更新了,感觉不太安心啊……

如果看到的朋友有这块经验,欢迎邮件一起交流下:)