新聞中心
支付系統(tǒng)基礎(chǔ)設(shè)施建設(shè)一文簡(jiǎn)單描述了持續(xù)集成的所需要的基礎(chǔ)軟件。這里我們從軟件過(guò)程的角度,詳細(xì)介紹這些步驟。 支持持續(xù)集成所需要的基礎(chǔ)軟件,在該文中有介紹,請(qǐng)大家務(wù)必先閱讀。 這里我們以基于jira的過(guò)程管理為例來(lái)講述。 關(guān)于Jira軟件本身介紹、相對(duì)Redmine的優(yōu)勢(shì)等問(wèn)題,請(qǐng)大家自行查閱資料,不在本文介紹范圍。 在介紹這個(gè)過(guò)程之前,先強(qiáng)調(diào)一個(gè)觀點(diǎn):

十載的東臺(tái)網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整東臺(tái)建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“東臺(tái)網(wǎng)站設(shè)計(jì)”,“東臺(tái)網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
- 人管代碼,代碼管機(jī)器
- 人管代碼,代碼管機(jī)器
- 人管代碼,代碼管機(jī)器
一、軟件過(guò)程
Jira原是設(shè)計(jì)來(lái)進(jìn)行Bug跟蹤的系統(tǒng),后來(lái)系統(tǒng)功能逐步完善后,被廣泛適用于軟件過(guò)程管理。Jira優(yōu)勢(shì)在于簡(jiǎn)單,好用。 這里就不介紹Jira的具體使用。 使用Jira進(jìn)行軟件項(xiàng)目管理,首先需要定義任務(wù)的處理流程。 以下是一個(gè)參考流程:
在這個(gè)流程中,需要區(qū)分兩個(gè)概念:任務(wù)和子任務(wù)。 每個(gè)任務(wù)對(duì)應(yīng)一個(gè)完整的業(yè)務(wù)需求,比如對(duì)賬、對(duì)接工行借記卡、獲取個(gè)人優(yōu)惠券列表接口。這些業(yè)務(wù)需求每個(gè)都是可以獨(dú)立測(cè)試的。子任務(wù)設(shè)置相對(duì)比較簡(jiǎn)單,每個(gè)子任務(wù)對(duì)應(yīng)這在本次任務(wù)執(zhí)行中需要修改的開(kāi)發(fā)項(xiàng)目。 比如對(duì)接工行借記卡,會(huì)涉及到:
- 支付網(wǎng)關(guān)項(xiàng)目調(diào)整;
- 支付路由項(xiàng)目中增加路由選項(xiàng);
- 工行借記卡通道對(duì)接。
三個(gè)項(xiàng)目的修改,那會(huì)對(duì)應(yīng)在這個(gè)任務(wù)下建立三個(gè)子任務(wù)。
- 任務(wù)是用來(lái)追蹤項(xiàng)目過(guò)程的,這是項(xiàng)目經(jīng)理和產(chǎn)品經(jīng)理關(guān)注的層次。
- 子任務(wù)是用來(lái)支持開(kāi)發(fā)自動(dòng)化的,這是開(kāi)發(fā)人員關(guān)注的層次。
這樣,針對(duì)任務(wù)和子任務(wù),會(huì)設(shè)置不同的屬性:
1.1 需求管理
Jira也是一個(gè)不錯(cuò)的需求管理工具。產(chǎn)品經(jīng)理可以通過(guò)Jira來(lái)執(zhí)行需求管理,相對(duì)開(kāi)發(fā)來(lái)說(shuō),需求管理流程會(huì)比較簡(jiǎn)單,一般是開(kāi)發(fā)需求、審核需求、關(guān)閉需求三個(gè)環(huán)節(jié)即可。 需要注意的地方是:
- 需求管理流程需要和開(kāi)發(fā)流程分離,畢竟這是不同的團(tuán)隊(duì)做的事情。
- 開(kāi)發(fā)任務(wù)可以和需求任務(wù)相關(guān)聯(lián)。Jira通過(guò)復(fù)制任務(wù)來(lái)提供這個(gè)支持。
一個(gè)需求任務(wù)可以對(duì)應(yīng)多個(gè)開(kāi)發(fā)任務(wù),這在實(shí)際操作中是很常見(jiàn)的:
- 為了滿足上線要求,一個(gè)需求任務(wù)會(huì)被拆分成多個(gè)開(kāi)發(fā)任務(wù),先完成核心功能開(kāi)發(fā)并上線,再完成外圍功能開(kāi)發(fā)。這兩次獨(dú)立上線的工作,會(huì)被拆分為2個(gè)或者更多的開(kāi)發(fā)任務(wù);
- 如果對(duì)不同平臺(tái),比如Android,IOS,PCweb有不同的上線時(shí)間要求和技術(shù)需求,也需要將當(dāng)前需求按照目標(biāo)平臺(tái)來(lái)拆分成開(kāi)發(fā)任務(wù)。
1.2 創(chuàng)建任務(wù)
如上所述,開(kāi)發(fā)任務(wù)的來(lái)源有兩個(gè):
- 需求任務(wù),即對(duì)應(yīng)產(chǎn)品經(jīng)理提的需求
- 優(yōu)化任務(wù),這一般是開(kāi)發(fā)團(tuán)隊(duì)內(nèi)部進(jìn)行重構(gòu)或者性能優(yōu)化來(lái)提的開(kāi)發(fā)任務(wù)。
那任務(wù)的粒度如何把握? 每個(gè)開(kāi)發(fā)任務(wù)是一個(gè)完整的需求,是可以獨(dú)立執(zhí)行測(cè)試和驗(yàn)證的。 每個(gè)任務(wù)開(kāi)發(fā)周期控制在1個(gè)月以內(nèi)。
1.3 創(chuàng)建子任務(wù)
在接收到開(kāi)發(fā)任務(wù)后,開(kāi)發(fā)人員需要對(duì)系統(tǒng)實(shí)現(xiàn)進(jìn)行設(shè)計(jì)和分解,確定需要新開(kāi)發(fā)的內(nèi)容以及需要改進(jìn)的工作。 在微服務(wù)架構(gòu)中,一次任務(wù)開(kāi)發(fā)會(huì)涉及到多個(gè)系統(tǒng)的變更。這樣就需要為每個(gè)系統(tǒng)建立一個(gè)獨(dú)立的子任務(wù),以后,我們將按照這個(gè)子任務(wù)的設(shè)置來(lái)驅(qū)動(dòng)開(kāi)發(fā)流程。 每個(gè)子任務(wù)開(kāi)發(fā)周期盡量限制2天以內(nèi),不能超過(guò)一周。
1.4 啟動(dòng)主任務(wù)開(kāi)發(fā)
主任務(wù)啟動(dòng)開(kāi)發(fā)流程比較簡(jiǎn)單,主要是郵件通知到各相關(guān)人員,可以啟動(dòng)該任務(wù)。
1.5 啟動(dòng)子任務(wù)開(kāi)發(fā)
子任務(wù)的啟動(dòng)和執(zhí)行,是整個(gè)流程的核心工作。
這里如果是使用git/gitlab來(lái)做版本控制,整個(gè)流程的要點(diǎn)在于:
- 如果需要新建項(xiàng)目來(lái)開(kāi)發(fā),則由開(kāi)發(fā)人員填寫新項(xiàng)目的名稱、類型(Web, RPC, 工具類等),在git上創(chuàng)建一個(gè)項(xiàng)目框架,包含必要的基礎(chǔ)文件。
- 郵件通知開(kāi)發(fā)人員需要下載的項(xiàng)目代碼庫(kù)地址。
- 開(kāi)發(fā)人員簽出代碼到本地,執(zhí)行開(kāi)發(fā)工作。
- 開(kāi)發(fā)人員隨時(shí)可以簽入代碼到服務(wù)器上,發(fā)出Merge Request;
- gitlab在接受簽入前,執(zhí)行靜態(tài)代碼檢查。靜態(tài)代碼檢查的工具有findbugs, PMD, Sonar等。 開(kāi)發(fā)人員在開(kāi)發(fā)時(shí)也必須自我進(jìn)行靜態(tài)檢查,這里執(zhí)行檢查是避免開(kāi)發(fā)人員漏查。
- 執(zhí)行單元測(cè)試;
- 通知相關(guān)人員進(jìn)行代碼審核;
- 執(zhí)行代碼審核;
- 符合審核條件(如至少有2個(gè)人同意),審核通過(guò), 代碼被自動(dòng)合并到主干版本。
- 通知子任務(wù)可以提測(cè)。 當(dāng)然,是否提測(cè),是由開(kāi)發(fā)人員來(lái)決定。
1.6 子任務(wù)和任務(wù)提測(cè)
子任務(wù)開(kāi)發(fā)完成后,即可提測(cè)。子任務(wù)提測(cè)時(shí),將觸發(fā)Jenkins進(jìn)行測(cè)試環(huán)境部署。 測(cè)試有兩種方式:自動(dòng)測(cè)試和人工測(cè)試。盡量采用自動(dòng)測(cè)試,使得開(kāi)發(fā)人員能夠及時(shí)發(fā)現(xiàn)問(wèn)題。 所有子任務(wù)完成后,主任務(wù)可以提測(cè)。主任務(wù)提測(cè)后,如果是人工測(cè)試,則測(cè)試人員介入開(kāi)始執(zhí)行測(cè)試任務(wù);如果是自動(dòng)測(cè)試,則開(kāi)始運(yùn)行集成測(cè)試腳本。
測(cè)試通過(guò)后, 既可以準(zhǔn)備上線。
1.7 預(yù)部署和全部署
一般上線會(huì)分為兩步,預(yù)部署和全部署。預(yù)部署的目的是先驗(yàn)證系統(tǒng)在線上環(huán)境運(yùn)行是否正常,減少回滾成本。特別是在部署服務(wù)器特別多的情況下,先部署1-2臺(tái)機(jī)器,可以在線上驗(yàn)證本次上線是否可以。 驗(yàn)證通過(guò)后,既可以執(zhí)行全部署。 注意,預(yù)部署和全部署都是針對(duì)子任務(wù)而言。
少數(shù)公司會(huì)要求上線前進(jìn)行審批,但這樣做是不利于流程自動(dòng)化的。 一天幾十次上線,誰(shuí)能知道這是不是可以上。 但有一點(diǎn)很重要,系統(tǒng)上線前,必須通知到相關(guān)的使用方。如果出現(xiàn)問(wèn)題,使用方可以盡快知悉。
二、項(xiàng)目文件結(jié)構(gòu)
開(kāi)發(fā)參考目錄結(jié)構(gòu):
從這個(gè)目錄里面我們可以看到,和項(xiàng)目相關(guān)的部署用腳本,需要由項(xiàng)目開(kāi)發(fā)人員自己來(lái)維護(hù),用以保證部署工作能夠自動(dòng)執(zhí)行。包括驗(yàn)證項(xiàng)目部署成功的腳本。 驗(yàn)證項(xiàng)目是否部署成功,一種方式是在日志中打樁,grep到這個(gè)日志,即意味著系統(tǒng)成功啟動(dòng);一種方式是調(diào)用接口來(lái)驗(yàn)證是否成功。
部署目錄參考:
總之,微服務(wù)項(xiàng)目的管理核心理念在于“自動(dòng)化”,消除人為因素。人管代碼,代碼管機(jī)器,最終目標(biāo)是要實(shí)現(xiàn)自動(dòng)上線。 消除人工測(cè)試,取代以自動(dòng)化測(cè)試;消除人工驗(yàn)證,取代以自動(dòng)驗(yàn)證;消除人工部署,取代以自動(dòng)化部署。 這樣,再多的項(xiàng)目,也能夠很好的進(jìn)行管理。
【本文為專欄作者“鳳凰牌老熊”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過(guò)微信公眾號(hào)“鳳凰牌老熊”聯(lián)系作者本人】
網(wǎng)頁(yè)名稱:微服務(wù)開(kāi)發(fā)的軟件過(guò)程
文章分享:http://www.dlmjj.cn/article/dppsdji.html


咨詢
建站咨詢
