




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 DevOps開發(fā)運(yùn)維管理探析摘 要:由于傳統(tǒng)IT部門的開發(fā)人員和運(yùn)維人員之間存在目的差異,兩個團(tuán)隊之間容易產(chǎn)生矛盾,這將導(dǎo)致內(nèi)部合作產(chǎn)生摩擦、降低協(xié)作效率,甚至可能產(chǎn)生質(zhì)量問題,延遲部署,進(jìn)而影響了整個應(yīng)用的交付運(yùn)維。本文針對DevOps的應(yīng)用開發(fā)運(yùn)維,介紹其流程架構(gòu)、不同過程的具體活動以及相關(guān)工具鏈工具,進(jìn)而探討了 DevOps的特點及其相對于傳統(tǒng)應(yīng)用程序生命周期管理的優(yōu)勢,闡述了基于DevOps方法論進(jìn)行應(yīng)用開發(fā)運(yùn)維管理的意義。關(guān)鍵詞:DevOps;應(yīng)用生命周期管理;持續(xù)集成;持續(xù)部署目 錄 TOC o 1-3 h z u HYPERLINK l _Toc14616642 一、DevOp
2、s簡介 PAGEREF _Toc14616642 h 3 HYPERLINK l _Toc14616643 二、基于DevOps的開發(fā)運(yùn)維管理流程 PAGEREF _Toc14616643 h 3 HYPERLINK l _Toc14616644 (一)DevOps流程活動 PAGEREF _Toc14616644 h 4 HYPERLINK l _Toc14616645 (二)DevOps持續(xù)集成的主要特點 PAGEREF _Toc14616645 h 5 HYPERLINK l _Toc14616646 (三)DevOps持續(xù)部署主要特點 PAGEREF _Toc14616646 h 7
3、HYPERLINK l _Toc14616647 三、DevOps工具鏈工具介紹 PAGEREF _Toc14616647 h 8 HYPERLINK l _Toc14616648 (一)開發(fā)任務(wù)管理 PAGEREF _Toc14616648 h 8 HYPERLINK l _Toc14616649 (二)版本管理 PAGEREF _Toc14616649 h 8 HYPERLINK l _Toc14616650 (三)單元測試 PAGEREF _Toc14616650 h 9 HYPERLINK l _Toc14616651 (四)靜態(tài)代碼檢查 PAGEREF _Toc14616651 h
4、9 HYPERLINK l _Toc14616652 (五)質(zhì)量反饋 PAGEREF _Toc14616652 h 9 HYPERLINK l _Toc14616653 (六)功能測試 PAGEREF _Toc14616653 h 9 HYPERLINK l _Toc14616654 四、結(jié)語 PAGEREF _Toc14616654 h 10當(dāng)前,大數(shù)據(jù)、云計算、移動互聯(lián)網(wǎng)發(fā)展正興,軟件需要以更快的速度和頻率交付部署。在傳統(tǒng)的應(yīng)用程序生命周期管理(ALM)過程中,開發(fā)團(tuán)隊是根據(jù)其交付給最終用戶的業(yè)務(wù)價值來衡量的,而運(yùn)維管理是根據(jù)生產(chǎn)環(huán)境的健康和穩(wěn)定性來衡量的。當(dāng)兩個團(tuán)隊 的目標(biāo)不一致時,將會
5、產(chǎn)生矛盾,導(dǎo)致協(xié)作效率低下、產(chǎn)品交付延遲、產(chǎn)生質(zhì)量問題等。引入DevOps不僅能解決上述矛盾,而且能提高應(yīng)用本身的各項指標(biāo)、質(zhì)量,極大地提升用戶體驗,同時降低交付成本。一、DevOps簡介DevOps是Development和Operations的結(jié)合,是傳統(tǒng)的應(yīng)用程序生命周期管理(ALM)過程的一種新方法,其本質(zhì)是一種方法論。DevOps的焦點在于通過發(fā)展創(chuàng)造一個穩(wěn)定快速的開發(fā)工作流程和IT運(yùn)維,從而很好地融合開發(fā)和運(yùn)維兩個團(tuán)隊,消除兩個團(tuán)隊之間的壁壘,改善和提升這兩個業(yè)務(wù)單位之間的溝通和協(xié)作關(guān)系。其能將敏捷應(yīng)用擴(kuò)展到生產(chǎn)端,完成跨部門的設(shè)計、開發(fā)、運(yùn)維支持工作,通過有效的自動化工具幫助團(tuán)隊
6、快速可靠地部署并進(jìn)行創(chuàng)新,從而提高交付應(yīng)用程序和服務(wù)的能力。DevOps一方面縮短系統(tǒng)的上市部署時間,另一方面又能減少系統(tǒng)缺陷,極大地提升系統(tǒng)的質(zhì)量。DevOps由一系列基本原則和實踐構(gòu)成。其指導(dǎo)原則包括文化、測量、自動化和共享。DevOps通過開發(fā)、質(zhì)量保證(QA)和運(yùn)維團(tuán)隊的努力將應(yīng)用開發(fā)和部署變成一個更精簡的過程,按需發(fā)布并能及時發(fā)現(xiàn)和糾正現(xiàn)有的問題,而不影響其他服務(wù)。整個過程具有小批量、短迭代、快速反饋、自動化,其管理總體框架如圖1所示。二、基于DevOps的開發(fā)運(yùn)維管理流程DevOps開發(fā)運(yùn)維管理包含以持續(xù)集成/部署為核心的一系列活動,高效的自動化貫穿整個生命周期。完善的流程、科學(xué)的
7、方法讓每個團(tuán)隊緊密聯(lián)合,應(yīng)用交付連續(xù)穩(wěn)定。其中,計劃、編碼、構(gòu)建、測試屬于持續(xù)集成階段,計劃、編碼、構(gòu)建、測試、發(fā)布、部署屬于持續(xù)部署階段,如圖2所示。(一)DevOps流程活動計劃:根據(jù)需求規(guī)劃應(yīng)用開發(fā)的功能,在項目管理中采用甘特圖的形式對功能進(jìn)行功能分解、任務(wù)分配。編碼:開發(fā)人員根據(jù)功能分解、任務(wù)分配選取合適的語言進(jìn)行編碼。構(gòu)建:編寫腳本或者采用自動化工具將計算機(jī)源代碼編譯成二進(jìn)制可運(yùn)行代碼的過程。在這一過程需要對代碼進(jìn)行質(zhì)量檢查以及單元測試。圖1 DevOps管理總體框架測試:進(jìn)行功能型和非功能性測試并形成測試報告,主要包括API互相調(diào)用測試、集成測試、UI測試、性能測試、壓力測試、安全
8、測試等。發(fā)布:將測試通過的軟件打包上傳至軟件倉庫, 供各團(tuán)隊根據(jù)需要調(diào)用部署。部署:先部署到測試環(huán)境測試,再部署到準(zhǔn)生產(chǎn)環(huán)境進(jìn)行用戶接受度測試,測試全部通過后再正式發(fā)布至生產(chǎn)環(huán)境。運(yùn)維:運(yùn)維人員對應(yīng)用的運(yùn)行進(jìn)行各種監(jiān)控、測量、分析、評估。在這個階段會發(fā)現(xiàn)一些軟件的問題或收到最終用戶的新增、變更需求,運(yùn)維人員需要將這些問題及需求反饋至計劃階段,重新迭代整個持續(xù)集成/部署流程。(二)DevOps持續(xù)集成的主要特點一是版本管理標(biāo)準(zhǔn)化。較成熟常用的是以GIT為內(nèi)核的版本控制,首先在版本服務(wù)器上創(chuàng)建源碼分支,先將代碼提交至源碼分支,再合并分支至主干。一方面可以按需靈活地增加程序功能,縮短應(yīng)用迭代流程的時
9、間;另一方面可以準(zhǔn)確地定位問題,簡化調(diào)試。同時,版本自動化工具的使用使開發(fā)人員更加專注于編碼,減少編碼階段出現(xiàn)bug的幾率,從而提升代碼質(zhì)量。圖2 基于DevOps的應(yīng)用生命周期管理二是構(gòu)建過程自動觸發(fā)。版本管理服務(wù)器檢測到有代碼合并后會自動觸發(fā)構(gòu)建服務(wù)器,代碼檢測工具自動進(jìn)行代碼靜態(tài)檢查,減少了等待時間。自動化工具讓代碼的回滾、更新、配置、構(gòu)造變得更加迅速,保證了軟件的一致性,優(yōu)化了流程效率。按需決定是否進(jìn)行代碼人工審查,可以根據(jù)用戶或者運(yùn)維人員對應(yīng)用運(yùn)行的安全性、穩(wěn)定性、質(zhì)量需求的要求,由上級主管或者系統(tǒng)工程師人工對代碼進(jìn)行更加嚴(yán)格的審查篩選,更好地滿足代碼質(zhì)量要求。三是持續(xù)自動化測試。在
10、短迭代周期持續(xù)進(jìn)行自動化回歸測試,能完備地覆蓋新舊功能,更快更全 地發(fā) 現(xiàn)軟件bug,縮短問題的反饋周期,改善團(tuán)隊關(guān)系,提高協(xié)作效率。四是資源共享。將發(fā)布包存儲至軟件倉庫, 可以進(jìn)行反復(fù)調(diào)用并靈活地部署到測試環(huán)境,讓發(fā)布和部署流程在某種程度上達(dá)到并行的效果,減少軟件修復(fù)時間和產(chǎn)品上線時間。DevOps持續(xù)集成流程如圖3所示。圖3 DevOps持續(xù)集成流程(三)DevOps持續(xù)部署主要特點一是從軟件版本控制到發(fā)布至用戶手中為自動化流水線形式。順序的自動化流程保證了軟件的連續(xù)性,同時能提升持續(xù)部署的效率。二是對軟件的每次變更都會經(jīng)歷標(biāo)準(zhǔn)的流程,這一流程包含構(gòu)建軟件以及后續(xù)一系列不同階段的測試和部署
11、工作。迭代完備的流程使軟件功能更便捷,同時也保證了軟件質(zhì)量的一致性。三是部署流水線支持查看并控制整個流程,包括每次變更被提交到版本控制庫開始,直到各類測試和部署,再發(fā)布給用戶的過程。開發(fā)人員和運(yùn)維人員可以更高效地溝通軟件功能需求、軟件質(zhì)量變化。DevOps持續(xù)部署流程如圖4所示。圖4 DevOps持續(xù)部署流程三、DevOps工具鏈工具介紹(一)開發(fā)任務(wù)管理Redmine是一個靈活的、跨平臺、跨數(shù)據(jù)庫的項目管理Web應(yīng)用程序。其采用Ruby on Rails框架編寫。主要有以下特征:多項目支持、靈活的基于角色的訪問控制、柔性問題跟蹤系統(tǒng)、甘特圖和日歷、新聞、文獻(xiàn)、檔案管理、進(jìn)貨和電子郵件通知、時
12、間跟蹤、問題跟蹤、時間條目、項目和用戶的自定義字段、供應(yīng)鏈管理集成、通過電子郵件創(chuàng)建問題、多LDAP身份驗證支持、用戶自注冊支持、多語言支持、多數(shù)據(jù)庫支持。(二)版本管理Git是一個開源分布式版本控制系統(tǒng),可以高效管理項目版本,優(yōu)于SCM工具,如SubVIEW,CVS,PrimCE和CaseCask,具有簡單的本地分支、方便的分級區(qū)域和多個工作流的特性。(三)單元測試Junit是一個編寫可重復(fù)測試的簡單框架。它是單元測試框架中XUnice體系結(jié)構(gòu)的一個實例,可以為問題、時間條目、項目和用戶自定義字段,字段可以采用不同的格式:文本、日期、布爾、整數(shù)、下拉列表和復(fù)選框。(四)靜態(tài)代碼檢查Check
13、style是一個自動檢查源代碼的工具,可以發(fā)現(xiàn)類設(shè)計問題、方法設(shè)計問題等,同時還可以檢查代碼布局和格式化的問題。(五)質(zhì)量反饋Sonar是一個開源代碼質(zhì)量檢查平臺,其調(diào)用Junit,Checkstyle等代碼質(zhì)量檢查工具進(jìn)行代碼質(zhì)量測試和代碼檢查,然后以Web頁面形式展示。同時,Sonar提供Eclipse插件,可以方便地在本地進(jìn)行源代碼的質(zhì)量管理。(六)功能測試Selenium是一套完備的Web應(yīng)用程序測試系統(tǒng),能夠測 試應(yīng)用與瀏覽器的兼容性,創(chuàng)建衰退測試以檢測軟件功能及用戶需求。Selen ium直接在瀏覽器中運(yùn)行,支持當(dāng)前各種主流瀏覽器如I E, Chrome,F(xiàn)irefox等。四、結(jié)語DevOps是原則和文化的統(tǒng)一,實施好DevOps需要摒棄傳統(tǒng)應(yīng)用開發(fā)中團(tuán)隊以自己為核心的觀念,要以敏捷生產(chǎn)的思維、標(biāo)準(zhǔn)的流程管理鏈接各個團(tuán)隊, 使團(tuán)隊之間目標(biāo)一致、協(xié)作高效。同時,自動化工具在整個DevOps應(yīng)用生命周期中起著非常重要的作用,高度的自動化貫穿整個流程,提高了團(tuán)隊反應(yīng)速度以及持續(xù)交付高質(zhì)量應(yīng)用的能力和速度。FTT 參考文獻(xiàn):Len Bass. DevO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長沙軌道交通職業(yè)學(xué)院《數(shù)據(jù)庫概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 揚(yáng)州中瑞酒店職業(yè)學(xué)院《管理研究方法與模型工具》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西省臨汾市2025屆數(shù)學(xué)三下期末監(jiān)測模擬試題含解析
- 口腔醫(yī)學(xué)述職報告
- 教培機(jī)構(gòu)分校長述職報告
- 產(chǎn)褥期基礎(chǔ)知識要點
- 倉儲部出貨培訓(xùn)
- 操作系統(tǒng)磁盤管理
- 教育史中的夸美紐斯
- 信息技術(shù) 第二冊(五年制高職)課件 9.1.3 人工智能的社會價值
- 高級職稱(副高)護(hù)理學(xué)考點秘籍
- 診所消防安全管理制度模版(2篇)
- 移動營業(yè)廳安全生產(chǎn)
- 骨搬運(yùn)手術(shù)術(shù)前術(shù)后護(hù)理
- 空調(diào)水系統(tǒng)安裝施工方案
- 音樂療愈課件
- 《冗余度機(jī)器人》課件
- 《鹿角和鹿腿》第二課時公開課一等獎創(chuàng)新教學(xué)設(shè)計
- 八項規(guī)定解讀
- 催收團(tuán)隊管理經(jīng)驗分享
- 信息系統(tǒng)工程項目監(jiān)理方案
評論
0/150
提交評論