2012-08-16 64 views
75

我們打算使用未預先烘焙的AMI EC2實例。即當它們分離出來時,它們就是AWS Linux的裸機安裝。我們的引導過程將引入我們需要的各種安裝。 python,tomcat。我們將有3個實例和最大爲8的最小值。爲什麼人們在Amazon Cloud Formation中使用Puppet/Chef而不是僅僅使用CloudInit?

鑑於這些要求,使用Puppet/Chef是否有用而不是使用Amazon Cloud Formation(CloudInit)?

最好的我能看到的是,如果我們使用Puppet,那麼我們會有更容易審計的聲明性編程,以查看腳本發生了什麼。 CloudInit也有16k腳本大小限制,我們可能會遇到或可能不會遇到。

有沒有人從CloudInit移動到木偶或廚師的特定原因,他們可以在這裏提供回答我的問題?

+1

有些人(像我)用CloudFormation使用簡單的用戶數據腳本(由cloud-init支持)。更長的腳本可以從S3下載並通過最初的用戶數據腳本運行。 – 2012-08-16 21:56:22

+0

cloud-init是不可知的,多個雲提供商使用它。它可以在AWS,Google雲平臺和Microsoft Azure上運行。 (https://cloud-init.io/) 而AWS :: CloudFormation :: Init不是不可知的。這是亞馬遜的具體。 – 2017-05-09 07:04:57

回答

73

CloudInit有優勢嗎?是的,絕對有很多!

當然,您可以自上而下地運行一次CloudInit腳本來配置服務器。但是當您需要更改配置文件,添加用戶,更新軟件包或安裝新軟件包時會發生什麼情況?您最終將登錄到服務器或編寫腳本來完成此任務,並且不可避免地會出現不協調的服務器狀態。

CloudInit不是配置管理。如果您選擇開始使用配置管理軟件,請將雲初始化用於一項任務:引導Puppet/Chef /其他代理。

Puppet不僅幫助您自動安裝軟件包,設置ssh密鑰或調整Tomcat堆。它確保事物的狀態。當開發人員在凌晨3點對Java應用程序進行故障排除並更改Tomcat配置時,Puppet會將其更改回來。您可以快速更改所有或一組節點的Python版本,如果有人安裝了不同的版本,Puppet會將其更改回來。

當您的應用程序堆棧發生變化並開始使用時(比如RabbitMQ或Jetty)或新的RDBMS,您可以輕鬆地在數以千計的服務器上測試和部署這些更改。

使用配置管理軟件還有許多其他原因,例如後端報告,審計和安全合規性。

+14

這取決於。對於長時間運行的服務(通常是AD,DB),可能需要配置管理。但是對於其他可更換服務器而言,並不是真的;在ASG下管理的網絡服務器,hadoop或elasticsearch中的羣集節點。如果我要改變配置,我只是扔掉服務器並啓動一個新的。 – 2014-08-02 10:01:33

59

配置管理的重點在於可預測並始終如一地啓動機器。當您完全限於AWS(儘管調試CloudFormation模板爲miserable experience)時,CloudFormation和cloudinit非常棒,但使用數據中心資源和AWS,本地測試環境或開發計算機的應用程序又如何?如果你純粹在AWS中存在,我想你可以用cloudinit而不是其他任何東西,但我不相信它對於任何規模的應用程序都是現實的(例如,Netflix,使用OSS技術預先烘烤他們的AMI他們已經撰寫並向全世界發佈;詳情請參閱this video)。高度可用的應用程序是跨地區的,通常基於VPC,傾向於備份到跨越VPN的數據中心,甚至不涉及演示,暫存,測試或開發環境。作爲負責配置機器的人,我想要做的事情是重複工作或停止調試多個配置方法。

因此廚師或木偶。他們對AWS和我的數據中心一樣工作,同樣也適合我的開發機器運行Vagrant,就像他們爲我偶爾需要的演示環境一樣。我更願意從cloudinit啓動Chef或Puppet,而不是維護cloudinit和Chef或Puppet。

+1

@ U0001:修復了視頻鏈接 – Christopher 2014-10-07 16:25:57

5

對於拋棄服務器,比方說運行在自動縮放組後面,我會說cloudinit可能就足夠了。 Linux shell腳本或Windows PowerShell腳本應該可以做到。

如果您計劃管理的長時間運行的服務器(可能是廚師,木偶或碼頭工人)可能會爲您提供接受答案中提到的優勢。如果您在使用它們後看不到優勢,那麼您可能不需要該工具。

+0

我完全同意。木偶和廚師是複雜的,如果你可以簡單地通過刪除並創建一個新的服務器來替換服務器 - 那麼我實際上不鼓勵使用它們。有些場合puppet/chef很棒,但是你需要在每個場景中加重使用的額外複雜度。 – bobmarksie 2015-11-05 10:35:11

0

根據我的經驗,使用AWS提供的開箱即用GUI工具可以輕鬆完成簡單的任務,但是當您進入更復雜的事情時,您會發現存在對您的限制可以只用他們的工具。

此時,您可以停下來,或者您可以找到其他工具(如廚師或木偶),這些工具可以幫助您實現更復雜的目標以及做更簡單的事情。

您的選擇。

相關問題