自动运维工具调查
主流有
Puppet
、Chef
、Ansible
、SaltStack
一、语言选择
Puppet、Chef | Ansible、SaltStack |
---|---|
Ruby | Python |
分析:大多数熟练Python,选择后两者方便后期二次开发。
二、大规模并发速度
/|Ansible(SSH)|SaltStack(zeroMQ) :–:|:–:|:–: 测试1000台连接|85.572s|2.146s
分析:使用MQ通讯和SSH通讯,速度相差大约40倍
三、是否需要部署agent客户端
Ansible
基于SSH通讯不需用被控制集群安装客户端,仅需满足基础环境Python2.6+等。
SaltStack
基于zeroMQ通讯,需要服务端客户端支持,但其实也就一个命令pip install salt-minion
,然后在配置文件添加主控制机器的地址即可。嫌麻烦也可通过salt-ssh
组件进行统一的客户端部署,后期操作使用zeroMQ通讯。
四、学习门槛
Ansible
基本无需部署配置,更容易入门使用,但官方文档实在不太形象。
SaltStack
有大量Conf属性,但都有默认值直接开箱可用,后期再个性化具体参数,并且个人感觉官方文档的质量要好很多。
五、操作界面
Ansible
的Tower界面,网传比较难用
SaltStack
有组件salt-api
可视化UI,但个人感觉更多的是可方便查看执行任务结果返回,等结果类型操作。
分析: 日常的集群化操作更希望是原汁的命令行操作,UI仅用来日后的job查看等结果型工作,监控则使用之前的falcon
六、开源社区及第三方库丰富程度
/|Ansible|SaltStack :–:|:–:|:–: GitHub Star|25.5K|7.6K GitHUb repository|54k|7.6k StackOverFlow|1.6K|3.2K
Ansible
有专门社区Ansible Galaxy目前大概近万个贡献库,
SaltStack
有专门官方的一系列库,更新都在一两周内。
分析:基本日常使用功能都已经蕴含到,如需特殊业务需求,用python二次开发即可。