自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

微服務(wù)開發(fā)的軟件過程

開發(fā) 開發(fā)工具
支付系統(tǒng)基礎(chǔ)設(shè)施建設(shè)一文簡單描述了持續(xù)集成的所需要的基礎(chǔ)軟件。

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

- 人管代碼,代碼管機(jī)器

- 人管代碼,代碼管機(jī)器

- 人管代碼,代碼管機(jī)器

一、軟件過程

Jira原是設(shè)計(jì)來進(jìn)行Bug跟蹤的系統(tǒng),后來系統(tǒng)功能逐步完善后,被廣泛適用于軟件過程管理。Jira優(yōu)勢在于簡單,好用。 這里就不介紹Jira的具體使用。 使用Jira進(jìn)行軟件項(xiàng)目管理,首先需要定義任務(wù)的處理流程。 以下是一個(gè)參考流程:

在這個(gè)流程中,需要區(qū)分兩個(gè)概念:任務(wù)和子任務(wù)。 每個(gè)任務(wù)對應(yīng)一個(gè)完整的業(yè)務(wù)需求,比如對賬、對接工行借記卡、獲取個(gè)人優(yōu)惠券列表接口。這些業(yè)務(wù)需求每個(gè)都是可以獨(dú)立測試的。子任務(wù)設(shè)置相對比較簡單,每個(gè)子任務(wù)對應(yīng)這在本次任務(wù)執(zhí)行中需要修改的開發(fā)項(xiàng)目。 比如對接工行借記卡,會涉及到:

  1. 支付網(wǎng)關(guān)項(xiàng)目調(diào)整;
  2. 支付路由項(xiàng)目中增加路由選項(xiàng);
  3. 工行借記卡通道對接。

三個(gè)項(xiàng)目的修改,那會對應(yīng)在這個(gè)任務(wù)下建立三個(gè)子任務(wù)。

  • 任務(wù)是用來追蹤項(xiàng)目過程的,這是項(xiàng)目經(jīng)理和產(chǎn)品經(jīng)理關(guān)注的層次。
  • 子任務(wù)是用來支持開發(fā)自動(dòng)化的,這是開發(fā)人員關(guān)注的層次。

這樣,針對任務(wù)和子任務(wù),會設(shè)置不同的屬性:

1.1 需求管理

Jira也是一個(gè)不錯(cuò)的需求管理工具。產(chǎn)品經(jīng)理可以通過Jira來執(zhí)行需求管理,相對開發(fā)來說,需求管理流程會比較簡單,一般是開發(fā)需求、審核需求、關(guān)閉需求三個(gè)環(huán)節(jié)即可。 需要注意的地方是:

  1. 需求管理流程需要和開發(fā)流程分離,畢竟這是不同的團(tuán)隊(duì)做的事情。
  2. 開發(fā)任務(wù)可以和需求任務(wù)相關(guān)聯(lián)。Jira通過復(fù)制任務(wù)來提供這個(gè)支持。

一個(gè)需求任務(wù)可以對應(yīng)多個(gè)開發(fā)任務(wù),這在實(shí)際操作中是很常見的:

  1. 為了滿足上線要求,一個(gè)需求任務(wù)會被拆分成多個(gè)開發(fā)任務(wù),先完成核心功能開發(fā)并上線,再完成外圍功能開發(fā)。這兩次獨(dú)立上線的工作,會被拆分為2個(gè)或者更多的開發(fā)任務(wù);
  2. 如果對不同平臺,比如Android,IOS,PCweb有不同的上線時(shí)間要求和技術(shù)需求,也需要將當(dāng)前需求按照目標(biāo)平臺來拆分成開發(fā)任務(wù)。

1.2 創(chuàng)建任務(wù)

如上所述,開發(fā)任務(wù)的來源有兩個(gè):

  • 需求任務(wù),即對應(yīng)產(chǎn)品經(jīng)理提的需求
  • 優(yōu)化任務(wù),這一般是開發(fā)團(tuán)隊(duì)內(nèi)部進(jìn)行重構(gòu)或者性能優(yōu)化來提的開發(fā)任務(wù)。

那任務(wù)的粒度如何把握? 每個(gè)開發(fā)任務(wù)是一個(gè)完整的需求,是可以獨(dú)立執(zhí)行測試和驗(yàn)證的。 每個(gè)任務(wù)開發(fā)周期控制在1個(gè)月以內(nèi)。

1.3 創(chuàng)建子任務(wù)

在接收到開發(fā)任務(wù)后,開發(fā)人員需要對系統(tǒng)實(shí)現(xiàn)進(jìn)行設(shè)計(jì)和分解,確定需要新開發(fā)的內(nèi)容以及需要改進(jìn)的工作。 在微服務(wù)架構(gòu)中,一次任務(wù)開發(fā)會涉及到多個(gè)系統(tǒng)的變更。這樣就需要為每個(gè)系統(tǒng)建立一個(gè)獨(dú)立的子任務(wù),以后,我們將按照這個(gè)子任務(wù)的設(shè)置來驅(qū)動(dòng)開發(fā)流程。 每個(gè)子任務(wù)開發(fā)周期盡量限制2天以內(nèi),不能超過一周。

1.4 啟動(dòng)主任務(wù)開發(fā)

主任務(wù)啟動(dòng)開發(fā)流程比較簡單,主要是郵件通知到各相關(guān)人員,可以啟動(dòng)該任務(wù)。

1.5 啟動(dòng)子任務(wù)開發(fā)

子任務(wù)的啟動(dòng)和執(zhí)行,是整個(gè)流程的核心工作。

這里如果是使用git/gitlab來做版本控制,整個(gè)流程的要點(diǎn)在于:

  1. 如果需要新建項(xiàng)目來開發(fā),則由開發(fā)人員填寫新項(xiàng)目的名稱、類型(Web, RPC, 工具類等),在git上創(chuàng)建一個(gè)項(xiàng)目框架,包含必要的基礎(chǔ)文件。
  2. 郵件通知開發(fā)人員需要下載的項(xiàng)目代碼庫地址。
  3. 開發(fā)人員簽出代碼到本地,執(zhí)行開發(fā)工作。
  4. 開發(fā)人員隨時(shí)可以簽入代碼到服務(wù)器上,發(fā)出Merge Request;
  5. gitlab在接受簽入前,執(zhí)行靜態(tài)代碼檢查。靜態(tài)代碼檢查的工具有findbugs, PMD, Sonar等。 開發(fā)人員在開發(fā)時(shí)也必須自我進(jìn)行靜態(tài)檢查,這里執(zhí)行檢查是避免開發(fā)人員漏查。
  6. 執(zhí)行單元測試;
  7. 通知相關(guān)人員進(jìn)行代碼審核;
  8. 執(zhí)行代碼審核;
  9. 符合審核條件(如至少有2個(gè)人同意),審核通過, 代碼被自動(dòng)合并到主干版本。
  10. 通知子任務(wù)可以提測。 當(dāng)然,是否提測,是由開發(fā)人員來決定。

1.6 子任務(wù)和任務(wù)提測

子任務(wù)開發(fā)完成后,即可提測。子任務(wù)提測時(shí),將觸發(fā)Jenkins進(jìn)行測試環(huán)境部署。 測試有兩種方式:自動(dòng)測試和人工測試。盡量采用自動(dòng)測試,使得開發(fā)人員能夠及時(shí)發(fā)現(xiàn)問題。 所有子任務(wù)完成后,主任務(wù)可以提測。主任務(wù)提測后,如果是人工測試,則測試人員介入開始執(zhí)行測試任務(wù);如果是自動(dòng)測試,則開始運(yùn)行集成測試腳本。

測試通過后, 既可以準(zhǔn)備上線。

1.7 預(yù)部署和全部署

一般上線會分為兩步,預(yù)部署和全部署。預(yù)部署的目的是先驗(yàn)證系統(tǒng)在線上環(huán)境運(yùn)行是否正常,減少回滾成本。特別是在部署服務(wù)器特別多的情況下,先部署1-2臺機(jī)器,可以在線上驗(yàn)證本次上線是否可以。 驗(yàn)證通過后,既可以執(zhí)行全部署。 注意,預(yù)部署和全部署都是針對子任務(wù)而言。

少數(shù)公司會要求上線前進(jìn)行審批,但這樣做是不利于流程自動(dòng)化的。 一天幾十次上線,誰能知道這是不是可以上。 但有一點(diǎn)很重要,系統(tǒng)上線前,必須通知到相關(guān)的使用方。如果出現(xiàn)問題,使用方可以盡快知悉。

二、項(xiàng)目文件結(jié)構(gòu)

開發(fā)參考目錄結(jié)構(gòu):

從這個(gè)目錄里面我們可以看到,和項(xiàng)目相關(guān)的部署用腳本,需要由項(xiàng)目開發(fā)人員自己來維護(hù),用以保證部署工作能夠自動(dòng)執(zhí)行。包括驗(yàn)證項(xiàng)目部署成功的腳本。 驗(yàn)證項(xiàng)目是否部署成功,一種方式是在日志中打樁,grep到這個(gè)日志,即意味著系統(tǒng)成功啟動(dòng);一種方式是調(diào)用接口來驗(yàn)證是否成功。

部署目錄參考:

總之,微服務(wù)項(xiàng)目的管理核心理念在于“自動(dòng)化”,消除人為因素。人管代碼,代碼管機(jī)器,最終目標(biāo)是要實(shí)現(xiàn)自動(dòng)上線。 消除人工測試,取代以自動(dòng)化測試;消除人工驗(yàn)證,取代以自動(dòng)驗(yàn)證;消除人工部署,取代以自動(dòng)化部署。 這樣,再多的項(xiàng)目,也能夠很好的進(jìn)行管理。

【本文為51CTO專欄作者“鳳凰牌老熊”的原創(chuàng)稿件,轉(zhuǎn)載請通過微信公眾號“鳳凰牌老熊”聯(lián)系作者本人】

戳這里,看該作者更多好文

 

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2023-04-10 07:23:24

軟件微服務(wù)網(wǎng)絡(luò)

2019-08-16 08:59:33

技術(shù)軟件HTML

2023-11-06 08:55:31

2023-09-02 20:55:04

微服務(wù)架構(gòu)

2017-07-17 15:50:17

微服務(wù)Docker架構(gòu)

2016-06-03 09:59:43

微服務(wù)架構(gòu)敏捷

2020-09-26 10:56:33

服務(wù)器熔斷服務(wù)隔離

2022-12-31 14:51:48

微服務(wù)Golang

2022-06-02 07:51:06

RainbondNocalhost微服務(wù)

2018-12-17 16:44:49

Golang微服務(wù)

2018-12-17 16:39:20

Golang微服務(wù)

2018-12-17 16:48:05

Golang微服務(wù)

2021-07-02 06:54:45

軟件架構(gòu)模式

2017-05-25 12:40:06

SOA微服務(wù)系統(tǒng)

2017-03-28 12:23:04

軟件開發(fā)云DevOps

2019-08-06 13:37:55

微服務(wù)架構(gòu)數(shù)據(jù)

2019-09-10 11:34:23

軟件技術(shù)數(shù)據(jù)庫

2022-06-08 08:52:04

Tars微服務(wù)開發(fā)C++開發(fā)

2024-07-02 14:23:12

2009-11-23 20:39:21

ibmdw敏捷開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號