從執行的模型來比較Sat、AnSibluppetPalletOps
本章里我們使用的配置管理系統有很多的相似之處,在客戶端節點運行代碼的方式有很多的不同:
對于Puppet來說,一個Puppet代理在Puppet服務器上注冊同時打開一個通信通道來獲取命令。這個過程通常會定期運行,一般每半個小時一次。
30分鐘不算快。你也可以配置一個更短的運行時間間隔。不管什么頻率運行,Puppet主要使用拉模型。客戶端必須檢查之后才知道那些修改可以用了。】
Ansible通過SSH來推送期望的修改。這是推模式。
Salt使用的是推模式,但是實現的方式不同。它利用了ZeroMQ消息服務器,客戶端連接到消息服務器,監聽修改的通知。工作原理和Puppet有點像,但是速度更快。
哪種方式最好一直是開發者社區爭執的一個話題。消息隊列架構的支持者認為速度很重要,而且它的速度更快。SSH方法的支持者認為簡單更加重要而且它足夠快。我個人傾向于后面的觀點。事情總會出簍子,復雜度增加時出問題的概率就更大。