下列文字稿適用於 DevOps with WebSphere® Liberty Server
視訊,其中示範如何使用 Liberty 伺服器 DevOps 及部分開放程式碼工具來開發、建置及部署應用程式。 此文字稿是視訊的分鏡腳本。 「音訊」說明旁白和標題。 「螢幕動作」說明視訊中顯示的內容。
Demo-DevOps with WebSphere Liberty Server
表 1. 標題頁面。 顯示標題,然後顯示建置、更新、測試和部署應用程式的基本概觀。
| 場景 |
音訊 |
螢幕動作 |
| 1 |
此展示將顯示如何提供使用 WebSphere Liberty Server 及一組一般開放程式碼工具來建置及部署應用程式的功能。 |
顯示標題 Demo-DevOps with WebSphere Liberty Server。 |
| 2 |
您將使用 Git 來進行來源控制,使用 WebSphere Application Server Developer Tools 來開發應用程式,並使用 Maven 來進行建置。 |
顯示 1 的影像。 使用下列選項的開發及建置應用程式
- Git
- WebSphere Developer Tools (WDT)
- Maven
|
| 3 |
您也會對正在 Liberty 中執行的 Web 應用程式進行變更,並將所做的變更從 Eclipse IDE 推送到正式作業環境。 |
顯示 2 的影像。 更新使用 WDT 的應用程式 。 |
| 4 |
您將搭配使用 Apache Maven 與 WebSphere Liberty Maven 外掛程式來執行整合測試,以驗證您的變更。 |
顯示 3 的影像。 使用 Liberty Maven 外掛程式來測試應用程式 。 |
| 5 |
此外,您也將利用 Jenkins 進行連續整合。 |
顯示 4 的影像。 使用 Jenkins的 Continuous Integration 。 |
| 6 |
您將使用 Chef,將新建置推送到正式作業環境。 Liberty 將是所有先前的 DevOps 實務範例的 Java™ Platform, Enterprise Edition 執行時期。 在這項示範中,我們將使用航空應用程式 - AcmeAir 作為範例。 它將示範可控制且重複性極高的 DevOps 實務。
|
顯示 5 的影像。 使用 Chef 的連續部署 。 |
表 2. 示範如何開發和建置應用程式
| 場景 |
音訊 |
螢幕動作 |
| 7 |
現在,我們開始第一項實務:開發和建置應用程式。 開啟 Eclipse,其中已預先安裝了 WDT。
- 我們將設定工作區喜好設定,以便與 Maven 搭配使用。
- 之後,我們將複製含有
AcmeAir 應用程式的 Git 儲存庫,請指定 Git 儲存庫 URI。
- 之後,我們將匯入一組以 Maven 為基礎的
AcmeAir 專案:這個儲存庫含有 5 個以 Maven 為基礎的專案。
- 現在,我們可以執行 Maven 建置,以建置專案並建立應用程式構件。 當完成時,請確定建置成功。
- 現在,我們可以建立一部 Liberty 伺服器,以便從 Eclipse 執行應用程式:因此,請指定 Liberty 安裝目錄。
- 此外,也請指定 Liberty 伺服器名稱。
- 之後,我們可以開啟 server.xml,配置伺服器來執行我們的
AcmeAir 應用程式。
- 首先,我們要指定
<httpEndpoint> 端點。
- 我們也將新增資料庫配置,讓它參照應用程式資料的 Derby 資料庫。
- 啟動 WebSphere Liberty 伺服器和
AcmeAir 應用程式。
- 現在,請登入及體驗應用程式。
- 您可以選取您的目的地和出發城市。 請檢查及預訂可用的機票。
|
顯示「步驟 1 開發和建置應用程式」標題。 示範顯示下列步驟,以使用 WDT 來開發和建置應用程式。
開啟 Eclipse,其中已預先安裝了 WDT。
- 設定工作區喜好設定,以便與 Maven 搭配使用。 按一下設定所有 Maven 值按鈕。
- 我們將指定
Git 儲存庫 URI 來複製含有 AcmeAir 應用程式的 Git 儲存庫。
- 匯入一組以 Maven 為基礎的
AcmeAir 專案:acmeair 儲存庫含有 5 個以 Maven 為基礎的專案。
- 現在,執行 Maven,以建置專案並建立應用程式構件。 當建置完成時,請確定其成功。
- 現在,我們可以建立 WebSphere Liberty 伺服器,以便從 Eclipse執行應用程式: 指定 Liberty 安裝目錄。
- 將伺服器命名為 AcmeAirDemo,並在其中新增 acmeair-webapp 應用程式。
- 開啟伺服器配置 server.xml 檔,以針對這項服務配置 Liberty 伺服器。
- 取代
<httpEndpoint> 元素,並新增進一步的配置。
- 新增資料庫配置,使其參照應用程式資料的 Derby 資料庫。
- 啟動 WebSphere Liberty 伺服器和
AcmeAir 應用程式。
- 按一下應用程式 URL,驗證應用程式處於作用中。 載入航班資料集,以起始設定應用程式。
- 現在
AcmeAir 已備妥可供使用。
- 登入應用程式並按一下 Flights 動作,然後在 New York 中鍵入 Leave From 及 Paris 下的 Arrive At。
- 按一下尋找航班或瀏覽航班按鈕。
- 挑選任何離境航班,並且點選它。
- 挑選任何回航航班,並且點選它。
- 按一下預訂選取航班按鈕。
|
表 3. 示範如何更新應用程式
| 場景 |
音訊 |
螢幕動作 |
| 8 |
在實務 2 中,我們將快速變更應用程式,顯示如何進行其連續交付。 為了簡化實務,我們只會對已編製索引的頁面進行極小的變更。 將部分強調顯示的內容取代為 "Welcome to Acme Air" 。 現在,在您儲存這些變更之後,即可重新整理,您會發現變更已生效。
|
顯示「步驟 2 更新應用程式」標題 示範顯示應用程式中正在更新的「索引」頁面。
|
表 4. 示範如何測試應用程式
| 場景 |
音訊 |
螢幕動作 |
| 9 |
之後,我們將利用 Maven 和 Liberty Maven 外掛程式來進行整合測試。
AcmeAir 應用程式有一個 acmeair-itests 專案,內含一些整合測試。
- 為了啟用整合測試,我們需要編輯 pom.xml 檔。 我們需要在這裡進行少量變更,但最重要的一項是,我們將啟用及配置 Liberty Maven 外掛程式,以便在執行整合測試之前啟動 Liberty 伺服器,在測試完成之後停止伺服器。
- 我們將建立一項執行配置,以進行
AcmeAir 整合測試。
- 按一下執行按鈕,以執行整合測試。 測試需要幾分鐘才能完成。 因此,它已建置成功。
- 檢查主控台輸出,看看 Liberty Maven 外掛程式是否在執行測試之前啟動伺服器,在測試之後停止伺服器。
- 您可以檢視測試報告,確定結果沒有錯誤。
- 之後,我們會將 pom.xml 變更推送至
Git,以便在 Jenkins 建置中執行 itests。
|
示範如何使用下列步驟來測試應用程式
AcmeAir 應用程式有一個 acmeair-itests 專案,內含一些整合測試。
- 編輯 acmeair-itests/pom.xml 檔,以啟動整合測試。
- 啟用 Build Helper Maven 外掛程式,以尋找可用的網路埠。
- 啟用和配置 Liberty Maven 外掛程式,以便在執行整合測試之前,啟動 Liberty 伺服器,並在測試完成之後停止伺服器。
- 啟用和配置 Maven Failsafe 外掛程式,以執行整合測試。 測試將演練應用程式的
REST API。
- 建立一項執行配置,以進行
AcmeAir 整合測試。
- 按一下執行按鈕,以執行整合測試。 測試應順利完成。
- 檢查主控台輸出,看看 Liberty Maven 外掛程式是否在執行測試之前啟動伺服器。
- 檢查主控台輸出,看看 Liberty Maven 外掛程式是否在測試之後停止伺服器。
- 檢視 target/failsafe-reports/ 目錄之下的測試報告。
- 將 pom.xml 變更推送到
Git,使 itests 能夠在 Jenkins 建置中執行。
|
表 5. 示範如何使用 Jenkins 進行連續整合
| 場景 |
音訊 |
螢幕動作 |
| 10 日 |
- 在下一個實務中,我們將利用 Jenkins 來建立和執行
AcmeAir 應用程式的建置工作。 此工作會從 Git 移出應用程式碼、編譯應用程式、執行測試,並發佈建置構件。 藉由 Schedule 中的配置,此工作每兩分鐘輪詢一次 Git 儲存庫,若有偵測到變更,就會自動啟動建置。
- 指定 Liberty 安裝目錄。
- 此外,我們也將新增一項後建置動作,然後選擇保存構件。
- 在一到兩分鐘之後,應會自動開始建置。
- 一旦建置完成並且成功,請檢查建置工作結果。 測試結果應該會指出沒有失敗。
- 切換回到 Eclipse,並確定在「索引」頁面上所做的變更。
- 切換回 Jenkins,在兩分鐘內,新的建置應會出現在建置歷程表格之下。
|
顯示「步驟 4 連續整合」標題 示範如何使用下列步驟,利用 Jenkins 進行連續整合:
- 我們將使用 Jenkins 來建立和執行
AcmeAir 應用程式的建置工作。 此工作會從 Git 移出應用程式碼、編譯應用程式、執行測試,並發佈建置構件。 藉由 Schedule 中的配置,此工作每兩分鐘輪詢一次 Git 儲存庫,若有偵測到變更,就會自動啟動建置。
- 我們將按一下新增後建置動作按鈕,並選擇保存構件。
- 在一到兩分鐘之後,應會自動開始建置。
- 一旦建置完成並且成功,請檢查建置工作結果。 acmeair-webapp-1.0-SNAPSHOT.war 檔應出現在
建置構件之下,且測試結果應會指出無失敗狀況。
- 切換回到 Eclipse,並確定在「索引」頁面上所做的變更。
- 切換至
Firefox,並前往 http://server:9080/jenkins/job/AcmeAir
tests/ 位址。 在兩分鐘內,新的建置應會出現在建置歷程表格之下。
|
表 6. 示範如何使用 Chef 進行連續部署
| 場景 |
音訊 |
螢幕動作 |
| 11 日 |
- 在最後一個實務中,我們將進行 Chef 的連續部署。
- 開啟終端機視窗。
- 建立空的錦囊妙計。
- 編輯錦囊妙計的 meta 資料檔
- 編輯秘訣檔案
- 將
AcmeAir 錦囊妙計上傳至 Chef 伺服器
- 此外,也請在 Chef 伺服器中登錄
template 節點。
- 您可以在 Chef 伺服器上配置
template 節點配置。
- 之後,您可以移入 Chef 節點。 這會導致 chef-client 指令在
template 節點上執行。 AcmeAir 應用程式應已充分部署,並在 template 節點上執行。 如果要驗證,請切換至 Firefox,並開啟 template 應用程式伺服器來檢查結果。
- 然後,只有在所有整合測試都通過之後,我們才會建立新的 Jenkins 建置工作,以便在
template 節點上呼叫 chef-client 來更新它。
- 在 Jenkins 主控台中,編輯
AcmeAir tests 工作。
- 在後建置動作之下,按一下新增後建置動作,並選擇建置其他專案。
- 在要建置的專案之下,輸入 AcmeAir-Chef。
- 要求一項
AcmeAir tests 建置,以確認 AcmeAir tests 工作會觸發 AcmeAir-Chef 工作。
我們只是示範如何使用 Liberty 和一般開放程式碼工具來演練 DevOps。 現在,您可以嘗試全部一起重複執行的完整端對端 DevOps 實務。 在此展示中,我們選擇 Chef、WDT、Maven 及 Jenkins,這些技術可與其他 DevOps 工具 (例如 uDeploy®、Puppet 等) 輕鬆交換,謝謝您觀看。
|
顯示「步驟 5 連續部署」標題 示範如何使用下列步驟,利用 Chef 進行連續部署:
- 建立錦囊妙計來部署
AcmeAir
- 開啟終端機視窗。
- 建立空的錦囊妙計。
- 編輯錦囊妙計的 meta 資料檔
- 編輯 default.rb 秘訣檔
- 將
AcmeAir 錦囊妙計上傳至 Chef 伺服器
- 引導 Chef 節點,並向 Chef 伺服器登錄
template 節點。
- 在 Chef 伺服器上配置
template 節點配置。
- 移入 Chef 節點。 執行 knife ssh name:template sudo chef-client 指令。 這會導致 chef-client 指令在
template 節點上執行。 Chef-client 會對該節點執行一組錦囊妙計。 AcmeAir 應用程式應已充分部署,並在 template 節點上執行。 如果要驗證,請切換至 Firefox,並開啟 http://template:9081/acmeair/ 位址。
- Jenkins 會自動移入 Chef 節點。 只有在所有整合測試通過之後,我們才會建立新的 Jenkins 建置工作,它會在
template 節點上呼叫 chef-client 來更新它。
- 在 Jenkins 主控台中,編輯
AcmeAir tests 工作。
- 在後建置動作之下,按一下新增後建置動作,並選擇建置其他專案。
- 在要建置的專案之下,輸入 AcmeAir-Chef。
- 藉由要求新的
AcmeAir tests 建置,來驗證 AcmeAir tests 工作會觸發 AcmeAir-Chef 工作。
|