張繼東 曹靖城 王猛德
1引言
移動(dòng)互聯(lián)網(wǎng)時(shí)代,傳統(tǒng)IT架構(gòu)難以響應(yīng)業(yè)務(wù)快速變化的需求。通過分析傳統(tǒng)IT架構(gòu)存在的問題,探討通過統(tǒng)一PaaS平臺(tái)構(gòu)建一體化的開發(fā)運(yùn)維體系,快速完成產(chǎn)品的開發(fā)、上線和迭代,助力業(yè)務(wù)持續(xù)創(chuàng)新和發(fā)展。
技術(shù)不斷發(fā)展,市場瞬息萬變,“快人一步”正成為企業(yè)的核心競爭力之一。但受限于傳統(tǒng)IT架構(gòu)的束縛,傳統(tǒng)企業(yè)(非互聯(lián)網(wǎng)企業(yè))開發(fā)運(yùn)維模式僵化、開發(fā)與運(yùn)維之間存在鴻溝、自動(dòng)化和敏捷性不足,難以響應(yīng)移動(dòng)互聯(lián)網(wǎng)時(shí)代快速變化的客戶需求和持續(xù)創(chuàng)新產(chǎn)品需要。此外,在傳統(tǒng)IT架構(gòu)下,還存在諸多其他問題,例如:IT系統(tǒng)煙囪式孤立建設(shè),能力不能復(fù)用,業(yè)務(wù)上線的周期長和資源利用率低下等。
隨著近幾年云計(jì)算技術(shù)與IT架構(gòu)的演進(jìn)變革,PaaS平臺(tái)作為新一代的云計(jì)算架構(gòu)?;赑aaS平臺(tái)實(shí)現(xiàn)開發(fā)運(yùn)維一體化成為解決傳統(tǒng)開發(fā)運(yùn)維模式弊端的有效方式,能促進(jìn)傳統(tǒng)IT架構(gòu)轉(zhuǎn)型,為業(yè)務(wù)應(yīng)用的持續(xù)創(chuàng)新和穩(wěn)定運(yùn)行提供有力的保障。
2整體思路
基于PaaS平臺(tái),采用容器、分布式計(jì)算、微服務(wù)架構(gòu)和CI/CD等關(guān)鍵技術(shù),將傳統(tǒng)IT系統(tǒng)架構(gòu)改造為一個(gè)面向敏捷開發(fā)和自動(dòng)化運(yùn)維的企業(yè)級(jí)云計(jì)算架構(gòu),如圖1所示,實(shí)現(xiàn)開發(fā)運(yùn)維一體化。首先,實(shí)現(xiàn)平臺(tái)級(jí)服務(wù)的資源共享,提供集成化、標(biāo)準(zhǔn)化和全?;募夹g(shù)組件能力;其次,規(guī)范IT技術(shù)標(biāo)準(zhǔn)和開發(fā)運(yùn)維框架,支持各種應(yīng)用堆棧;最后,集成開發(fā)運(yùn)行一體化環(huán)境和CI/CD技術(shù),打通開發(fā)、測試、部署和運(yùn)行的整個(gè)流程環(huán)節(jié)。
3主要實(shí)現(xiàn)路徑
3.1統(tǒng)一IT技術(shù)框架,建立PaaS平臺(tái)技術(shù)標(biāo)準(zhǔn)和規(guī)范體系
PaaS平臺(tái)接入和承載的業(yè)務(wù)系統(tǒng)越多,資源和技術(shù)組件的管理難度越大,運(yùn)行風(fēng)險(xiǎn)越大,這就需要標(biāo)準(zhǔn)和規(guī)范來保障平臺(tái)功能的發(fā)揮效果,保證平臺(tái)具備高效的運(yùn)維效率,還能促進(jìn)應(yīng)用標(biāo)準(zhǔn)化和服務(wù)接入的規(guī)范化。
因此,要統(tǒng)一IT技術(shù)框架,建立PaaS平臺(tái)技術(shù)標(biāo)準(zhǔn)和規(guī)范體系,包括PaaS平臺(tái)運(yùn)維管理辦法、軟件開發(fā)技術(shù)標(biāo)準(zhǔn)與規(guī)范、PaaS服務(wù)技術(shù)標(biāo)準(zhǔn)和使用規(guī)范、微服務(wù)架構(gòu)開發(fā)指導(dǎo)、CI/CD應(yīng)用配置手冊、應(yīng)用發(fā)布規(guī)范和基于容器的應(yīng)用接入規(guī)范等。
3.2統(tǒng)一管理調(diào)度資源,構(gòu)建彈性計(jì)算能力
首先,通過相應(yīng)的接口對接IaaS資源,由PaaS平臺(tái)集中調(diào)度網(wǎng)絡(luò)、I/O和存儲(chǔ)等底層IaaS資源,向下為應(yīng)用屏蔽底層基礎(chǔ)資源差異,向上提供統(tǒng)一的資源視圖和能力,包括集群、物理機(jī)、虛擬機(jī)、分布式存儲(chǔ)和網(wǎng)絡(luò)接入等。
采用Docker,Kubernetes,Kvm等技術(shù)構(gòu)建基于容器、物理機(jī)和虛擬機(jī)的彈性計(jì)算平臺(tái),如圖2所示,提供彈性擴(kuò)展、按需分配和動(dòng)態(tài)調(diào)整的計(jì)算服務(wù)。其中,特別是以彈性容器調(diào)度為支撐實(shí)現(xiàn)應(yīng)用的容器化能力,一次構(gòu)建、到處運(yùn)行,解決了環(huán)境差異、部署架構(gòu)復(fù)雜等問題,應(yīng)用也可以更快速地交付、部署、遷移和擴(kuò)展。另外,PaaS平臺(tái)具備高可用的集群架構(gòu),當(dāng)應(yīng)用異常或主機(jī)異常時(shí),平臺(tái)業(yè)務(wù)不受影響,且能自動(dòng)恢復(fù)。
3.3集成各類基礎(chǔ)組件,構(gòu)建平臺(tái)化的組件能力
通過分布式計(jì)算技術(shù)、服務(wù)化解耦和公共能力提取等方法,將原來的煙囪和復(fù)雜的各類基礎(chǔ)組件,封裝、整合形成平臺(tái)化的技術(shù)能力,為應(yīng)用的開發(fā)運(yùn)維提供標(biāo)準(zhǔn)化、一體化的組件服務(wù)。平臺(tái)提供應(yīng)用中間件、數(shù)據(jù)庫、微服務(wù)框架及核心組件服務(wù)、域名解析和負(fù)載均衡等一系列支撐應(yīng)用服務(wù),如圖3所示。
應(yīng)用開發(fā)者根據(jù)自己的技術(shù)需求到平臺(tái)查找、選用組件,不用再關(guān)心技術(shù)組件的安裝部署細(xì)節(jié)和生命周期管理,可快速搭建自己的開發(fā)、測試和生產(chǎn)環(huán)境,真正實(shí)現(xiàn)業(yè)務(wù)支撐的“快速開發(fā)、快速部署”目標(biāo)。
3.4構(gòu)建CI/CD流水線,打造一體化的開發(fā)運(yùn)維流程
PaaS平臺(tái)構(gòu)建軟件CI/CD流水線,管理運(yùn)行在PaaS平臺(tái)上的各個(gè)租戶在各階段的不同環(huán)境發(fā)布過程,形成持續(xù)的工程交付,支撐應(yīng)用快速迭代部署上線。CI/CD流水線采用目前最流行的開源軟件和工具,包括Jenkins,GitLab,Maven,Test Link等,經(jīng)過改造搭建端到端的交付流水線,打通開發(fā)、測試和運(yùn)維之間的障礙,實(shí)現(xiàn)一體化的開發(fā)運(yùn)維流程,如圖4所示。其包括以下幾個(gè)重要環(huán)節(jié):
①需求與開發(fā):本環(huán)節(jié)提出需求,并整理分析,過程中形成的文檔或者知識(shí)點(diǎn),保存在知識(shí)庫中統(tǒng)一管理、共享,完成后提交給開發(fā)人員進(jìn)行代碼開發(fā)。
②持續(xù)集成:開發(fā)人員根據(jù)用戶需求編寫好代碼后,提交代碼給Gitlab代碼倉庫,由平臺(tái)自動(dòng)做代碼質(zhì)量檢查、編譯、打包、構(gòu)建和生成應(yīng)用鏡像,推送到鏡像倉庫集中管理。
③持續(xù)部署與測試:將應(yīng)用鏡像通過CI/CD自動(dòng)部署到測試環(huán)境,采用系統(tǒng)自動(dòng)+手動(dòng)完成UAT測試、用戶測試和性能測試。
④上線運(yùn)維:應(yīng)用上線時(shí),運(yùn)營人員選擇不同運(yùn)行環(huán)境對應(yīng)的配置信息,拉取對應(yīng)環(huán)境下鏡像倉庫中的鏡像,配合CD流水線,實(shí)現(xiàn)應(yīng)用自動(dòng)化上線。
3.5集中化平臺(tái)運(yùn)維,實(shí)現(xiàn)端到端的閉環(huán)運(yùn)維保障
為解決傳統(tǒng)煙囪式運(yùn)維的局限和不便,PaaS平臺(tái)建設(shè)集成了一系列功能完善的運(yùn)維應(yīng)用,包括服務(wù)流程平臺(tái)、CMDB配置管理庫、運(yùn)維自動(dòng)化、集中監(jiān)控、日志中心、預(yù)警中心、數(shù)據(jù)備份、知識(shí)庫、安全審計(jì)和分析報(bào)表等,基本涵蓋了各種運(yùn)維場景,并由PaaS平臺(tái)統(tǒng)一管理、集中運(yùn)營,實(shí)現(xiàn)了端到端的閉環(huán)運(yùn)維保障。
4結(jié)束語
傳統(tǒng)企業(yè)基于PaaS平臺(tái)實(shí)現(xiàn)開發(fā)運(yùn)維一體化,讓開發(fā)人員和運(yùn)營人員合作與協(xié)同,可以快速完成應(yīng)用開發(fā)、測試和生產(chǎn),縮短產(chǎn)品交付周期。同時(shí)還能降低應(yīng)用開發(fā)和運(yùn)維的復(fù)雜度、降低重復(fù)性的人工成本、支撐業(yè)務(wù)敏捷和運(yùn)營敏捷,最終推動(dòng)并促進(jìn)業(yè)務(wù)的快速創(chuàng)新發(fā)展。