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