自动运维工具调查

根据主流运维工具的一些调查

Posted by zhiyuan.ma on September 21, 2017

自动运维工具调查

主流有PuppetChefAnsibleSaltStack

一、语言选择

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二次开发即可。