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