自動動態(tài)管理就是實現(xiàn)應(yīng)用程序組件部署與重新部署的自動化,從而正確地建立和維護組件間的鏈接與應(yīng)用程序間的鏈接。在實踐中,自動動態(tài)管理將涉及兩個基本要素:
1. 部署應(yīng)用程序組件,其中包括了軟件組件和數(shù)據(jù)庫組件;
2. 創(chuàng)建允許組件間通信的網(wǎng)絡(luò)連接,以及至用戶與其他應(yīng)用程序的連接。
雖然這個定義也適用于所有不同的自動動態(tài)管理選項和工具,但在方法上是存在著鮮明的差異的。
混合云計算應(yīng)用:集成就是簡單的自動動態(tài)管理
最簡單的自動動態(tài)管理形式就是集成,它可在云計算部署的組件和固定應(yīng)用程序與資源之間建立連接。對于一些混合云計算的應(yīng)用程序來說,云計算組件與數(shù)據(jù)中心的集成可能就是唯一所需的自動動態(tài)管理過程。
從主要的軟件供應(yīng)商到第三方軟件供應(yīng)商,他們都提供了大量用于實現(xiàn)云計算集成功能的商業(yè)工具,而在混合云計算配置中,還有用于集成具體應(yīng)用程序的預(yù)包裝“配方”。請與供應(yīng)商確認,以確保你的應(yīng)用程序需求都包括在內(nèi)。
開發(fā)運行自動動態(tài)管理工具采用基于腳本程序的方法
大部分的全功能云計算自動動態(tài)管理工具都屬于開發(fā)運行產(chǎn)品的類別。開發(fā)運行都是基于應(yīng)用程序開發(fā)人員了解應(yīng)用程序必須如何被托管以及如何連接組件的原則的。在開發(fā)過程中,開發(fā)人員將創(chuàng)建這個部署/連接的一個開發(fā)運行“圖” ,而這個圖可在有需要的時候用于部署應(yīng)用程序。
開發(fā)運行工具是程序性的或基于腳本程序的;在最簡單的形式中,一個開發(fā)運行 程序或腳本程序可能就是一個運營團隊成員用于輸入以部署和連接應(yīng)用程序的一個命令集。諸如IP地址這樣只在部署過程中制定的信息是給出符號名稱的,這是在托管組件時被填入的信息,而這些信息可在之后創(chuàng)建組件連接時被引用。
基于腳本程序的工具具有易于從手動過程中得到優(yōu)點。它們最大的缺點是,它們描述的是過程而不是結(jié)果;一個腳本程序必須為可能遇到的一切用例提供指令。一些用戶報告說,維護開發(fā)運行腳本程序的難度要比維護軟件更高,因為單單閱讀開發(fā)運行腳本程序是很難了解期望的結(jié)果是什么。如果使用了基于腳本程序的自動動態(tài)管理功能,那么真實記錄正在完成的工作以及注意任何基本程序不適合處理的條件是非常重要的。
目前市場上有開源的和商業(yè)的開發(fā)運行工具,因此研究最適合你的公司和開發(fā)團隊的工具是非常有必要的。
基于模式的方法證明了云計算供應(yīng)商
基于腳本程序的自動動態(tài)管理是虛擬化中的規(guī)則,但是網(wǎng)絡(luò)運營商和云計算供應(yīng)商還是鐘意于使用基于模式的方法的,因為它們提供了更好的服務(wù)生命周期管理。在基于模式的自動動態(tài)管理中,你描述了你的工作架構(gòu)、創(chuàng)建了約束(例如運行了哪些組件和連接的類型),以及軟件開發(fā)了你定義的結(jié)構(gòu)。這些模式通常是易讀易懂的,因為它們定義了你試圖的實現(xiàn)而不是采用開發(fā)運行方法所需經(jīng)歷的步驟。IT部門可以使用這些模式來重新使用失敗的應(yīng)用程序元素,撤下應(yīng)用程序或改變生命周期——如果使用了基于腳本程序的自動動態(tài)管理,那么所有這些都需要有它們自己獨立的腳本程序。
但是,由于用戶和運營商的不同需求,基于腳本程序和基于模式的混合方法已在云計算中變得相當(dāng)?shù)钠胀ā@纾贠penStack中,基于模式的方法可被用于應(yīng)用程序以開發(fā)一系列的子網(wǎng),子網(wǎng)的組件是托管的并被連接入更高級別的網(wǎng)絡(luò)。OpenStack Neutron是OpenStack的網(wǎng)絡(luò)部分,它定義了網(wǎng)絡(luò)的模式,但是如果要部署應(yīng)用程序和數(shù)據(jù)庫組件,那么就需要使用到其他的OpenStack服務(wù)了。一個OpenStack開發(fā)運行工具可能會創(chuàng)建Neutron網(wǎng)絡(luò)模式并在之后通過使用計算資源或DBMS/塊存儲部署組件來把組件部署在已定義好的網(wǎng)絡(luò)單元中。
實現(xiàn)云計算自動動態(tài)管理的步進式方法
無論你的公司選擇使用何種工具,實施云計算自動動態(tài)管理的第一步就是完成一個完整的手動應(yīng)用程序部署工作并仔細地記錄其中的每個步驟。特別重要的一點是,要標記出所有之后可能用到的每一個步驟的結(jié)果的所在——例如一個組件的地址信息。這將建立自動動態(tài)管理希望完成的基線,同時就可以使用之前手工記錄的步驟來開發(fā)腳本程序或模式。
從手工步驟開始以一個變量把之前步驟的結(jié)果取代每一個參考就形成了一個基于腳本程序的自動動態(tài)管理過程。這樣做會使自動動態(tài)管理腳本程序更具通用性。這樣做聽上去似乎很復(fù)雜,但這與為網(wǎng)頁控制開發(fā)JavaScript程序的差別很小。
基于模式的自動動態(tài)管理要求根據(jù)他們的目標對步驟進行分組——例如,之前定義的子網(wǎng)的主機組件。這些分組必須與現(xiàn)在使用的模式相關(guān)聯(lián)。
測試是云計算自動動態(tài)管理的最后一個步驟。你的自動動態(tài)管理腳本程序或模式在被激活的狀態(tài)下,應(yīng)當(dāng)部署一個能夠正常運行的軟件系統(tǒng)。對于任何與你手工過程有偏差的細節(jié),都應(yīng)進行審查,以確保你的自動動態(tài)管理中沒有錯誤。請務(wù)必同樣記錄好你的測試/驗證步驟,因為云計算自動動態(tài)管理是應(yīng)用程序生命周期管理中一個關(guān)鍵的單元,同樣它也是確保支持你的業(yè)務(wù)的應(yīng)用程序穩(wěn)定運行的關(guān)鍵所在。請正確地開發(fā)和維護一個完整的、可審計的軟件生命周期過程,否則你之后一定感到后悔的。