我们前阵子在做DevOps这块的调研,应该说在中小规模的公司里,Saltstack和Ansible这两块选用的人都不少。
大家选择这两个平台所做的依据,其实上面各个答主也基本都有提到。
1、是否需要每台机器部署agent(客户端);
很多选用ansible的朋友,都是因为agentless这个原因,觉得要维护agent很麻烦。
而一些使用saltstack比较顺的朋友,觉得这个问题无所谓,agent出问题的概率有,但不高。
其实ansible也支持agent的方式,即所谓的“pull”的模式,就是通过一个客户端去拉取要执行的任务。
2、大规模并发的能力
这方面的对比已经比较多了,因为实现机制的差异,也导致saltstack在这方面是占优的。
不过对于几十台-200台规模的兄弟来讲,ansible的性能也可接受。
注:我前期调研的大多数都是中下企业,服务器规模一般不超过200台,所以对这个问题不算太看重。如果一次操作的机器过千台,可能还是用saltstack效率更高一些。
3、二次开发扩展的能力
ansible和saltstack都是基于python的,而python在运维开发这个圈子里接受度还是非常高的,二次开发的人员相对也好招。
这也是这两个工具相对于puppet和chef更容易被接受度原因,这两个曾经的主流工具都是基于ruby,而现在ruby的活跃度越来越低了,要招人也不容易。
ansible和saltstack都具备很好的二次开发扩展能力,可以写YAML编排。
4、开源社区的对接
在github上,ansbile有18300多颗星,salt有6700多颗星。
直接按关键字搜索,ansible的相关项目也更多一些。
这些指标虽然不能直接说明什么,但很多技术人员会关注自己所使用的技术的活跃度。
一般来说,越活跃的开源项目,得到的关注会更高些,功能完善和问题解决的效率也会更高。
5、学习的门槛
从第一次使用来讲,ansible的部署配置会更简单一些。
从官方文档的质量来看,saltstack就比ansible要好一些。
从国内的中文资料来说,ansbile和saltstack好像各有2-3本中文书。
这两家的国内用户组也分别在做一些技术资料翻译的工作。
6、操作界面的友好程度
试用过Ansible的Tower,但实在是不喜欢这种操作习惯,只能说勉强可用。
saltstack的没仔细用过,但看过朋友搭建的环境,感觉官方的UI还可以。
7、第三方工具的丰富程度
ansibe有一个galaxy站点:
Ansible Galaxy
这个站点集合了很多第三方开发的Role/Playbook。
salt好像没有这样的集中站点,好像得自己去github搜了。
(如果有谁知道有这样的站点,麻烦告知一下)
8、现有用户使用的规模
根据rightscale的调研报告:
Ansible在2015年有10%的用户选用,而2016年有20%的用户选用。
Saltstack在2015年有6%的用户选用,而2016年有9%的用户选用。
我们自己目前是用的Ansible,但正在结合我们自己的DevOps平台,重新给Ansible开发一套WEB UI。