使用 WebSphere CloudBurst 進行應用程式環境遷移(二)

CloudSpace發表於2010-08-20

建立初始開發模式

一旦 WebSphere CloudBurst 目錄中有了必要的指令碼包,您就可以建立一個 WebSphere CloudBurst 模式來表示前面講述的應用程式環境。

首先,建立一個模式來表示開發設定中的這個應用程式環境。為此,單擊頂部工具欄上的 Patterns 連結。因為您要部署該模式到開發環境中,所以儘量少使用計算資源。記住這一點之後,建立一個模式,部署該模式後將使整個 WebSphere Application Server 單元在一個虛擬機器中執行。

首先,單擊綠色十字建立一個新模式。當對話方塊皮膚出現時,為新模式命名並提供一段簡短描述,然後選擇模式所基於的虛擬映像。


圖 5. 新模式對話方塊
新模式對話方塊

下一步,單擊右上角的鉛筆圖示導航到新模式的 Pattern Editor。在模式編輯器中,將一個部署管理器部件從頁面左邊拖放到右邊的空白畫布上。


圖 6. 包括部署管理器部件
包括部署管理器部件

忽略部署管理器上無自定義節點的警告訊息,因為在這種情況下,您要在部署管理器部件表示的虛擬機器中構建整個單元。

在左邊的下拉選單中,選擇 Script. Packages。現在選擇您要在該模式中使用的指令碼包。除了之前建立的兩個之外,還包括:

  • 在一個虛擬機器中設定整個單元所用的一個指令碼包
  • 在單元內建立一個應用程式伺服器叢集所用的一個指令碼包

圖 7. 帶指令碼包的模式
帶指令碼包的模式

將這些指令碼包放在部署管理器部件上,可以確保它們從包含部署管理器節點的虛擬機器中執行。

指令碼包能夠結合使用您在部署期間提供的資訊和 WebSphere CloudBurst 為每個虛擬機器建立的 /etc/virtualimage.properties 檔案中的資訊成功完成其任務。

在編輯完新模式之後,單擊模式編輯器頁面右上角的 Done editing 連結。這會將您帶回到 Account Management Cluster — Development 模式的細節頁面。單擊該頁面右上角的鎖定圖片就可以鎖定模式。

現在您可以單擊 Deploy 開始部署過程了。為新虛擬系統(在我們的例子中是 “AcctMgmt Cluster — Dev”)提供一個名稱。之後,單擊 Configure virtual parts,然後單擊 Deployment manager 連結配置部署管理器部件。

另外還包括大部分模式部件常見的部署時配置資訊:

  • 虛擬機器 CPU 和記憶體分配
  • WebSphere Application Server 節點名和單元名
  • 密碼資訊

您的模式包括 4 個指令碼包,每個指令碼包根據其定義的變數都有自己的配置集。圖 8 顯示了 Create cellCreate cluster 指令碼包的配置資訊。


圖 8. 單元和叢集建立配置
單元和叢集建立配置

要建立單元,指定一個節點名字首(“AcctMgmtNode”)、要建立的節點數(2)和要建立的 IBM HTTP Server 例項數(1)。要建立 WebSphere Application Server 叢集,只需指定叢集名(“AcctMgmtCluster”)和成員名字首(“amServer”)。

您提供的其他配置資訊是供指令碼包安裝 Account Management 應用程式和為應用程式建立 DB2 資料來源使用的。


圖 9. 應用程式和資料來源配置
應用程式和資料來源配置

圖 8 和圖 9 中顯示的所有值在被 WebSphere CloudBurst 呼叫時都可用於您的指令碼。

在指定部署時配置之後,單擊 OK 開始部署過程。WebSphere CloudBurst 將您帶到虛擬系統頁面,您可以在此監控部署狀態。部署過程完成之後,虛擬系統的狀態表明它在啟動狀態。

此時,展開 Virtual machines 部分,然後展開部署管理器虛擬機器部分。在部署管理器 VM 部分下面,使用圖 10 中的 WebSphere 連結登入到 WebSphere Application Server 管理控制檯。


圖 10. 登入 WebSphere Application Server 管理控制檯
登入 WebSphere Application Server 管理控制檯

在管理控制檯中,您可以檢驗建立的配置是否正確。除了檢查 WebSphere Application Server 節點和叢集的存在之外,您還需要檢驗 DB2 資料來源和 Account Management 應用程式的正確配置。

要檢查 DB2 資料來源,展開 Resources 部分,然後展開 JDBC 部分並單擊 Data sources 連結。您應當看到我們在部署期間指定的 amDataSource


圖 11. 管理控制檯中的 DB2 資料來源
管理控制檯中的 DB2 資料來源

此外,Account Management 應用程式應出現在控制檯的企業應用程式清單中。


圖 12. 管理控制檯中的 Account Management 應用程式
管理控制檯中的 Account Management 應用程式

此時,WebSphere Application Server 環境經過完全配置,且隨時可供部署使用。

將 Account Management 環境遷移到測試環境

您對 Account Management 應用程式的開發工作現在要結束了,您可以開始測試環境了。我們為遷移提出以下目標:

  1. 自定義節點應當在其自己的主機上執行,不能與部署管理器一同使用。
  2. 應用程式二進位制檔案應當從不同的儲存庫檢索。
  3. 應當將資料來源配置為引用不同的資料庫例項。

變更過程首先需要進入模式頁面,選擇您之前建立的 Account Management Cluster — Development 模式。克隆該模式來建立一個名為 Account Management Cluster — Test 的新模式,然後導航到新模式的模式編輯器頁面。

在模式編輯器中,刪除部署管理器部件上的所有指令碼包。您要新增回一些指令碼包,但需要確保以正確的順序新增它們。

下一步,將一個自定義節點從左邊的部件列表中拖放到右邊的畫布上,通過該方法建立新拓撲。自定義節點部件計數從 0 增加到 2。

現在將指令碼包新增回部署管理器部件中。這次首先新增裝置附帶的 Add IBM HTTP Server 節點指令碼包。該指令碼包在與部署管理器相同的虛擬機器種建立一個 IBM HTTP Server,從而允許您在您的測試環境中儲存資源。最後,新增回指令碼包來安裝 Account Management 應用程式並建立必需的 DB2 資料來源。


圖 13. 新測試模式
新測試模式

WebSphere CloudBurst 以指令碼包出現在模式部件上的次序呼叫它們。在本例中,在安裝應用程式之前建立 IBM HTTP Server 例項很重要,因為它支援應用程式在其部署目標中包含伺服器,因而允許對應用程式的請求通過我們的 IBM HTTP Server 例項執行路由。

編輯尚不完整,因為您需要建立一個 WebSphere Application Server 叢集。不過在這種情況下,您不需要一個指令碼包。因為您在使用自定義節點部件,您可以利用定義叢集的能力,將其作為模式的高階選項。為此,單擊 Advanced Options 並選擇 Define clusters 選項。


圖 14. 定義一個 WebSphere Application Server 叢集
定義一個 WebSphere Application Server 叢集

選擇該選項之後,WebSphere CloudBurst 在部署該模式期間會自動建立一個或多個 WebSphere Application Server 叢集。您要提供配置資訊,告訴 WebSphere CloudBurst 您需要多少叢集,以及您希望在每個自定義節點上建立多少叢集成員。這可以在模式中完成,也可以在部署期間完成。

在配置模式使其包含 WebSphere Application Server 叢集之後,您就完成了所需的變更;單擊 Done editing 連結返回到模式細節頁面。此時,您可以選擇鎖定模式。接著準備部署。

部署與上一次有些許不同,因為您的模式包含兩個部件。在配置部署管理器部件用於部署時,您仍然需要為應用程式安裝和資料來源建立指令碼提供必需的配置。在這種情況下,更改該配置資料的值,來反映測試環境的適當值。


圖 15. 測試環境的新配置資料
測試環境的新配置資料

特別要更改應用程式二進位制檔案的位置、資料庫的使用者名稱和資料庫主機值(但是為了確保成功部署到測試環境中,您可以更改任何必要的值)。

不同於前一個部署,您不需要提供資訊來在單元中建立託管節點,因為您在模式中包含了自定義節點部件。WebSphere CloudBurst 最終會自動建立節點,並負責將它們聯合到單元中。您仍然需要提供您想建立的 WebSphere Application Cluster 相關資訊:惟一的區別在於該部署,WebSphere CloudBurst 會代替您建立叢集,包括執行該配置行為所需的指令碼包。


圖 16. 配置 WebSphere Application Server 叢集
配置 WebSphere Application Server 叢集

使用圖 16 中的值會建立一個這樣的叢集:即每個節點上包含一個成員。在本例中,您的 WebSphere Application Server 叢集會有兩個成員,因為您的模式包含兩個自定義節點部件。

在該模式下,您還需要在部署之前配置自定義節點部件。在該部件上沒有指令碼包,因為您所需要的是提供密碼資訊。單擊部署頁面上 OK 按鈕來部署模式。這又會將您帶到 Virtual Systems 頁面,部署過程完成,且虛擬系統處於啟動狀態,您可以像上次一樣登入到 WebSphere Application Server 管理控制檯。除更改的應用程式和資料來源配置之外,惟一真正的區別在於,自定義節點位於部署管理器之外的不同主機上。


圖 17. WebSphere Application Server 單元的節點清單
WebSphere Application Server 單元的節點清單

圖 17 中所示的 CloudBurstNode 和 CloudBurstNode1 節點建立自我們的模式中的兩個自定義節點部件。CloudBurstNode0 和 cbmv-112.rtp.raleigh.ibm.com-node 節點分別代表部署管理器和 IBM HTTP Server 例項。

但是,從部署環境遷移到測試環境的重點不在於其差別 — 真正的重點在於這兩個部署的最終結果是相同的。在兩種環境下,Account Management 應用程式執行於一個 WebSphere Application Server 叢集上,且該應用程式可以訪問一個 DB2 資料庫的資料來源。另外,您只需通過拖拉操作進行些許更改並提供少量部署時配置即可完成該遷移。

從一個環境到另一個環境的遷移只需幾分鐘。

繼續向質量保證環境遷移

Account Management 應用程式不會一直處在測試環境中。它的最終目標是在生產中實時執行,這樣才能在大型企業中可用,但是您不能直接從測試環境跳到生產環境。

首先,您要將已測試和驗證的 Account Management 應用程式環境遷移到一個質量保證(QA)設定中。這特別意味著要做 5 個更改:

  1. WebSphere Application Server 環境必須在 AIX® 平臺上執行。
  2. IBM HTTP Server 應當在其自己的獨立主機上執行,且不能與部署管理器連同使用。
  3. Account Management 應用程式環境應利用專用作 QA 和災難恢復目的的計算資源。
  4. 應用程式二進位制檔案應從不同的儲存庫中檢索。
  5. 應將資料來源配置為引用不同的資料庫例項。

與從開發到測試的遷移一樣,此次變更首先要克隆一個模式。作為轉換的一部分,您必須確保您的 WebSphere Application Server 環境 在 AIX 平臺上執行。傳統上,將整個應用程式環境和相關的應用程式基礎設施棧從一個平臺(在本例中為執行於 VMware 之上的 SUSE Linux®)移動到一個完全不同的平臺(執行於 PowerVM 之上的 AIX),會很複雜、耗時、且易出錯。有了 WebSphere CloudBurst,情況就有所不同了。

要重定 AIX for PowerVM 上應用程式環境的基數,只需克隆現有 Account Management Cluster — Test 模式並選擇模式要基於的一個不同映像。在模式克隆過程中在初始對話方塊皮膚中執行該操作,如圖 18 所示。


圖 18. 建立 Account Management QA 模式
建立 Account Management QA 模式

選擇 WebSphere Application Server 7.0.0.7 (PowerVM) 映像作為 QA 模式的基礎。該映像執行於 IBM PowerVM 虛擬機器監控程式平臺上,且包括一個 AIX 作業系統。在幾秒鐘之內只需幾個單擊,就可以在一個全新的作業系統上重定我們的 Account Management 應用程式環境的基數。此外,構建於模式中的所有定製都被保留,比如單元的拓撲、Account Management 應用程式的安裝和 DB2 資料來源的配置。

在建立新模式之後,進入模式編輯器介面。在這裡從部署管理器部件上刪除 Add IBM HTTP Server node 指令碼包,並將一個 IBM HTTP 伺服器部件從左邊的列表中拖放到模式畫布上。


圖 19. Account Management 叢集:QA 模式
Account Management 叢集:QA 模式

值得一提的是,在修改一個包含高階選項的模式時,可以重新設定這些高階選項。在這種情況下,從部署管理器部件上刪除指令碼包之後,Cluster configurationJVM tuning 指令碼包(因選中 Define clusters 高階選項設定而被建立)消失。要重設這些選項,只需單擊 Advanced Options 並重新選擇選項來定義叢集。

在漠視編輯器中進行了必要的更改之後,就可以準備開始部署過程了。

儘管沒有討論這一點,但每次您在 WebSphere CloudBurst 中部署一個模式時,都要以一個具體的 雲群 為目標。一個雲群是 WebSphere CloudBurst 使用的一組虛擬機器監控程式,用於託管 WebSphere CloudBurst 在部署期間建立的虛擬機器。至少需要一個雲群,不過您可以定義多個雲群,以在組織間更有效地劃分共享資源,如圖 19 所示。


圖 20. WebSphere CloudBurst 雲群
WebSphere CloudBurst 雲群

在一個特定的雲群中,所有虛擬機器監控程式必須有相同的型別(比如,所有 VMware ESX 主機或所有 PowerVM 主機)。使用為 PowerVM 平臺包裝的 WebSphere Application Server Hypervisor Edition 建立您的新模式。您需要確保部署到一個正在管理大量 PowerVM 主機的雲群中。記住這個需求之後,有一點要指出,即不僅 WebSphere CloudBurst 能管理多個雲群,一個裝置也可以管理多個雲群,而云群又反過來管理不同的虛擬機器監控程式平臺。


圖 21. 管理一個異構雲
管理一個異構雲

如圖 21 所示,WebSphere CloudBurst 有效地提取了底層基礎設施,因此在部署模式時的終端使用者體驗是相同的。要部署新模式到 PowerVM 平臺,只需選擇 QA Cloud Group,它正好是一個 PowerVM 雲群。除此之外,以完全相同的方式配置部署模式,如同上一次部署時更改應用程式和資料來源配置相關資訊一樣。


圖 22. 選擇 QA 雲群
選擇 QA 雲群

下一步,使用與部署上一個 Account Management Cluster — Test 模式類似的方式配置虛擬部件。此次部署的惟一不同在於,要指定有關應用程式和資料來源配置的不同資訊。


圖 23. QA 的應用程式和資料來源配置
QA 的應用程式和資料來源配置

如同上一個遷移步驟,更改應用程式二進位制檔案、資料庫使用者名稱和資料庫主機名值。這裡您也可以按需更改任何值。在配置部署管理器部件之後,使用必要的密碼資訊配置自定義節點部件和 IBM HTTP Server 部件(因為您將其包含為模式的一個獨立部件 )。

現在您可以部署到我們的質量保證雲;一旦虛擬系統執行起來,像之前一樣登入到 WebSphere Application Server 管理控制檯。如果您需要,可以在節點清單中確認正確的單元組成。這次您應當會看到單元中每個節點的不同主機。


圖 24. QA 環境的節點清單
QA 環境的節點清單

除了每個節點的主機不同之外,最終環境基本上相同。您仍然配置了您的 Account Management 應用程式,使其在一個 WebSphere Application Server 叢集上執行,並利用一個 DB2 資料來源。

您再次通過介面中的一個拖拉操作和小的部署時修改完成了遷移過程。且您可以按分鐘度量整個過程,而非按天(更糟糕的是,按周)度量。

演示時間!遷移到生產環境

現在該是時候將您全新的 Account Management 應用程式投入生產中供企業使用了。為此,您可以使用之前建立的同一個 Account Management Cluster — QA 模式,或如果組織流程要求,您可以只克隆它,並建立一個名稱不同的新模式。模式組成不會發生任何變化。事實上,為了將您的 Account Management 叢集環境部署到生產中,您只需要做兩個熟悉的更改:

  1. 應用程式二進位制檔案應從不同的儲存庫中檢索。
  2. 應將資料來源配置為引用不同的資料庫例項。

這意味著,只需像之前一樣在執行時更改配置資料即可。


圖 25. 將模式部署到生產中
將模式部署到生產中

這就是將應用程式環境從質量保證環境遷移到生產環境中所需做的全部工作!完成部署過程且虛擬系統啟動後,您可以像上一個部署過程那樣訪問 WebSphere Application Server 管理控制檯,且那您可以在 WebSphere CloudBurst 中管理虛擬系統,與管理部署在 VMware ESX 平臺上的虛擬系統一樣。

不僅為不同平臺建立和部署模式的終端使用者體驗是一致的,而且管理所生成的虛擬系統的體驗是一樣的,不管託管虛擬機器的基礎設施型別是什麼。

現在感覺如何?您已將一個 Account Management 應用程式從測試遷移到質量保證,最後遷移到生產環境中。每個遷移行為都只是拖放操作和部署時配置資料設定的結合。此外,每次執行遷移任務只需幾分鐘。

結束語

事實是,很少有開發人員、測試人員和管理員嚮往應用程式環境的遷移。因為這個過程通常被看作很耗時、難以發現錯誤,且時常達不到目標。

正如我們所展示的,您可以採用 WebSphere CloudBurst 提供的基於模式的方法根除一些問題(如果不是全部問題)。

WebSphere CloudBurst 模式為您提供捕獲和儲存中介軟體應用程式環境及其配置的能力。這些模式可在每次通過一些必要調整得到重複部署,因此確保得到一致的結果。此外,它還能夠快速克隆和修改一個模式的拓撲或平臺,而不影響應用程式及其配置的一致性,且您可以實現硬化和靈活性之間的完美平衡。簡言之,應用程式遷移過程不再是業務內的一個抑制劑,WebSphere CloudBurst 可以將該過程轉化為一個競爭優勢。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-671483/,如需轉載,請註明出處,否則將追究法律責任。

相關文章