DevOps開發(fā)運(yùn)維管理探析_第1頁
DevOps開發(fā)運(yùn)維管理探析_第2頁
DevOps開發(fā)運(yùn)維管理探析_第3頁
DevOps開發(fā)運(yùn)維管理探析_第4頁
DevOps開發(fā)運(yùn)維管理探析_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 DevOps開發(fā)運(yùn)維管理探析摘 要:由于傳統(tǒng)IT部門的開發(fā)人員和運(yùn)維人員之間存在目的差異,兩個(gè)團(tuán)隊(duì)之間容易產(chǎn)生矛盾,這將導(dǎo)致內(nèi)部合作產(chǎn)生摩擦、降低協(xié)作效率,甚至可能產(chǎn)生質(zhì)量問題,延遲部署,進(jìn)而影響了整個(gè)應(yīng)用的交付運(yùn)維。本文針對DevOps的應(yīng)用開發(fā)運(yùn)維,介紹其流程架構(gòu)、不同過程的具體活動(dòng)以及相關(guān)工具鏈工具,進(jìn)而探討了 DevOps的特點(diǎn)及其相對于傳統(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流程活動(dòng) PAGEREF _Toc14616644 h 4 HYPERLINK l _Toc14616645 (二)DevOps持續(xù)集成的主要特點(diǎn) PAGEREF _Toc14616645 h 5 HYPERLINK l _Toc14616646 (三)DevOps持續(xù)部署主要特點(diǎn) 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ù)、云計(jì)算、移動(dòng)互聯(lián)網(wǎng)發(fā)展正興,軟件需要以更快的速度和頻率交付部署。在傳統(tǒng)的應(yīng)用程序生命周期管理(ALM)過程中,開發(fā)團(tuán)隊(duì)是根據(jù)其交付給最終用戶的業(yè)務(wù)價(jià)值來衡量的,而運(yùn)維管理是根據(jù)生產(chǎn)環(huán)境的健康和穩(wěn)定性來衡量的。當(dāng)兩個(gè)團(tuán)隊(duì) 的目標(biāo)不一致時(shí),將會

5、產(chǎn)生矛盾,導(dǎo)致協(xié)作效率低下、產(chǎn)品交付延遲、產(chǎn)生質(zhì)量問題等。引入DevOps不僅能解決上述矛盾,而且能提高應(yīng)用本身的各項(xiàng)指標(biāo)、質(zhì)量,極大地提升用戶體驗(yàn),同時(shí)降低交付成本。一、DevOps簡介DevOps是Development和Operations的結(jié)合,是傳統(tǒng)的應(yīng)用程序生命周期管理(ALM)過程的一種新方法,其本質(zhì)是一種方法論。DevOps的焦點(diǎn)在于通過發(fā)展創(chuàng)造一個(gè)穩(wěn)定快速的開發(fā)工作流程和IT運(yùn)維,從而很好地融合開發(fā)和運(yùn)維兩個(gè)團(tuán)隊(duì),消除兩個(gè)團(tuán)隊(duì)之間的壁壘,改善和提升這兩個(gè)業(yè)務(wù)單位之間的溝通和協(xié)作關(guān)系。其能將敏捷應(yīng)用擴(kuò)展到生產(chǎn)端,完成跨部門的設(shè)計(jì)、開發(fā)、運(yùn)維支持工作,通過有效的自動(dòng)化工具幫助團(tuán)隊(duì)

6、快速可靠地部署并進(jìn)行創(chuàng)新,從而提高交付應(yīng)用程序和服務(wù)的能力。DevOps一方面縮短系統(tǒng)的上市部署時(shí)間,另一方面又能減少系統(tǒng)缺陷,極大地提升系統(tǒng)的質(zhì)量。DevOps由一系列基本原則和實(shí)踐構(gòu)成。其指導(dǎo)原則包括文化、測量、自動(dòng)化和共享。DevOps通過開發(fā)、質(zhì)量保證(QA)和運(yùn)維團(tuán)隊(duì)的努力將應(yīng)用開發(fā)和部署變成一個(gè)更精簡的過程,按需發(fā)布并能及時(shí)發(fā)現(xiàn)和糾正現(xiàn)有的問題,而不影響其他服務(wù)。整個(gè)過程具有小批量、短迭代、快速反饋、自動(dòng)化,其管理總體框架如圖1所示。二、基于DevOps的開發(fā)運(yùn)維管理流程DevOps開發(fā)運(yùn)維管理包含以持續(xù)集成/部署為核心的一系列活動(dòng),高效的自動(dòng)化貫穿整個(gè)生命周期。完善的流程、科學(xué)的

7、方法讓每個(gè)團(tuán)隊(duì)緊密聯(lián)合,應(yīng)用交付連續(xù)穩(wěn)定。其中,計(jì)劃、編碼、構(gòu)建、測試屬于持續(xù)集成階段,計(jì)劃、編碼、構(gòu)建、測試、發(fā)布、部署屬于持續(xù)部署階段,如圖2所示。(一)DevOps流程活動(dòng)計(jì)劃:根據(jù)需求規(guī)劃應(yīng)用開發(fā)的功能,在項(xiàng)目管理中采用甘特圖的形式對功能進(jìn)行功能分解、任務(wù)分配。編碼:開發(fā)人員根據(jù)功能分解、任務(wù)分配選取合適的語言進(jìn)行編碼。構(gòu)建:編寫腳本或者采用自動(dòng)化工具將計(jì)算機(jī)源代碼編譯成二進(jìn)制可運(yùn)行代碼的過程。在這一過程需要對代碼進(jìn)行質(zhì)量檢查以及單元測試。圖1 DevOps管理總體框架測試:進(jìn)行功能型和非功能性測試并形成測試報(bào)告,主要包括API互相調(diào)用測試、集成測試、UI測試、性能測試、壓力測試、安全

8、測試等。發(fā)布:將測試通過的軟件打包上傳至軟件倉庫, 供各團(tuán)隊(duì)根據(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)控、測量、分析、評估。在這個(gè)階段會發(fā)現(xiàn)一些軟件的問題或收到最終用戶的新增、變更需求,運(yùn)維人員需要將這些問題及需求反饋至計(jì)劃階段,重新迭代整個(gè)持續(xù)集成/部署流程。(二)DevOps持續(xù)集成的主要特點(diǎn)一是版本管理標(biāo)準(zhǔn)化。較成熟常用的是以GIT為內(nèi)核的版本控制,首先在版本服務(wù)器上創(chuàng)建源碼分支,先將代碼提交至源碼分支,再合并分支至主干。一方面可以按需靈活地增加程序功能,縮短應(yīng)用迭代流程的時(shí)

9、間;另一方面可以準(zhǔn)確地定位問題,簡化調(diào)試。同時(shí),版本自動(dòng)化工具的使用使開發(fā)人員更加專注于編碼,減少編碼階段出現(xiàn)bug的幾率,從而提升代碼質(zhì)量。圖2 基于DevOps的應(yīng)用生命周期管理二是構(gòu)建過程自動(dòng)觸發(fā)。版本管理服務(wù)器檢測到有代碼合并后會自動(dòng)觸發(fā)構(gòu)建服務(wù)器,代碼檢測工具自動(dòng)進(jìn)行代碼靜態(tài)檢查,減少了等待時(shí)間。自動(dòng)化工具讓代碼的回滾、更新、配置、構(gòu)造變得更加迅速,保證了軟件的一致性,優(yōu)化了流程效率。按需決定是否進(jìn)行代碼人工審查,可以根據(jù)用戶或者運(yùn)維人員對應(yīng)用運(yùn)行的安全性、穩(wěn)定性、質(zhì)量需求的要求,由上級主管或者系統(tǒng)工程師人工對代碼進(jìn)行更加嚴(yán)格的審查篩選,更好地滿足代碼質(zhì)量要求。三是持續(xù)自動(dòng)化測試。在

10、短迭代周期持續(xù)進(jìn)行自動(dòng)化回歸測試,能完備地覆蓋新舊功能,更快更全 地發(fā) 現(xiàn)軟件bug,縮短問題的反饋周期,改善團(tuán)隊(duì)關(guān)系,提高協(xié)作效率。四是資源共享。將發(fā)布包存儲至軟件倉庫, 可以進(jìn)行反復(fù)調(diào)用并靈活地部署到測試環(huán)境,讓發(fā)布和部署流程在某種程度上達(dá)到并行的效果,減少軟件修復(fù)時(shí)間和產(chǎn)品上線時(shí)間。DevOps持續(xù)集成流程如圖3所示。圖3 DevOps持續(xù)集成流程(三)DevOps持續(xù)部署主要特點(diǎn)一是從軟件版本控制到發(fā)布至用戶手中為自動(dòng)化流水線形式。順序的自動(dòng)化流程保證了軟件的連續(xù)性,同時(shí)能提升持續(xù)部署的效率。二是對軟件的每次變更都會經(jīng)歷標(biāo)準(zhǔn)的流程,這一流程包含構(gòu)建軟件以及后續(xù)一系列不同階段的測試和部署

11、工作。迭代完備的流程使軟件功能更便捷,同時(shí)也保證了軟件質(zhì)量的一致性。三是部署流水線支持查看并控制整個(gè)流程,包括每次變更被提交到版本控制庫開始,直到各類測試和部署,再發(fā)布給用戶的過程。開發(fā)人員和運(yùn)維人員可以更高效地溝通軟件功能需求、軟件質(zhì)量變化。DevOps持續(xù)部署流程如圖4所示。圖4 DevOps持續(xù)部署流程三、DevOps工具鏈工具介紹(一)開發(fā)任務(wù)管理Redmine是一個(gè)靈活的、跨平臺、跨數(shù)據(jù)庫的項(xiàng)目管理Web應(yīng)用程序。其采用Ruby on Rails框架編寫。主要有以下特征:多項(xiàng)目支持、靈活的基于角色的訪問控制、柔性問題跟蹤系統(tǒng)、甘特圖和日歷、新聞、文獻(xiàn)、檔案管理、進(jìn)貨和電子郵件通知、時(shí)

12、間跟蹤、問題跟蹤、時(shí)間條目、項(xiàng)目和用戶的自定義字段、供應(yīng)鏈管理集成、通過電子郵件創(chuàng)建問題、多LDAP身份驗(yàn)證支持、用戶自注冊支持、多語言支持、多數(shù)據(jù)庫支持。(二)版本管理Git是一個(gè)開源分布式版本控制系統(tǒng),可以高效管理項(xiàng)目版本,優(yōu)于SCM工具,如SubVIEW,CVS,PrimCE和CaseCask,具有簡單的本地分支、方便的分級區(qū)域和多個(gè)工作流的特性。(三)單元測試Junit是一個(gè)編寫可重復(fù)測試的簡單框架。它是單元測試框架中XUnice體系結(jié)構(gòu)的一個(gè)實(shí)例,可以為問題、時(shí)間條目、項(xiàng)目和用戶自定義字段,字段可以采用不同的格式:文本、日期、布爾、整數(shù)、下拉列表和復(fù)選框。(四)靜態(tài)代碼檢查Check

13、style是一個(gè)自動(dòng)檢查源代碼的工具,可以發(fā)現(xiàn)類設(shè)計(jì)問題、方法設(shè)計(jì)問題等,同時(shí)還可以檢查代碼布局和格式化的問題。(五)質(zhì)量反饋Sonar是一個(gè)開源代碼質(zhì)量檢查平臺,其調(diào)用Junit,Checkstyle等代碼質(zhì)量檢查工具進(jìn)行代碼質(zhì)量測試和代碼檢查,然后以Web頁面形式展示。同時(shí),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)一,實(shí)施好DevOps需要摒棄傳統(tǒng)應(yīng)用開發(fā)中團(tuán)隊(duì)以自己為核心的觀念,要以敏捷生產(chǎn)的思維、標(biāo)準(zhǔn)的流程管理鏈接各個(gè)團(tuán)隊(duì), 使團(tuán)隊(duì)之間目標(biāo)一致、協(xié)作高效。同時(shí),自動(dòng)化工具在整個(gè)DevOps應(yīng)用生命周期中起著非常重要的作用,高度的自動(dòng)化貫穿整個(gè)流程,提高了團(tuán)隊(duì)反應(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論