運維案例:Puppet如何成為數據中心擴張的關鍵
電子郵件營銷公司Constant Contact表示,它選擇使用Puppet實驗室的Puppet配置管理和自動化框架,以助其在兩年內將服務器數量由數百臺提升至數千臺的規模。
如果一切按計劃進行,這種趨勢將繼續下去,因為公司在不斷成長,還會不斷添加卡桑德拉(Cassandra)分布式數據庫集群等新的應用。
“我們預計我們的服務器容量每六個月會增長三分之一,”Mark Schena說到。他是Constant Contact公司系統自動化部門的經理。“這不只是我們的樂觀估計(而是將要實際發生的事)。”
該公司兩年前開始研究開放源代碼的配置管理工具,當時他們已經意識到手動過程無法跟上公司的增長步伐。除Puppet外,它還考慮了較為古老的Cfengine 和Capistrano,以及較新的Opscode Chef。Schena說,當時的Opscode Chef尚不成熟。
Schena說,除了Chef尚不成熟之外,Constant Contact公司傾向于Puppet語言的原因還在于它的簡單。Puppet支持更多平臺,包括傳統的Unix簇系統如Solaris;而當時的Chef只能在有限的幾個Linux發現版上運行。此外,Schena說,他感覺使用Puppet創建依賴映射圖更加容易,更能保證程序以正確的順序運行。
完全地“puppet化”
Schena表示,如今,Constant Contact所有的產品服務器都已經“Puppet化”了,這意味著所有的改變都是通過客戶端運行的代理程序生效。Puppet“配置單(Manifest)”由中央Puppet“主服務器(Master)”維護,可通過客戶端的代理程序修改。
同時,Puppet的使用也幫助Constant Contact公司建立了DevOps式的開發環境——這是一種敏捷開發(Agile Development)方法的演變,強調快速地代碼發布、配置管理、自動化和版本控制,加強了開發者和項目組之間的交流。
傳統的概念如“開發”、“進度”、“質量保證(QA)”和“產品”等“對我從不適用”,Schena如此說到。在傳統模型下,開發者獨立于項目組,艱苦開發數月,再將成果送往質量保證和產品部門。然后就是,“祈禱好運,希望代碼能正常工作。”
在DevOps式的工作環境中,“我們所有人最開始都會參與其中,所有的工作都通過Puppet進行”,最后完成版本控制,以便于一旦發生問題,還有可能恢復到出問題之前的狀態。
最后,Schena報告說,使用Puppet并遵守DevOps原則,能幫助減少員工人數、新產品交付時間,并能使開發工作更加順利。
配置管理與云計算
一般來說,配置管理工具會受到熱烈的歡迎。
Bob Plankers是中西部規模較大的一所大學的系統管理員。他說,在改用紅帽企業版Linux系統第六版(RHEL 6)時,他采用了Cfengine-3軟件。他的許多同行業也都這么做。
“我們之前就一直想這么做,(改用RHEL6)正好是一個這么做的好時機,因為你可以從頭開始,而不用對已有系統進行轉換,”Plankers說。
Plankers說,在他的工作中,Cfengine和配置管理軟件所要面對的問題在很大程度上就是一份文件。因為所有的修改都是通過配置管理工具完成的,所以要捕捉到配置的改動很容易。
“管理層多年來一直試圖解決這個文件問題,要求我們將所做的一切都記錄到文檔中,”他說。“于是我們的所有服務器都有了wiki,而且我們也喜愛我們的wiki,但問題是這些wiki就是權威的了嗎?不是。”
此外,隨著IT產業向云計算邁進,Plankers預測配置管理工具將會更加流行。
“使用虛擬化技術后,剩下的就是硬件和整合問題,但是對于云計算,關鍵問題在于數據處理(process),”他說。結合了云計算技術后,配置管理系統成為“節省時間的利器,和一種更有效地使用云計算的方式。”
原文:http://www.searchsv.com.cn/showcontent_46675.htm
【編輯推薦】