王鑫
[摘 要]隨著智能油田信息化建設(shè)的發(fā)展,軟件項目數(shù)量逐年遞增,在傳統(tǒng)的集成項目管理模式下,項目開發(fā)過程中的問題日益突顯。比如:源碼在項目生命周期沒有受控,后期運維風(fēng)險較大;只能在項目后期進行交付,難以控制開發(fā)進度;異地開發(fā)給項目集成、交付帶來困難;集中提供開發(fā)集成、測試服務(wù)器,因為項目需求差異難以高效管理運維,可能造成管理混亂、資源浪費的局面;由開發(fā)階段到測試、上線、運維,每個階段的部署遷移都會帶來一定的培訓(xùn)、安裝調(diào)試以及溝通成本等,以上這些問題是每個項目存在的普遍問題。因此,對于智能油田這樣大體量的規(guī)模建設(shè),這些問題帶來的風(fēng)險、制約將被成倍擴大,成為智能油田發(fā)展道路上的阻礙。
[關(guān)鍵詞]智能油田;docker容器;開發(fā)環(huán)境;項目管理
doi:10.3969/j.issn.1673 - 0194.2020.18.037
[中圖分類號]F270.7;TP311.13[文獻標識碼]A[文章編號]1673-0194(2020)18-00-02
1? ? ?智能油田建設(shè)中Docker技術(shù)概述
1.1? ?目的和意義
本文研究智能油田建設(shè)中Docker技術(shù)的目的是給新疆油田智能油田建設(shè)提供一套從系統(tǒng)研發(fā)、部署到后期運維的整體解決方案。該方案提供相對隔離的項目開發(fā)環(huán)境,以便捷、友好、按需訪問的方式共享物理及虛擬資源(包括網(wǎng)絡(luò)、服務(wù)器、存儲、應(yīng)用和服務(wù)),為軟件項目開發(fā)及運維全過程提供服務(wù)。①隔離的項目開發(fā)與測試環(huán)境,項目代碼和資源得到有效控制,保障項目資產(chǎn)安全。②統(tǒng)一的技術(shù)框架與開發(fā)環(huán)境,保障軟件系統(tǒng)架構(gòu)的合理性和可讀性,保障統(tǒng)一運維隊伍的可行性。③實施項目的精細化管理,通過業(yè)界成熟的項目管理軟件,規(guī)范項目管理流程,準確評估項目運行狀態(tài)并及時應(yīng)對,使項目開發(fā)過程得到有效管理,準確評估項目運行狀態(tài)。④通過成熟的云管理工具,大幅提升開發(fā)、測試、部署項目全生命周期生產(chǎn)效率,降低管理難度,確保開發(fā)、測試環(huán)境的穩(wěn)定性和可維護性。
1.2? ?設(shè)計思想
采用近年來在業(yè)界流行的Docker容器技術(shù)對軟件開發(fā)云管理系統(tǒng)進行研發(fā),以相應(yīng)的開發(fā)規(guī)范和管理辦法為指導(dǎo)方向,項目運行監(jiān)控和代碼集成檢查為執(zhí)行準則,實現(xiàn)一體化開發(fā)、測試、上線、管理體系。
2? ? ?智能油田建設(shè)中Docker技術(shù)研究內(nèi)容
2.1? ?總體設(shè)計
軟件開發(fā)云管理系統(tǒng)底層以Docker容器技術(shù)和Kubernets集群管理技術(shù)為主線進行研發(fā),整合虛機資源,并進行集群管理;通過部署容器方式實現(xiàn),每個容器之間互相隔離,每個容器有自己的文件系統(tǒng),容器之間的進程不會相互影響,能區(qū)分計算資源;通過從源碼倉庫獲取項目源碼到自動持續(xù)集成編譯、構(gòu)建鏡像實現(xiàn)應(yīng)用的持續(xù)發(fā)布;通過系統(tǒng)設(shè)置實現(xiàn)用戶空間隔離、用戶權(quán)限分配。
2.2? ?功能架構(gòu)設(shè)計
軟件開發(fā)云管理系統(tǒng)主要由容器服務(wù)、持續(xù)交付、自動化運維、高效DevOps、模塊管理等主體功能模塊構(gòu)成,具體如圖1所示。
2.2.1? ?容器服務(wù)設(shè)計
整合底層服務(wù)器的資源,進行容器集群管理,容器間相互隔離,調(diào)度與分配智能化的資源,支持負載均衡、彈性伸縮、高可靠,應(yīng)用容器化,一個應(yīng)用可包含多個容器服務(wù)。
2.2.2? ?持續(xù)交付設(shè)計
以鏡像方式封裝服務(wù);服務(wù)間可調(diào)用相關(guān)配置文件;摒除環(huán)境異構(gòu)問題,實現(xiàn)一次構(gòu)建隨處運行,并可以獨立管理應(yīng)用交付每個環(huán)節(jié);鏡像與應(yīng)用關(guān)聯(lián);當(dāng)有鏡像Push或者構(gòu)建成功時應(yīng)用可以自動進行灰度發(fā)布。
2.2.3? ?自動化運維設(shè)計
可視化性能監(jiān)控,包括容器使用狀況、主機健康狀態(tài);可視化資源管理,管理容器CPU、內(nèi)存、網(wǎng)絡(luò)、進程資源;可視化主機管理;智能化的資源調(diào)度與分配。
2.2.4? ?高效DevOps設(shè)計
DevOps(開發(fā)運維一體化)以可視化Flow流程的方式,構(gòu)建開發(fā)測試流水線,實現(xiàn)編譯、集成、打包、測試、發(fā)布的自動化;提供標準化階段任務(wù),可快速定義流程任務(wù);設(shè)置自動觸發(fā)規(guī)則觸發(fā)流水線;制品倉庫管理,存放多種鏡像文件;上線流程審批,通過設(shè)定審批人審批通過后可實現(xiàn)應(yīng)用的直接部署。
2.2.5? ?模塊管理設(shè)計
系統(tǒng)可以從互聯(lián)網(wǎng)獲取豐富的應(yīng)用模版,同時用戶可以創(chuàng)建自定義的應(yīng)用模版,并配置相應(yīng)模版的訪問權(quán)限;導(dǎo)入應(yīng)用模版的功能可以將互聯(lián)網(wǎng)模版快速導(dǎo)入系統(tǒng)中。
2.3? ?技術(shù)架構(gòu)設(shè)計
軟件開發(fā)云管理系統(tǒng)整體分為以下4部分:①底層服務(wù)資源整合,租戶權(quán)限控制,隔離開發(fā)測試運行項目,容器資源監(jiān)控;②項目源代碼進行集中式的代碼倉庫管理,實現(xiàn)完整的源碼入庫、打包、編譯、發(fā)布、出庫管理流程,確保代碼的完整性、正確性;③項目開發(fā)、測試環(huán)境,搭建在容器云管理環(huán)境基礎(chǔ)上,按項目提供相互隔離、可彈性擴展伸縮的開發(fā)、測試環(huán)境,定制自動化開發(fā)、編譯、打包、發(fā)布、測試流水線,實現(xiàn)持續(xù)集成、持續(xù)交付,統(tǒng)一的精細化項目管理;④項目快速移植。其中,圖2是軟件開發(fā)云管理系統(tǒng)技術(shù)架構(gòu)設(shè)計。
2.4? ?規(guī)范制度設(shè)計
為了確保軟件開發(fā)云管理系統(tǒng)順暢運行,并能在整個生命周期每個階段發(fā)揮各個角色的作用,項目單位需要制定相應(yīng)的規(guī)范制度為此“保駕護航”,根據(jù)現(xiàn)有管理制度,制定《平臺集成項目管理辦法》,依據(jù)項目管理辦法各個階段設(shè)定的流程,制定相應(yīng)的規(guī)范、模板、檢查表等,保證平臺正常運行。
3? ? ?應(yīng)用效果
本項目集成管理各研發(fā)團隊,對傳統(tǒng)的基礎(chǔ)設(shè)施資源進行集群化管理,可動態(tài)擴展資源,為研發(fā)團隊提供標準化的開發(fā)、測試、交付環(huán)境,實現(xiàn)軟件交付的全過程流水線化,加速產(chǎn)品迭代;實現(xiàn)業(yè)務(wù)持續(xù)創(chuàng)新,快速交付;實現(xiàn)跨云、跨環(huán)境的管理基礎(chǔ)資源共享,有效解決傳統(tǒng)軟件開發(fā)模式下效率低、返工率高、成本高、協(xié)作差、系統(tǒng)穩(wěn)定性不高等問題,促進新疆油田軟件開發(fā)模式變革。
主要參考文獻
[1]周正午,盧朝霞.基于面向服務(wù)架構(gòu)的異地醫(yī)保系統(tǒng)研究[J].網(wǎng)絡(luò)與信息,2007(12):76-77.
[2]陳傳波,張彬彬.面向服務(wù)架構(gòu)的遷移方法研究[J].計算機工程與科學(xué),2008(2):128-130.
[3]黃小慶,關(guān)維德,周宇,等.面向服務(wù)架構(gòu)中的服務(wù)分類及其應(yīng)用
[J].計算機集成制造系統(tǒng),2009(9):1844-1853.