999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于容器的DevOps 云平臺設計及系統測試

2021-12-02 08:19:38范國偉
科學技術創新 2021年32期
關鍵詞:系統管理

范國偉

(中國人民大學信息學院,北京 100000)

商業軟件具有功能豐富多樣、版本頻繁更新等特點,為了滿足用戶需求,軟件開發公司通常選擇敏捷開發模式。雖然該模式減輕了前端開發人員的壓力,但是后期運維工作量明顯增加,這一問題在Web 應用軟件中表現的尤其明顯。近年來,容器技術逐漸向輕量化、可移植方向發展,這就為DevOps 云平臺設計創造了有利條件和技術支持。設計基于容器的DevOps 云平臺系統,成為現階段軟件公司實現產品從前端開發到運行維護全生命周期管理的一種優先選擇。

1 基于容器的DevOps 云平臺架構設計

DevOps 系統的組成架構共分為5 個模塊,各模塊實現的基本功能如下:(1)資源管理模塊。為進一步提高資源利用率,在資源管理中引入了集群管理的概念。利用MooseFS 集群、Kubernetes 集群,將分散在平臺各處的資源整合到一起,為資源的調用、存儲等提供必要的支持。(2)項目管理模塊。項目經理可根據系統開發需要,創建新的項目。還可以通過權限管理,為每個成員賦予不同的權限,加快開發進度。在任務管理中,創建任務計劃,并利用任務匯報表隨時掌握任務進度。(3)在線開發模塊。支持在線編輯代碼和調試程序。在文件管理中,管理員可執行獲取代碼、刪除代碼等操作。開發人員還可以自定義代碼編輯的快捷鍵,進一步提高軟件開發的效率。(4)鏡像管理模塊。包括鏡像制作、上傳、刪除等內容,確保該平臺上始終有充足的鏡像滿足工作人員的使用需求。(5)應用管理模塊。在程序完成開發并經過在線調試確定不存在問題后,將所有代碼進行編譯打包,并形式存儲,生成應用。運維人員可對該應用進行發布、升級、刪除等操作。該平臺的組成架構如圖1 所示。

圖1 基于容器的DevOps 云平臺架構

2 基于容器的DevOps 云平臺功能設計

2.1 資源管理模塊設計

2.1.1 集群管理模塊設計。DevOps 云平臺的部署環境中包含了大量的工作節點,集群管理的核心功能在于根據運行需要添加、刪除節點,從而實現資源利用的最優化。進行設計時需要注意,如果集群中資源不能滿足應用需要時,應添加新的節點,保證應用正常運行;當集群中資源過剩時,則刪除多余節點。集群管理模塊面向的對象是Node 節點,而非Master 節點。為了防止誤操作,還需要設計節點驗證,方法是添加一個由Master 節點產生的token 驗證碼,每24h 刷新一次。具體流程如下:(1)在添加節點時,控制節點調用Cluster Ctrl::get_token () 分別向Master 節點和Node 節點發送請求token 數據。(2)當Node 節點接收token 驗證碼后,向Master 節點發出“加入集群”的請求。Master 在接收該請求后,將控制節點提供的token 碼,與Node 發送請求中的token 碼進行配對。(3)若配對成功,則響應該請求,將token 碼和請求結果返回控制節點,由控制節點完成Node 節點的添加。整個流程如圖2 所示。

圖2 添加Node 節點流程

2.1.2 存儲管理模塊設計。在DevOps 云平臺開發中,以容器作為應用部署環境,如果容器因為各種原因無法正常使用,則內部存儲數據也會隨之丟失。為進一步提高數據的安全性、完整性,可選擇存儲卷作為數據存儲載體,除了提供較大容量的存儲環境外,還能夠支持容器與物理機之間無障礙的數據交換。通常情況下,存儲卷應用于單臺物理機上,而不適合在集群中應用。要想將存儲卷內的信息資源達到跨主機共享的效果,進一步優化文件保存和調用的操作體驗,可以將存儲卷與MooseFS 文件系統加以整合。具體設計流程如下:(1)選擇兩個或多個容器(pod),首先將這些容器的存儲卷合并,實現數據的整合,然后在物理機上建立新的MooseFS 文件,后臺調用靜態成員函數create Volume(),并對存儲卷進行初始化;(2)按照同樣的方式,將其他容器也進行數據合并,最后將多臺物理機上的MooseFS 文件整合,即可得到MooseFS Flie 系統;(3)在對空間進行限制過程中需要采用靜態方法get Volume (S path) 獲取Volume 對象,并配合參數對調整對象采用setquota(Ssize)的方法實現空間分配。其存儲架構如圖3 所示。

圖3 存儲卷架構圖

2.2 項目管理模塊設計

2.2.1 項目的創建。系統管理員掌握著創建項目的權限。管理員可利用自身掌握的權限,進入到Gitlab 服務器中,指定一個遠程代碼倉庫,調用task Create()函數進行創建,并進行初始化。之后再選擇項目經理,全權負責該項目的運行和管理。

2.2.2 任務管理模塊設計。該模塊的功能除了支持項目的新建、刪除外,還包括項目進度、項目人員的管理以及任務管理。以任務管理為例,項目經理負責任務分配。創建新的任務后,分別分配給開發組和運維組。開發人員領取項目開發任務后,根據任務需求完成開發。具體設計流程如下:

2.2.2.1 任務創建后,調用set Task Depend()進行設置,并定期編制開發進度表匯報給項目經理,方便監督開發進度。待taskependence 表完成開發任務后,進行任務提交。

2.2.2.2 運維人員領取運維任務后,根據項目特點、運維需求分析,開展項目的運行維護。定期編制運維進度表,維護功能是由getTaskByUser () 完成。該函數會在task 表中查找depend_count 值為0 的任務,并匯報給項目經理。完成運維任務后,進行提交。反饋的任務如下:

2.2.2.3 項目經理以提交的任務匯報表作為依據,對項目開發進度進行實時監督,避免出現任務延期的情況。最后經由task Check() 函數對任務進行審核,無誤后順利完成項目開發任務。整個設計流程如圖4 所示。

圖4 任務管理流程圖

2.2.3 操作管理。為了防止出現誤操作導致系統功能受到影響,對于系統中涉及到的敏感操作,均要求由項目經理審核。只有在審核通過后才能繼續下一步的操作。以鏡像刪除操作為例,用戶首先要提交“刪除鏡像”的操作請求;該請求發送至項目經理后,進行請求審查。若該操作符合要求,則批準此操作,向對應接口發送請求,由用戶自行完成鏡像刪除的操作;若該操作不符合要求,則否決此操作。這就避免了運維人員誤操作將鏡像刪除,導致開發人員無法正常開展鏡像調試的情況,從而保證了系統開發的順利進行。需要注意的是,操作管理面向的對象為系統中的敏感操作,對于其他常規操作則不作審核,從而減輕系統負擔。

2.3 在線開發模塊設計

2.3.1 文件管理模塊設計。支持在線開發是DevOps 云平臺的特色功能,將開發環境從原來的物理平臺,轉移到容器云上,一方面有利于開發程序和編程代碼的安全保存,有效解決信息丟失和泄露的問題,另一方面也能夠實現開發環境和運維環境的一致性,對DevOps 云平臺的運行穩定也有一定的幫助。Web項目開發過程中,會生成海量化的代碼文件、配置文件,做好文件管理尤為重要。文件管理的設計流程如圖5 所示。

圖5 文件管理流程圖

獲取訪問權限的用戶從系統登錄界面完成驗證后,進入到系統主界面,從工具欄中選擇“打開”選項,找到需要管理的文件,正常讀取文件后顯示內容。管理員經檢查,確定文件不存在問題后,可選擇上傳文件、移動文件、刪除文件等操作。

2.3.2 代碼編輯。編寫代碼是Devops 云平臺設計的核心工作,有些代碼編輯器可提供代碼高亮、代碼折疊、自動縮進等功能,為程序員提供了諸多便利。目前技術成熟度極高、應用比較廣泛的在線代碼編輯器有ACE、Monaco 等幾種。其中ACE 具有集成方式簡單、不易受網絡性能影響等特點。在代碼編輯設計流程如下:

2.3.2.1 編輯器配置文件獲取,編輯器設置文件獲取是Coding OL::get Edit Con FIle () 函數完成的,并向后臺發送消息,程序員可根據自己的偏好設置快捷鍵。在登錄系統之后,調出快捷鍵菜單欄,在自定義快捷鍵之后,從前臺發送請求快捷鍵的信息,后臺通過Conf File Op::readconfig()接收請求之后將設置信息保存在editor.json 配置文件中。當下一次用戶登錄系統后,激活配置文件,用戶可調用快捷鍵。配置文件如下:

2.3.2.2 編輯器設置,在前端接收到數據后調用set Edit Conf()進行下一步操作,然后通過ace.edit() 函數獲取ACE 編輯器對象,結合不同的設置編輯不同的函數;

2.3.2.3 代碼斷網保存,在線開發平臺必須要考慮在突然斷網之后的代碼保存問題,在ACE 代碼編輯器中設有一個定時器,可由管理員手動設置間隔時間。然后每隔一段時間就檢查一次是否出現斷網情況,若檢測到斷網情況,則將用戶最新編輯并且尚未保存的代碼,自動保存在本地,防止代碼斷網丟失的問題。

2.3.3 在線調試。在線編輯代碼、完成程序開發后,還要通過在線調試,檢測程序是否存在BUG。特別是基于Web 前端的程序開發,開發人員除了要確保代碼本身不存在邏輯問題,還要經常性的檢查Web 頁面的呈現效果。因此,在線調試的重要性不言而喻。其設計流程為:(1)準備在線調試所需的環境。選擇單個容器進行測試,保證容器端口對用戶開放,使用戶能夠直接進行訪問;(2)啟動在線調試功能。運行Web 項目,如果該項目存在語法錯誤,可直接在網頁中暴露出來。調試人員可根據顯示結果,針對語法錯誤進行代碼修改。然后刷新一次項目,直到語法錯誤消失。配置內容如下:

2.4 鏡像管理模塊設計

2.4.1 鏡像制作。要想使系統中的容器能夠滿足應用運行的需要,必須要提供多種可供選擇的鏡像。制作鏡像既是鏡像管理的首要環節,也是保障系統運行的關鍵步驟。基于線上平臺的鏡像制作,無須訪問底層物理機,除了簡化運行流程外,對保障數據信息的安全也有積極幫助。現階段制作鏡像的工具有2種流程:(1)DockerFile 工具,主要支持用戶自定義基礎鏡像,在此基礎上嵌入配置文件,自動構建鏡像;(2)Commit 工具,是將某個正在運行的容器作為鏡像,在該容器中執行Linux 命令進行環境配置,配置結束后即可得到鏡像。現以DockerFile 工具為例,其制作流程如圖6 所示。

圖6 鏡像制作流程圖

2.4.2 鏡像上傳。制作好的鏡像,需要將鏡像信息完全保存至鏡像倉庫,以便功能正常發揮。鏡像信息保存的過程即為鏡像上傳。為了方便后期進行鏡像管理(添加、維護、刪除),需要在鏡像信息中添加Layer 文件。對于成功上傳的鏡像信息,后期可通過調用Layer 文件的方式,查找目標信息,或檢索維護記錄,從而實現快速操作。

3 基于容器的DevOps 云平臺系統測試

3.1 測試環境的創建

系統測試在仿真環境下進行,使用虛擬機代替物理服務器。共用13 臺虛擬機,其中2 臺為Web 服務器,用于處理用戶請求;1 臺為Nginx 服務器,用于將用戶提出請求轉移到Web 服務器中。除此之外,還配置了數據庫集群、MooseFS 集群等,具體的測試環境如表1 所示。

表1 測試環境說明表

3.2 系統性能測試

3.2.1 在線開發可靠性測試。基于DevOps 云平臺的在線開發模塊,假如在開發過程中出現斷電、斷網的情況,能否將已經編寫但是尚未保存的代碼進行自動保存,是衡量在線開發可靠性的重要指標。針對這一指標開展性能測試,操作流程為:開發人員正常登錄系統后,在主界面上選擇“在線開發”模塊,新建一個文件,點擊工具欄的“打開”選項,在彈出的選擇頁面中,打開test.php 文件,并在該文件中添加add 函數,然后保存。任意編寫一段代碼,此時將網絡斷開,等待10s 后關閉瀏覽器。然后將網絡重新連接,并打開瀏覽器,在搜索欄中采用關鍵字檢索剛才的項目,并雙擊打開。系統在頁面加載完畢后,會自動檢查本地緩存,判斷是否有可供選擇的保存代碼。如果有,則彈出“檢測到test.php 文件有本地緩存,是否選擇恢復?”的提示框,如圖7所示。開發人員點擊“確認”后,之前的代碼完全恢復,則說明DevOps 云平臺的在線開發功能可靠。

圖7 代碼恢復測試圖

3.2.2 網頁響應速度測試。DevOps 云平臺系統的全部功能,都是基于Web 網頁來實現的,為了優化用戶的操作體驗,必須要盡可能的提高網頁響應速度。通過開展網頁響應速度測試也能夠在一定程度上判斷該系統的性能。

3.2.2.1 數據庫查詢接口測試。云平臺運行期間,需要頻繁進行數據訪問、調用、存儲等操作,因此該項測試中選擇數據庫查詢接口,測試其在多個用戶并發訪問情況下的響應速度。試驗中分別選擇100、200。300。500 個并發數,每個并發數測試15次,然后求平均值。試驗結果記錄見表2。

表2 數據庫查詢接口測試結果

在實際使用中,數據庫查詢結果的反饋時間在2s 以內,用戶體驗良好;2-5s 則一般,超過5s 體驗較差。從測試結果來看,在并發數為100 時,響應時間為0.264s;并發數為500 時,相應時間為0.338s,均明顯低于2s,故該系統的響應速度較快,操作體驗較好。

3.2.2.2 資源創建接口測試。為了提高響應速度和減少系統資源占用,該測試中利用在線調試接口作為資源創建接口,測試方法如下:

用戶登錄系統后,根據選擇的鏡像配置,在后臺新建一個容器,在獲取容器地址后開始測試。測試內容主要包括3 部分,分別是信息傳遞時間、信息處理查詢時間、容器創建時間。其中,信息傳遞時間檢測難度較大,而另外2 個參數可通過修改程序獲得,因此本次測試只選擇信息處理時間和容器創建時間作為研究對象。為最大程度上消除結果誤差,進行了4 組測試,每組分別在1 個、5 個、10 個和20 個并發的情況下檢測響應速度,結果如表3 所示。

表3 任務創建接口測試表

結合表3 可知,在并發數為1 的情況下,該系統的平均響應時間僅為1.86s;而并發數為5 個時,響應時間則需要2.34s,屬于一般速度;繼續增加并發數至20 個時,響應時間則需要6.04s,屬于較慢速度。根據平均響應時間的變化規律來看,數據處理時間與響應時間的變化規律不符合,而容器創建時間與響應時間的變化規律基本一致。由此可得,容器創建時間是導致系統響應時間增加的關鍵因素。創建容器的數量越多,則占用的系統資源響應增加,物理機的負荷加大,進而導致響應時間延長。為了驗證這一結論,在物理機上編寫腳本進行測試,腳本如下:

如上,使用腳本創建容器用時2 分19 秒,減去等待時間,則每個容器創建的平均用時為2.25s。由此驗證了上述結論,即容器數量增加會導致相應速度變慢。針對此類情況,可以選擇創建虛擬機的方式,將多余的容器創建請求分擔到虛擬機上,這樣就能夠減輕物理機上的并發數,從而達到提高響應速度的目的。

4 結論

為了更好地滿足用戶需求,同時也是縮短開發周期,現階段的軟件開發越來越多的使用敏捷開發模式。該模式雖然為軟件開發創造了便利,但是異構環境下服務器部署和運維的工作量明顯增加。基于容器的DevOps 云平臺,實現了項目開發、運維管理、環境部署的一體化,為軟件的在線開發創造了更好的環境。從系統功能上來看,該系統除了支持在線開發外,還能夠實現鏡像管理、進度調控等一系列功能。并且通過系統測試,證明了DevOps 云平臺的在線開發具有較強的可靠性,網頁響應具有及時性,具有推廣應用價值。

猜你喜歡
系統管理
棗前期管理再好,后期管不好,前功盡棄
今日農業(2022年15期)2022-09-20 06:56:20
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
加強土木工程造價的控制與管理
如何加強土木工程造價的控制與管理
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
“這下管理創新了!等7則
雜文月刊(2016年1期)2016-02-11 10:35:51
主站蜘蛛池模板: 久久窝窝国产精品午夜看片| 国产精品第页| 成人va亚洲va欧美天堂| 亚洲 欧美 日韩综合一区| 毛片网站在线播放| 伊人天堂网| 久久国产精品麻豆系列| 人妻精品久久无码区| 亚洲男人的天堂在线观看| 激情综合网址| 美女国内精品自产拍在线播放| 国产精品不卡永久免费| 国产1区2区在线观看| 亚洲精品波多野结衣| 亚洲国产成人精品无码区性色| 欧美专区日韩专区| 亚洲有无码中文网| 日韩资源站| 亚洲啪啪网| 国产精品极品美女自在线| 亚洲国产成人无码AV在线影院L| av无码一区二区三区在线| 在线观看无码a∨| 人妻少妇乱子伦精品无码专区毛片| 亚洲免费黄色网| 女人av社区男人的天堂| 91在线高清视频| 亚洲综合中文字幕国产精品欧美| www.99精品视频在线播放| 一级毛片在线播放免费| 日韩欧美国产中文| 欧美自慰一级看片免费| 欧美成人影院亚洲综合图| 亚洲国产清纯| 国产免费a级片| 中文成人在线| 亚洲热线99精品视频| 国产精品私拍99pans大尺度| 99在线视频网站| 538国产在线| 色综合a怡红院怡红院首页| 成AV人片一区二区三区久久| 亚洲欧美综合另类图片小说区| 亚洲高清国产拍精品26u| 欧美亚洲激情| 视频一本大道香蕉久在线播放| 伊人久久久久久久| 亚洲一区二区三区香蕉| 日韩无码真实干出血视频| 色婷婷在线播放| 亚洲色成人www在线观看| 国产精品尤物在线| 国产精品xxx| 成年免费在线观看| 久久亚洲精少妇毛片午夜无码 | 一级毛片无毒不卡直接观看| 成人毛片免费在线观看| 亚洲成在人线av品善网好看| 国产精鲁鲁网在线视频| 毛片手机在线看| 一边摸一边做爽的视频17国产| 在线观看亚洲人成网站| 亚洲性色永久网址| 国产主播在线一区| 色哟哟国产精品| 日本人真淫视频一区二区三区| 青草视频在线观看国产| 国产在线视频导航| 3344在线观看无码| 亚洲资源在线视频| 亚洲人成色77777在线观看| 国产精品美乳| 人妻少妇久久久久久97人妻| 影音先锋丝袜制服| 丁香五月亚洲综合在线| 日本91视频| 欧美一级高清片久久99| 中文字幕无码av专区久久| 99久久这里只精品麻豆| 亚洲动漫h| 日本国产精品| 亚洲欧洲日产国码无码av喷潮|