技術選擇 – 我們爲什麼不選擇Puppet?

我們是Puppet及相關係統如Chef系統的大粉絲,我們也推薦客戶使用這些系統,因爲這些系統對於現今的運維開發DevOps非常有用,這些則是大型系統所需的功能強大的自動化工具。

然而,我們公司內部不使用Puppet開展客戶支持工作,雖然該工具很有用,也很強大,而且之於很多我們經常性用到的東西來說很理想,如自動安裝,升級等,我們之所以不使用該工具,是因爲當有很多客戶或很多用戶一併使用該系統時,該工具顯得不夠安全。至今爲止,還不能完全保證使用該工具是絕對安全的,而且,在使用後期還可能帶來嚴重問題,若您想對此問題有更多的瞭解,您需要知道Puppet到底是什麼?它是如何工作的?

Puppet是一款描述性的終端狀態系統,而並非像很多人所想象的真的是一個安裝工具。它會把系統改變成經描述的終端狀態,做一些必須的事情,如解決依賴性等。所以,並不像人們所習慣的那種程式系統,它是描述狀態的一個機器。這對終端服務器的影響會有很大區別。從本質上來說,就像一個守護進程,會進入中心繫統進行檢測,發現異常時,會更改配置狀態,如刪除MySQL、刪除數據、更改防火牆等等。

Puppet是採用自己的語言進行配置的,通常存放在模板中,繼承了一些屬性,所以,功能強大,你可以把你的所有Apache服務器採用相同的配置。但是,即使所有的服務器採用相同配置,要破壞該系統還是輕而易舉的。然而,如果使用許多系統,服務多種類型的客戶的話,系統間就會有差異,很難採用相同的模板。即使對系統作很小的變更,都會在數年後在生產系統中反應出來,對系統造成破壞。這就是爲什麼使用Puppet遠遠達不到安全要求的原因。

雖然可以採用多種方案使系統變得安全,比如說,不在服務上運行Puppet守護進程,但這其實也是不安全的,因爲,後來某個人使用系統時,可能會更改此設置,導致系統嚴重受損。 我們還可以採用100%完全分離式系統,但是,這樣的系統仍然很容易遭受破壞,容易被覆蓋,或者至少會把生產系統搞得一團糟。

我們正尋求如何能做到100%完全分離式系統安裝,這樣的話,系統構建就會很簡單,容易理解,更安全也更有效,只有在這種情況下,我們纔可能在我們的核心架構中使用Puppet。

 

                                 (Authored by Steve Mushero / ChinaNetCloud CEO & CTO  本博客英文原文請點此查看

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章