所以無論您是環境部署工程師還是自動化腳本開發人員,如果您想開發一套自動化環境部署的解決方案,閱讀本文將會有助於您的工作。 作者所在的專案是 IBM 基於企業級的一款龐大而複雜的雲計算戰略產品,通過為使用者提供視覺化的網路平臺介面,充分和快捷地説明客戶部署高靈活度的雲方案。 在專案開發及上線過程中,平均每四個小時會發佈一個新的安裝版本,從軟體測試到生產發佈需要超過四個環境的支援,尤其在 Demo(演示)環境每天需要部署一次,每個環境會涉及冗余鏡像服務、分散式架構、加密的 VPN 終端訪問。 而部署過程中面臨的情況是跨地域和跨時區的,部署套裝軟體發佈在美國 Austin,雲環境的資料中心在新加坡,部署人員在中國上海。 部署流程包括:部署版本套裝軟體的下載和管理、資料庫升級、動態伺服器程式部署,訪問門戶的部署,靜態訪問服務元件的部署和註冊。 如果按照傳統的手工部署,從頭到尾即使是熟練的部署工程師也需要至少兩天的時間來完成,而且人工部署會出現疏漏和錯誤的發生,經常會碰到模組的漏包情況。 所以如何搭建一套綜合全面的自動化框架,通過腳本運行的方式高效準確的完成各級環境的部署成為專案進展順利的一項重要工作。 目前此自動化框架已經上線,每天只需一小時的時間,就會準確高效地把最新版本部署到各級雲計算環境中。 這套自動化框架不僅已應用於該專案本身,其設計思路,功能模組也適用于軟體工程領域裡其他分散式、架構龐雜的專案,所以無論您是環境部署工程師還是自動化腳本開發人員,如果您想開發一套自動化環境部署的解決方案, 閱讀本文將會有助於您的工作。
這套綜合的解決方案至少包括以下優點和功能:
提高雲計算環境的部署效率 排除人為部署的疏漏和錯誤 可重用,易擴展 開發工具開源,節約成本
設計架構
首先我們要從 IBM 雲計算環境架構入手分析該環境的結構特點,這樣我們才能有針對性的設計專門的自動化框架,IBM 雲計算環境是基於 IaaS(Infrastructure as a Service 基礎架構服務)提供的雲服務,使用者通過 Web Service 在 IBM 雲環境中獲得虛擬設施及綁定的軟體服務,比如使用者可以在此平臺申請 Linux、Windows 等作業系統,還可在此平臺申請 IBM 的 Websphere、DB2 等軟體產品,這些服務都是以鏡像方式存儲在 I BM 雲環境中。
為便於讀者理解設計的脈絡,以及內部模組之間的相互聯繫,我們先來分析一下 IBM 雲計算環境的邏輯架構圖,如下圖所示:
圖 1. IBM 雲計算環境邏輯架構圖
使用者通過 Web 終端訪問 IBM 雲環境的 BSS(Business Service)平臺,向該平臺發送申請相關鏡像服務請求,比如申請一台附帶 WebSphere 的 Red Hat Linux 作業系統,該請求通過 WebSEAL 接收併發 送到 CFEP(Common Front-End Portal)處理,該請求調用對應的 REST API,把請求資訊打包成資訊流(Message)通過資訊匯流排來傳送到後臺雲伺服器(Service Provider),相應附帶 WebSphere 的 Red Hat Linux 作業系統鏡像服務產生,相關註冊資訊被存儲在對應的資料庫伺服器中。 所以 IBM 雲計算環境包括三個組服務:a. IHS Portal 服務 b. CFEP Web 和資料庫服務 c. Service Provider Web 和資料庫服務,每組服務有對應的硬體環境支撐,我們再來看一下 IBM 雲計算環境的物理架構。
圖 2. IBM 雲計算環境物理架構圖
本圖中黃色區域為 IBM 雲計算環境的前端服務配置,藍色區域是雲服務後臺配置。 其中後臺服務配置是整個雲環境的核心區,是單點固定服務單元,而前端服務可以根據業務需求進行跨區域擴展,即可以提供多台分佈于不同物理位置的服務單元。 在本文中為便於解析,把該雲環境的前端服務定為兩組硬體環境(Front end area 簡稱 FE),分佈在兩個虛擬區域網路 Vlan1,Vlan2 中,後臺服務(Service Provider area 簡稱 SP) 配置與 Vlan3 中, 合稱 BSS 平臺。
每天在 IBM 雲計算環境更新部署程式的情況是:BSS 服務是分佈在新加坡雲環境資料中心,部署發佈套裝程式檔在美國 Austin 的發佈伺服器(Austin build machine)中, 部署執行環境即自動化腳本運行環境(Single Point Execution Machine) 在中國上海。 如下圖所示:
圖 3. IBM 雲計算環境自動化部署架構圖
在該架構中進行程式部署的步驟是:
從美國 Austin 發佈伺服器,自動檢測和傳輸新發佈的部署套裝程式檔到自動化腳本運行環境(Single Point Execution Machine) 在 Single Point Execution Machine 上運行自動 化腳本執行部署 部署更新 Front end 和 Service Provider 資料庫 在 Front end 和 Service Provider Web Server 上更新部署動態應用程式 在 IHS Server 上部署靜態程式元件 重註冊程式元件 更新 Portal Web 檔 更新 Info center 資訊庫 自動化腳本執行完畢發佈部署執行日誌