2015-06-03 46 views
11

廚師銜接與ide What的區別是什麼?廚師銜接與ide Dif的區別

+0

你的問題是什麼?收斂性是廚師跑步的一個階段(對http.docs.chef.io進行搜索),冪等性是f(x)= f(f(x))的一個數學術語:即最終結果應該與它調用函數的次數無關,它的結果=>只做需要的東西=>不要觸及文件內容已經是預期的內容 – Tensibai

回答

27

收斂性和冪等性不是廚師特定的。它們通常歸因於配置管理理論,儘管在其他領域也有用處,特別是數學。

讓我們從更基本的,冪等的開始。我們將忽略冪等的數學用法,並將注意力集中在人們談論它時指的是什麼配置管理。即:「同一動作的多個應用程序不會對系統狀態產生副作用。」冪等操作的一個簡單的例子是mkdir -p

mkdir -p /var/lib/statedir/myapp 

不管我們有多少次運行此命令,它會導致被創建的樹。闡述冪等運算的另一種方式是,「一遍又一遍運行該工具不會在第一次後改變系統」。

現在要與收斂進行對比。一般來說,融合意味着將[人或物]帶到一起。在配置管理中,收斂意味着使系統狀態符合定義的策略。也就是說,只有在需要製作時纔會對系統進行更改。融合運營的一個簡單的例子是:

if [ ! -d /var/lib/statedir/myapp ]; then 
    mkdir -p /var/lib/statedir/myapp 
fi 

這是因爲融合我們只執行如果所需的目錄不存在,mkdir命令。我們也稱之爲「測試和修復」操作。也就是說,我們測試我們正在管理的特定事物的當前狀態,然後在特定命令或操作沒有處於該狀態時修復它。這是廚師做什麼幕後有這樣的資源:

directory '/var/lib/statedir/myapp' do 
    recursive true 
end 

我們(廚師)談論這一問題的方法是,廚師需要冪等動作記錄到系統收斂到由各種資源聲明的狀態。 Chef中的每個資源都是聲明性的,並且對資源的當前狀態進行測試,然後修復系統以匹配該資源。

爲了深入瞭解廚師如何工作的雜草,它在廚師辦公室中有一個「編譯」階段和一個「收斂」階段。在「編譯」階段,它會評估節點上的Ruby配方,並且正在查找它添加到「資源集合」的資源對象。一旦它評估了所有配方,它就會進入「收斂」階段,在該階段它遍歷資源集合,採取適當的操作將資源置於所需的狀態,從而創建用戶,寫入文件,安裝軟件包,等等。

+0

這真是一個很好的解釋!我意識到廚師的融合概念,但不是ide mp。謝謝你的表達。 :) – dextren

+0

-1。我不認爲這是一個特別明確的解釋;它使冪等性和收斂性聽起來像它們基本上是一樣的,因爲你用作這兩個概念的例子的命令在語義上是相同的。一個冪等但不收斂的命令(或收斂但不是冪等命令,如果這樣的事情甚至有意義)的例子會增加清晰度。 –