Ansible / Puppet / saltstack compare

Puppet, Chef, Ansible, Salt contrast

tool Language Architecture protocol
Puppet Ruby C/S HTTP
Chef Ruby C/S HTTP
Ansible Python No Client SSH
salt Stack Python C / S (available without Client) SSH/ZMQ/RAET

Ansible or Puppet

There is reasonable, at least, is the presence of more than 3 years; no best, only the right, you say cabbage and vegetables which is best?

Generally speaking, there are two configuration management:

  1. Push mode
  2. Pull mode

There are different modes of good points, there are different usage scenarios.

Pull Mode (Puppet)

This model advocates decentralized design ideas, typical puppet. Usually multi deployment agent on each node, the timing of the node configuration information, node configuration according to the configuration information. If a configuration fails, the next time to continue trying until the end of time. This node completely regardless of the implementation of the other nodes, as one simply do their own thing.

So it is more suitable for this scenario:
the configuration take effect insensitive, do not care. You know it always takes effect, probably next minute, it could be the next hours, but no impact on you.
It does not require collaboration between nodes and nodes. This scenario is not appropriate, such as: A upgrade, and the upgrade B.
Even if a first pull information fails, the next time can make up, it is more suitable for large-scale deployment of cross-boundary.

Push mode (ansible)

Push mode has a central node for pushing the latest configuration information on each node, typical ansible. Obviously, the bottleneck in the push mode of the central node, if at the same time there are 10,000 nodes need to update the configuration, then how central node steady job is more learned.

It is more suitable for this scenario:
time-sensitive configuration to take effect, very concerned. They must be allowed to take effect, if you do not take effect immediately to take action so that they take effect.
Order valid configuration is very concerned about and sensitive. For example, to be in effect with these 10 nodes, or become effective in accordance with the order.

SaltStack或Ansible

SaltStack and Ansible is written in Python and newer, online comments is also very good.

1, the need for each machine to deploy agent (client)
a lot of choice ansible friends, because agentless this reason, feel the need to maintain the agent a lot of trouble.
The use of some relatively smooth saltstack friends, that this issue does not matter, the problem there is the probability of agent, but not high.
In fact ansible agent also supports the way, the so-called "pull" mode, that is, by a client to pull tasks to be performed.

2, large-scale concurrent ability of
contrast in this regard has been more and more, because of differences in the mechanism of realization also led saltstack in this regard is dominant. But for dozens -200 units in terms of the size of the brothers, ansible performance is acceptable.
Note: most are under preliminary investigation in the enterprise, server sizing is generally not more than 200, so this problem is not too seriously. If a machine operated over a thousand units, may still saltstack with higher efficiency.
ansible execution architecture has been optimized, the MQ-based agent mechanism, has supported relatively large scale (1000-10000 units) volume automated server operation and maintenance. Thus, in the presence of such a large-scale operation and maintenance needs of customers here can also be applied rich ansible of the Playbook.

3, the expansion of secondary development capabilities
ansible and saltstack are based on the python, and python in the development of this circle operation and maintenance acceptance is still very high, officers secondary development of relatively Ye Hao trick.
It is also these two tools relative to the puppet and chef easier acceptance reason, the two former mainstream tools are based on ruby, ruby activity is now becoming less and less, and to recruit people is not easy.
ansible and saltstack all have a good secondary development expansion capability, you can write YAML layout.

4, docking the open source community
on github, ansbile there are more than 18,300 stars, salt has more than 6700 stars.
Direct search by keyword, ansible related projects are also some more.
Although these indicators can not be any direct instructions, but many technicians will be concerned about activity they are using the technology.
In general, the more active open source projects get attention will be higher, functional and problem-solving efficiency will be higher.

Guess you like

Origin blog.csdn.net/weixin_34211761/article/details/90860100