品高云操作系統(tǒng) V8.0 已于 2018 年 1 月正式發(fā)布,本次版本升級帶來了云數(shù)據(jù)湖、SDN v4.0、應(yīng)用交付流水線、彈性漏掃服務(wù)、全局業(yè)務(wù)標簽、彈性文件系統(tǒng)、加速設(shè)備即服務(wù)、智能化體檢、Power 架構(gòu)服務(wù)化以及微軟 Azure 公有云納管等多個頗具亮點的新功能特性。聯(lián)系客服小表妹(VX:pingaoyunzzm)了解更多。
本文將通過部署及升級博客系統(tǒng)的操作實踐,深度分析應(yīng)用交付流水線功能在實際場景中的應(yīng)用。后續(xù)我們還將邀請產(chǎn)品專家逐一對品高云操作系統(tǒng) V8.0 中的其他功能進行詳解,敬請關(guān)注。
軟件開發(fā)流程的演進
最近幾年,面對互聯(lián)網(wǎng)和移動互聯(lián)網(wǎng)業(yè)務(wù)的沖擊,市場對軟件產(chǎn)品的需求快速多變,個性化需求越來越多,產(chǎn)品版本的迭代更新速度也越來越快,傳統(tǒng)的軟件系統(tǒng)單體架構(gòu)由于缺乏敏捷性特點以無法應(yīng)對快速的市場變化。企業(yè)業(yè)務(wù)應(yīng)用系統(tǒng)的架構(gòu)逐漸向微服務(wù)架構(gòu)演進,以解決在傳統(tǒng)單體架構(gòu)模式下升級迭代慢、運維擴展性差等存在的一系列難題。同時,微服務(wù)架構(gòu)下應(yīng)用系統(tǒng)頻繁的版本升級迭代也造成了開發(fā)、測試和運維人員的工作強度不斷加大,導(dǎo)致軟件交付成為了一個令人頭痛的過程,非常耗時且風(fēng)險很高。
傳統(tǒng)的瀑布式軟件開發(fā)模式下,軟件開發(fā)組織將開發(fā)、運營和質(zhì)量保障設(shè)為各自分離的部門,開發(fā)團隊將所需要的代碼全部編寫后,再交給測試和運營部門統(tǒng)一進行集成、部署后再完成交付。在這樣的軟件交付流程下,當(dāng)某一個階段出現(xiàn)問題時都需要重新開始,無疑會進一步加重開發(fā)、測試和運維人員的工作量。但是,在當(dāng)今互聯(lián)網(wǎng)/移動互聯(lián)網(wǎng)的時代,對于每一個企業(yè)而言,軟件產(chǎn)品快速迭代的重要性不言而喻,同時,在不斷的產(chǎn)品開發(fā)迭代過程中,如何來保障產(chǎn)品質(zhì)量和提升工作效率呢?
隨著 DevOps 理論在行業(yè)內(nèi)的不斷傳播與實踐,為傳統(tǒng) IT 系統(tǒng)的微服務(wù)云化掃清了技術(shù)和文化障礙,更敏捷的軟件產(chǎn)品開發(fā)理念逐漸被業(yè)內(nèi)接受,DevOps 集文化理念、實踐和工具于一身,開發(fā)團隊與運營團隊之間更具協(xié)作性、更高效的關(guān)系,強調(diào)軟件產(chǎn)品的持續(xù)集成、部署和交付,可以提高企業(yè)高速交付應(yīng)用程序和服務(wù)的能力,與使用傳統(tǒng)軟件開發(fā)和基礎(chǔ)設(shè)施管理流程相比,能夠幫助企業(yè)更快地發(fā)展和改進產(chǎn)品,這種速度使企業(yè)能夠更好地服務(wù)其客戶,并在市場上更高效地參與競爭。
圖 1 傳統(tǒng)軟件開發(fā)流程和 DevOps 軟件開發(fā)流程
在 DevOps 模式下,開發(fā)團隊、測試團隊和運營團隊在整個生命周期(從開發(fā)、測試到部署再到交付運營)內(nèi)相互協(xié)作,項目管理和安全團隊也會與開發(fā)、測試和運營工作更緊密地結(jié)合在一起。通過 DevOps 理論可以幫助軟件產(chǎn)品團隊形成持續(xù)集成、持續(xù)部署和持續(xù)交付的敏捷開發(fā)思維,從而進一步降低開發(fā)部署風(fēng)險,加快產(chǎn)品上市速度,提高軟件產(chǎn)品發(fā)布的工作效率。
品高云應(yīng)用交付流水線
應(yīng)用交付流水線服務(wù)是軟件應(yīng)用開發(fā)到發(fā)布的持續(xù)交付系統(tǒng),為用戶提供代碼托管、環(huán)境管理、項目管理、測試管理、程序倉庫、持續(xù)交付流水線等 DevOps 服務(wù)。可以實現(xiàn)快速而可靠的交付應(yīng)用程序和基礎(chǔ)設(shè)施更新,每次更改代碼時,都可根據(jù)發(fā)布流程模型持續(xù)構(gòu)建、測試和部署。
圖 2 應(yīng)用交付流水線功能架構(gòu)圖
首先,應(yīng)用交付流水線需要利用基礎(chǔ)架構(gòu)云提供的云基礎(chǔ)設(shè)施,包括了計算、存儲和網(wǎng)絡(luò),以及由云基礎(chǔ)設(shè)施交付的負載均衡、容器服務(wù)、容器倉庫和云網(wǎng)絡(luò)等云服務(wù)。
其次,應(yīng)用交付流水線提供了應(yīng)用交付的一系列管理工具集,包括了項目管理、應(yīng)用管理、代碼托管、程序管理、構(gòu)建服務(wù)、部署服務(wù)、程序庫管理和集成工具等。
最后,基于云基礎(chǔ)設(shè)施和高級服務(wù)提供的應(yīng)用交付流水線服務(wù),即可進行軟件產(chǎn)品的編碼、編譯、測試、上線、維護等從軟件開發(fā)到交付的全流程操作。
特色能力
基于 CMDB,針對應(yīng)用部署的變量、代碼、憑證、運行環(huán)境整體管理;
企業(yè)項目研發(fā)思路,項目、應(yīng)用、程序三層應(yīng)用架構(gòu)管理;
支持編碼、編譯、測試、上線發(fā)布到維護的整體動作流水線化;
利用現(xiàn)有云設(shè)施,負載均衡、容器服務(wù)、容器倉庫、云網(wǎng)絡(luò)能力繼續(xù)沿用;
應(yīng)用場景
開發(fā)&測試的自動化部署
定時或按規(guī)則發(fā)布應(yīng)用
DevOps(開發(fā)、運維一體化)
應(yīng)用系統(tǒng)的跨平臺協(xié)同開發(fā)
功能實踐——部署及升級博客系統(tǒng)
本次功能實踐是利用應(yīng)用交付流水線服務(wù)部署及升級 WordPress 博客系統(tǒng),功能操作步驟包括了準備云資源、創(chuàng)建項目及配置環(huán)境信息、部署博客系統(tǒng)、升級博客系統(tǒng)。
一、準備云資源
構(gòu)建博客應(yīng)用需要基礎(chǔ)架構(gòu)云提供容器集群、負載均衡,容器集群是部署載體,負載均衡是建立 Web 服務(wù)器之上,用以增加吞吐量、加強網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。
首先,登錄品高云操作系統(tǒng),確認已為部署品高云博客提供了所需要的容器集群、負載均衡。
圖 3 已準備好的容器集群
圖 4 已準備好的負載均衡
二、創(chuàng)建項目,配置項目信息
在利用品高云應(yīng)用交付流水線服務(wù)部署品高云博客應(yīng)用時,首先,需要創(chuàng)建一個項目,新部署品高云博客數(shù)據(jù)該項目。
(1)通過品高云自助服務(wù)平臺登錄到品高云應(yīng)用交付流水線服務(wù)(即持續(xù)交付)中。
圖 5 應(yīng)用交付流水線服務(wù)入口頁面
(2)進入應(yīng)用交付流水線服務(wù)之后,通過項目設(shè)置功能創(chuàng)建“企業(yè) web 應(yīng)用”項目。系統(tǒng)會自動生成項目編號、所有者、創(chuàng)建人和創(chuàng)建時間。
圖 6 創(chuàng)建項目頁面
(3)項目創(chuàng)建完成后,進行設(shè)置項目的環(huán)境配置信息、憑據(jù)、代碼庫、程序倉庫、集群和負載均衡等信息。
圖 7 配置項目具體信息頁面
(4)環(huán)境配置。首先,設(shè)置應(yīng)用部署在生產(chǎn)環(huán)境還是測試環(huán)境。其次設(shè)置環(huán)境變量,我們這次功能操作的變量為數(shù)據(jù)庫變量,包括了 WORDPRESS_DB_HOST、WORDPRESS_DB_PASSWORD、WORDPRESS_DB_USER。
圖 8 設(shè)置部署環(huán)境變量
(5)憑據(jù)。即構(gòu)建項目時登錄代碼庫和程序倉庫等所需要的憑據(jù)(類似賬號和密碼),在創(chuàng)建代碼庫和程序倉庫等時,也會一同設(shè)置了登錄所需要的憑據(jù)。
(6)代碼庫。即構(gòu)建應(yīng)用時存放和程序代碼的庫,提供了一種將代碼封裝在單個文件中、允許繼承和修改這些文件并允許分發(fā)離散的功能單元的可移植方法。需要設(shè)置代碼庫名稱、代碼庫類型、代碼庫地址、代碼庫憑據(jù)和分支。代碼庫編碼自動生成。
圖 9 設(shè)置代碼庫信息
(7)程序倉庫。即可供構(gòu)建應(yīng)用使用的各種標準程序、子程序、文件以及它們的目錄等信息的有序集合。需要設(shè)置程序倉庫名稱、倉庫類型、倉庫地址和憑據(jù)。程序倉庫編碼自動生成。
圖 10 設(shè)置程序倉庫信息
(8)集群。即部署應(yīng)用所需要的計算集群。我們選擇了代碼為“cl-AB4913CF”的集群,集群名稱為“web 應(yīng)用集群”。
圖 11 設(shè)置容器集群信息
(9)負載均衡。即部署應(yīng)用所需要的負載均衡,我們選擇的負載均衡名稱為“lb-企業(yè) web 應(yīng)用”,IP 地址為 114.67.33.196. 博客部署完成后通過負載均衡即可訪問。
圖 12 設(shè)置負載均衡信息
三、部署博客系統(tǒng)
本次部署博客系統(tǒng)的架構(gòu)包括一個 ECS 集群、一個 RDS 集群和一個彈性負載均衡器。
圖 13 博客系統(tǒng)部署架構(gòu)
部署過程如下:
(1)新建博客應(yīng)用,所屬項目為“企業(yè) web 應(yīng)用”。
圖 14 新建“品高云博客”應(yīng)用
(2)關(guān)聯(lián)代碼庫
圖 15 關(guān)聯(lián)已設(shè)置好的代碼庫
(3)上傳程序包
圖 16 上傳博客程序包
(4)配置部署環(huán)境信息
圖 17 配置部署博客的環(huán)境變量
(5)創(chuàng)建交付流水線
圖 18 創(chuàng)建流水線
(6)點擊“運行”按鈕,運行 WordPress 程序。
圖 19 運行程序
程序運行成功后,通過負載均衡 IP 地址 114.67.33.196 訪問博客系統(tǒng),可以看到博客系統(tǒng)的背景為包含盆景的圖片(如下圖所示)。
圖 20 部署完成后的博客背景圖片
四、升級博客系統(tǒng)
更換博客系統(tǒng)的背景圖片,更換為品高公司大樓的圖片,并配上“品高云,懂企業(yè)的云”文字。
(1)首先,更新程序代碼,改變博客背景圖片。
圖 21 更新代碼
(2)代碼更新完成后,再一次運行程序,這是再訪問博客系統(tǒng)地址是,博客的背景已變?yōu)樽钚聢D片,博客系統(tǒng)升級完成。
圖 22 更新代碼后的博客系統(tǒng)背景圖片