手把手教你使用 Rational 工具開發云應用程序
如今,云計算將應用程序開發、業務和系統操作結合得更緊密。這意味著,軟件開發人員需要比以前更好地了解業務流程和系統操作。這也意味著,業務利益相關者和操作人員必須消費更多自定義軟件。
云計算的承諾是,集中化、標準化和自動化將簡化用戶體驗并降低成本。然而,要實現這些好處,就需要一種新的思維方式,其中,開發人員必須考慮到業務流程和系統操作,以構建和部署最有效的云應用程序。
本文有意涵蓋較廣泛的范圍,包括應用程序開發和操作的各個方面,并提供在該過程中有幫助的 Rational 工具的示例。
云計算最有趣的方面之一是,它實現了新的工具和協作水平。它支持團隊人員對工作產品(尤其是映像)的重用。例如,有一個操作系統專家建立了一個基礎的操作系統映像,軟件開發人員在它上面添加一個軟件產品映象,業務用戶使用該映像,獲取適合其企業需求的映像快照。本文將重點討論如何可以使用此工具在云上開發應用程序。
公共云業務場景
讓我們從討論驅動云計算的一些用例范圍開始:
- 云計算的許多優點可能對于獨立的用例更重要。
- 基礎架構的虛擬化也帶來了大量新的可能性,以及各種在傳統計算中完全沒有用過的新 IT 資產。
- 在公共 Internet 環境中的操作提供了新的協作可能性,而在同一時間,又帶來了新的安全挑戰。
若干操作者在云用例中一起協作:
- 云服務開發人員開發軟件和其他資產,供消費者在云上消費。
- 云服務消費者請求云資源,并批準業務開支。云服務消費者可能包括用戶、管理員和業務管理人員。
- 云服務提供商向消費者提供云服務。
考慮一個概念證明 (POC) 用例。企業在決定使用新技術之前,通常會對其建立概念證明或試點研究。企業往往會聘請外部 IT 顧問來完成該工作,IT 顧問一般會承受很大壓力,他們要在很短的時間內交付的功能數量是具有挑戰性的。通常情況下,如果顧問在這個領域中沒有經驗,他將無法提供所需要的信息。
可以在不同作業中反復使用的資產是至關重要的。云計算可以直接重用已保存的映像,并且讓顧問和企業用戶可以輕松地共享相同的網絡空間,從而有助于更容易實現這一點。與其讓顧問到哪里都帶著物理計算機,或者在她的筆記本電腦上安裝所有軟件,或者試圖在很短的時間內在企業現場安裝所有軟件,這樣做會容易得多。
該場景的用例圖如圖 1 所示。
圖 1. 在云上的概念證明的用例圖
為了讓企業能夠添加顧問帳戶,在提供用戶管理支持的公共云環境中工作是關鍵。另外,顧問可以使用自己的帳戶空間,并只需通過 HTTP 等網絡協議允許訪問。
如果企業批準一個概念證明,那么它可能想長期使用 POC。它可以保存映像,并在虛擬局域網上啟動一個實例,從而將 POC 遷移到企業的私有網絡中。
表 1 對傳統的概念證明和在云上的概念證明進行了比較。
表 1. 在傳統設置中的 POC 和在云上的 POC 比較
對于該用例,云的主要優點是彈性的可擴展性、從 Internet 接入、能夠保存和重用項目資產。
#p#
IBM SmartCloud Enterprise 背景
IBM SmartCloud Enterprise 是一個公共基礎架構即服務 (IaaS) 云,這是一個適合于企業的獨特云產品。云使用戶能夠創建和管理使用 Linux? 和 Windows? 操作系統的 x86 虛擬機,并管理相關的資源,包括映像、存儲卷和 IP 地址。
IBM 的云與眾不同之處是,它包括廣泛的服務和產品、自助服務功能、支持協作的委托管理模式、適合企業的業務支持服務,以及一個由卓越映像開發中心創建的虛擬機映像的大型目錄。(若您包括 IBM PureSystems? 產品家族及相應服務,您甚至還能通過預構建的***實踐虛擬模式采用更多成熟的配置管理和部署專業知識。)
以編程方式與 SmartCloud Enterprise 通信的一種基本方法。它包含許多功能,其中有一個自助服務用戶界面,可以用來管理實例、映像、存儲和 IP 地址。為方便起見,還提供包裝了 REST 服務的命令行 API 和 Java? API 客戶端。在資產目錄中向注冊用戶免費提供了 Java API 客戶端和命令行工具所需要的下載。命令行很方便,可以使熟練的用戶提高操作速度,但如果您需要創建一個可以解釋 API 輸出的應用程序,那么您就需要編寫一個程序。
您可以使用 IBM SmartCloud Enterprise API 添加額外的功能,或將云管理集成到其它應用程序。對于 Java? 程序員來說,最便捷的選擇將是 Java API。使用其他語言的開發人員可以使用 REST API。
大多數工具都是通過 API 與云集成。
云項目的任務、工具、功能和可交付物
本節描述了應用程序生命周期管理 (ALM) 工具及其云計算連接。最近的趨勢是,將這些工具集成到云環境。這樣,它們就可以在云上運行,以某種方式利用云計算,或可用于開發面向云的應用程序,這一切都在云環境空間中進行。
ALM 工具幫助規劃、設計、協作、開發、測試、交付和維護的軟件項目。若您擴展到多人軟件項目,配備了要部署到應用程序服務器的構建構件,您就會發現自己需要一些工具的幫助。我們要談討的工具包括以下類型:
需求管理工具:記錄和跟蹤功能性及非功能性需求。例如 Rational Requirements Composer。
規劃工具:規劃項目所需的時間和資源,幫助您跟蹤該項目的執行。例如 Microsoft Project 和 IBM Rational Team Concert。
源代碼存儲庫:集中管理代碼。例如開源工具 CVS 和 Subversion,還有 Microsoft Visual Source Safe 和 IBM Rational Team Concert 等商用工具。
集成開發環境 (IDE):編輯和調試源代碼。例如開源的 Eclipse IDE 以及 IBM Rational Application Developer 和 Microsoft Visual Studio 等商用工具。
測試工具:協助執行和跟蹤功能測試、性能測試、集成測試、全球化測試及回歸測試。
缺陷跟蹤系統:跟蹤缺陷。
票據跟蹤系統:用于客戶支持。在開源項目和云項目中,在許多情況下都用論壇取代。
當項目規模已超出單人范圍時,最根本的需要可能是在一個中央存儲庫中共享源代碼。Concurrent Versions System (CVS) 是一個開源的源代碼管理系統,多年來一直很流行。它是可伸縮的,并且可以通過插件的形式在集成開發環境中方便地使用。最近,一些改進的開源源代碼管理系統,特別是 Subversion,已經開始完善并取代 CVS。商用替代方案可提供的功能遠遠不止這些,其中一個示例是 IBM Rational Team Concert (RTC)。云計算對于源代碼管理工具的主要影響是,它們可以方便地在云上運行。
當您將源代碼保存到中央存儲庫之后,您需要將它構建成可部署的構件。Ant 或 Maven 等開源構建工具可以完成該工作。Maven 在范圍更廣的生命周期事件方面具有更廣泛的功能。而商用構建服務器 IBM Rational Build Forge 甚至提供了更強大的特性集。IBM Cloud 在企業目錄中提供了一個 Build Forge 映像。
除了源代碼編譯,您還應該嘗試單元測試、部署到運行時系統和功能性測試等流程的自動化。隨著您的應用程序包括越來越多組件(如關系數據庫、應用程序服務器和 Hadoop),這個任務的挑戰性也越來越大。這種類型工具的新發展之一是可以自動設置并拆除在云上的復合環境,在 Build Forge 中尤其如此。
為了實現優質代碼開發,理想情況下,開發人員應充分測試自己的代碼,并且測試人員應確認它是否正常工作。單元測試就是該流程的起點。JUnit 是一個簡單而有用的工具,以推動單元測試,并可以提供有用的報告,但是,若代碼與更多不同的系統集成,執行單元測試可能會很難。Mock 對象可以用來表示這些依賴關系。開源的 EasyMock 工具對于這種情況非常有用。
功能性驗證測試意味著,執行測試,以驗證代碼可以根據設計在運營環境中執行所有不同的功能。通過在 Web 瀏覽器中觀察不同的屏幕,可以手動完成該工作。理想情況下,通過記錄用戶所執行的步驟,應該可以自動該過程。IBM Rational Functional Tester (RFT) 是可以完成該工作的一個商用產品。
云可以支持概念證明、試點、beta 程序和咨詢項目的不同可交付物集。在傳統的環境中,企業網絡的限制(尤其是安全性)往往要求顧問使用他們不熟悉的工具。這可能會導致記錄部署步驟和***實踐的書面報告對于客戶來說不易于使用。
在其他情況下,在項目已經 “完成” 了很長之間之后,顧問還要提供***支持。云支持一組不同的可交付物,包括虛擬機映像、部署拓撲結構模型和軟件捆綁,如表 2 所示。
表 2. 傳統項目構件與云項目構件的對比
利用 Rational Asset Manager 進行目錄文檔管理
文檔管理系統管理文件,所以文件可以被存儲在一個中央位置,實現方便的訪問、索引和搜索。現代文檔管理系統讓用戶可以添加自己的文檔注釋,并具備諸如標記和評分等 Web 2.0 特性。它們在文檔管理中支持基于角色的訪問管理,可以放置圍繞文檔工作流,以確保文檔在發布前經過審查和批準。
在 IBM SmartCloud Enterprise 中,文檔管理是由 IBM Rational Asset Manager (RAM) 負責。這是特別合適的,因為在云中的文件大多是虛擬機映像,它們本身就是軟件資產。Rational Asset Manager 是標準的 IBM 產品,您也可以在自己的項目中使用它。在映像目錄中有一個 Rational Asset Manager 條目,讓您可以啟動自己的服務器。
SmartCloud Enterprise 目錄中的所有映像都擁有公共可見的映象資產。當您將虛擬機保存為 SmartCloud Enterprise 中一個映像時,將創建一個映象資產。您可以添加 “入門” 等文檔和屏幕截圖來幫助您的映像用戶,并且 Rational Asset Manager 也支持論壇特性,讓您的用戶可以提問。
最初,您的映象資產將具有私有可見性。也就是說,它只對您可見。但是,您還可以讓它對企業中的其他成員可見。
Rational Asset Manager 還支持其他類型的文檔,如文本文檔。SmartCloud Enterprise 的大部分支持文檔都被存儲為 Rational Asset Manager 的文檔資產。當在 Rational Asset Manager 中創建一個新文檔時,您會看到圖 2 所示的畫面。
圖 2. 在 Rational Asset Manager 中創建文檔
您可以添加名稱、簡短描述、詳細描述和附件。您可以配置一個審批工作流,在使文檔對其他人可見之前自動執行該工作流。審批工作流的示例步驟如圖 3 所示。
圖 3. 審查提交給 Rational Asset Manager 的文檔
在本例中,有兩個步驟:申請審查,然后接受/拒絕文檔。
#p#
端到端開發場景
現在我們說明如何在云上設置 Rational Software Architect,并將虛擬機保存為可以用作一個標準開發環境的映像。換句話說,我們將在一個端到端開發場景中演示如何使用 Rational 工具和 SmartCloud Enterprise。
Rational Software Architect 是一個面向 Java、J2EE、Web 2.0 和其他平臺的集成開發環境。SmartCloud Enterprise 在目錄中提供了 Rational Application Developer 的映像。此外,Rational Application Developer 有一個云插件,讓您在云上配置和集成 WebSphere? Application Server 等服務器。這樣做可以讓您實現以下場景:
- 在目錄中找到 Rational Application Developer Virtual Image。
- 選擇虛擬機屬性。
- 利用 NX Client 設置虛擬桌面連接。
- 在遠程桌面上啟動 Rational Application Developer。
- 添加新的 WebSphere 云服務器。
- 設置云憑據。
- 在云上為 WebSphere 請求一個虛擬機。
映像開發
首先,在目錄中找到 Rational Software Architect,并配置一個實例。
使用 NX Client 遠程登錄到 Rational Software Architect。NX 遠程桌面技術依賴于 NX Server 和 NX Client。NX Server 可由 NoMachine 以商用方式或開源分發方式提供。SmartCloud Enterprise 上的一些映像使用 FreeNX 開源軟件包。NX Server 負責用戶身份驗證和會話激活。第三個組件是 NX Node。nxservice 和相關的命令并不是守護程序,需要由 SSH 服務器激活。
配置文件通常位于目錄 /etc/nxserver 中,該目錄中還包括身份驗證所需要的密鑰。如果您遇到麻煩,node.cfg 文件中的 NX_LOG_LEVEL 是一個有用的設置。您可以針對 Server-Client communication 將它設置為 4。在 node.cfg 中也配置了日志文件的位置,默認設置為 /var/log/nxserver.log。
可以從 NoMachine 網站免費下載 NX Client。安裝后,導入并保存您的 SSH 密鑰(由 PuTTY 取消轉換),在 Server 字段中設置虛擬機的 IP 或主機名。配置屏幕如圖 4 所示。
圖 4. NX 客戶端連接向導
客戶端配置用戶界面讓您選擇桌面,如 KDE 或 GNOME。這里可能會產生錯誤,如果您在身份驗證后無法建立會話,您可以嘗試另一個值。客戶端配置和會話文件保存在用戶的 .nx 目錄(在 Windows 上是 C:Documents and SettingsAdministrator.nx)。如果出現錯誤,請檢查會話目錄,該目錄也在 .nx 下面。
在您已經導入密鑰并輸入主機名稱或 IP 地址之后,使用您的用戶名和密碼登錄。圖 5 顯示了通過 NX Client Remote Session 連接到 SmartCloud Enterprise 上的 Rational Software Architect Desktop。
圖 5. 通過 NX Client Remote Session 連接到 SmartCloud Enterprise 上的 Rational Software Architect Desktop
您可以從 下載 Rational Team Concert 和 Rational Asset Manager 客戶端,并使用 Install Manager 安裝它。
安裝完畢后,保存映像。使映像可以用作標準開發客戶端的***一步是,在 SmartCloud Enterprise 自助服務用戶界面中將可見性從 private 修改為 enterprise。如圖 6 所示。
圖 6. Rational Software Architect 映象的共享可見性
現在,您已準好讓開發團隊的其他成員開始使用標準開發環境。
項目管理
除了源代碼管理之外,Rational Team Concert 也是一個全功能的開發協作工具,支持 Agile 項目管理、構建服務器和缺陷管理。SmartCloud Enterprise 目錄中提供了 Rational Team Concert 映象。Rational Team Concert 支持瀏覽器、Eclipse 和 Microsoft Visual Studio 的客戶端。Rational Team Concert 支持項目管理員、項目負責人和項目團隊成員等不同角色,通過委托管理的方式支持多個項目和團隊。
#p#
試用 Rational Team Concert:
在目錄中搜索它,然后單擊 Start an instance of your image 鏈接。要訪問 Web 用戶界面,可以使用 URL https://hostname/jazz/web/。
您會看到提示,要求輸入在配置虛擬機實例時所輸入的管理密碼。
登錄后,顯示一條消息,執行 Jazz Team Server 安裝。請遵循 Fast Path。
有兩個面向開發人員的嵌入式許可,您可以在安裝過程中分配它們。在用戶注冊表處選擇 Tomcat User Database。
導航到 Project Management Area。在開始時,這里沒有項目。單擊鏈接轉到 Project Area Management 部分。您看到的屏幕應該與圖 7 類似。
圖 7. Rational Team Concert Project Areas Management 部分
單擊 Create Project Area。輸入項目的名稱、摘要和描述。
單擊 Deploy predefined process templates 鏈接。
使用 User Management 部分將用戶添加到 Rational Team Concert,如圖 8 所示。在您創建了用戶之后,將它們添加到項目。
圖 8. Rational Team Concert 中 User Management 部分的屏幕截屏
在 Rational Team Concert 中配置電子郵件設置:
設置電子郵件服務器,然后導航到 Server > Configuration > E-mail Settings 并輸入電子郵件服務器的值,如圖 9 所示。
圖 9. Rational Team Concert E-mail Settings 配置
將 Enable E-mail Notification 設置為 true。輸入 localhost 作為 SMTP 服務器。對于 E-Mail From Address,使用服務器的完全限定的域名作為電子郵件的***一部分,例如,idcuser@vhost029put。
單擊 Save。
添加一個用戶:
導航至 Project Management > Project Name。
在 Members 標題下面,將用戶添加到項目。為了生成一個邀請,鼠標懸浮在包含成員的行上,并單擊圖標 Invite to Join Team,只有將鼠標懸浮在它上面才能看見該圖標。您應該看到如圖 10 所示的 Invite to Join Team 窗口。
圖 10. Rational Team Concert 團隊成員邀請
Web 用戶界面可用于多種用途,但您應該將 Rational Team Concert Eclipse 客戶端用作一個開發工具,或用于管理 Rational Team Concert。
結束語
我們希望通過向您展示如何在應用程序生命周期管理工具的幫助下擴大開發流程的范圍,您可以實現集中化、標準化和自動化等好處,這些都是云環境可以向您的開發工作提供的好處。