啟動和停止虛擬機是使用云計算資源的例行公事。在云中部署虛擬機有兩個基本的選項:客戶可以拷貝一個預先配置好的虛擬機鏡像(也被稱為最終版),或者他們可以按照需求裝配一個自定義的虛擬機鏡像。
要啟用一個虛擬機,首先要從云目錄中選擇一個機器鏡像。當你在部署一個跟Apache Web或者是Jboss應用服務器有關的應用時,最好選擇一個預先裝好這些組件的Linux鏡像。如果你是一個.NET程序員,最好選擇一個預先安裝并配置好開發工具的Windows操作系統。除了選擇一個安裝好必備軟件的虛擬機鏡像之外,還必須確認這些軟件是最新的并且打過補丁。一旦你選擇好了鏡像,下一步就是在云中部署這個鏡像。
完成版鏡像:最少的精力但選擇有限
使用最終版鏡像有幾大優勢。最主要的是它可以保證虛擬機的一致性。此外,以一個已有的鏡像開始可以節省很多精力和時間。終端客戶不必去關心怎么安裝程序庫或者附加的包;他們可以依靠云管理員來維護最終版鏡像。
終端用戶擁有的選項受限是這個方法的缺陷;鏡像目錄通常會包含常用的鏡像而不是一些不常用的組件集合。對于一個專業的虛擬機鏡像,你可以選擇一個最終版并且安裝所需的組件。如果一個終端用戶經常部署自定義的鏡像,那么他必須保留一個鏡像的副本,但是這就意味著用戶必須自己打補丁,從而失去了使用最終版的優勢。
考慮專業的云中實例并不是很重要的情況:你的網頁應用已經在你配置負載均衡后的環境中運行了幾周,如果你的應用突然發生了中斷,你可能會考慮為負載均衡集群增加幾臺服務器。在這種情況下,你需要在集群中運行完全相同的鏡像以保持一致性。如果你以前重做過這個鏡像,那么系統中就可能出現不同版本的組件。這種情況也會發生在一個組件在兩次部署期間發布了新版本。
最新的組件和按需裝配
每次部署新鏡像時創建自定義鏡像使終端用戶可以自己安裝所需的組件。云用戶喜歡以一個基礎系統鏡像開始,然后安裝應用程序組件(數據庫,應用服務器和web服務器)。然而,如果沒有工具的幫助,創建所需的云對于經常性的部署是不切實際的。在這種情況下,應考慮使用配置管理工具(例如Chef或者Puppet),它們允許你指定你想包含在鏡像中的組件。如果最新版本的應用和補丁對于鏡像至關重要,按需裝配它們是最好的選擇。舉例來說,如果你有一份數據庫服務器的標準配置,創建一個Chef或者Puppet腳本來創建鏡像可以保證你擁有最新版本的組件。
按需裝配還有助于在多服務器中保持一致性,因為數據庫管理員不太喜歡點對點的為一個過時的最終版鏡像打補丁。
這兩種部署云中虛擬機方法(創建最終版鏡像和創建按需迭代鏡像)并不是相互獨立的。當舉例來說,當你需要創建一個服務器集群時,你應該建立腳本來裝配一個自定義的鏡像并使它成為最終版。首先通過配置管理工具創建多個虛擬機鏡像然后使用這個鏡像創建多個虛擬機實例。在這個場景中,只要你需要為集群添加新的虛擬服務器就要保留最終版鏡像。
這里并沒有單一的途徑來在云環境中裝配和部署鏡像。最終版鏡像在以一致性為主的案例中運作良好;而裝配按需版本則可以保證你的環境中運行著最新的組件。