iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
DevOps

任務導向的Azure DevOps 系列文系列 第 29

Day 29 任務導向的Azure DevOps 系列文 - 進入交付營運環境 - Review 的控制點設計

  • 分享至 

  • xImage
  •  

先來看要併入 main Pull Request 的審核與投票設計

昨天在最後提出了所謂Release note的概念,其實就是要解決審核及查核人員的困境,那我們就應該要把相關的資訊,例如昨天列的那一系列證明我們是依照那些需求開發、進行了多少相關的測試、確認這次要上線的產物版本一致。

在進入到要提供上述的那些事務,第一個關卡就是AP Leader的關卡,他會需要審核程式碼修改的內容、相關的工作項目以及測試的結果。其實前兩項都可以在Pull request去完成,但測試結果會在Test Plan呈現,因此就會需要在PR的時候提供額外的資訊。

但在這之前我們先回到Pull Request 的Policy設定,在Day 8的時候有說到正式環境需要最少的reviewers 是2名,然後我們在最下面的Automatically included reviewers,指定了科長一定要做為reviewer。但是後來在內部討論後,我被問到萬一科長請假,代理人怎麼辦?因此討論不能寫死這件事情。

所以我們先跑去Project Settings -> Permissions,建立了一個 AP Leader group。

https://ithelp.ithome.com.tw/upload/images/20231007/201628000peAnOzsOW.png

那因為大部分的科內配置,大多有科長與組長,通常當科長不在的時候會有組長作為代理,因此我們將科組長都列到這個群組成員中,像我這次的範例就是四名。

https://ithelp.ithome.com.tw/upload/images/20231007/20162800Fv7KeTmeq3.png

再來就是到Repositories-> repo name-> branch-> policies-> Automatically included reviewers進行設定。
https://ithelp.ithome.com.tw/upload/images/20231007/20162800s97jE9t4us.png

這次我們把AP Leader加進去,而且我們最少審核者需要兩名,這樣當我們發Pull Request 的時候,這個群組中至少需要兩名成員按下許可的按鈕。但如果今天是設定多個個人或是多個群組,那表示已個人或是群組為單位,每個人(及群組代表)都需要按下認可,那這個欄位就會被反灰回來。

另外,之前我們在上面的branch policies有把 Require a minimum number of reviwers給打開,而且設定兩名。筆者在實驗的時候發現,如果下面指定了一個group 要approval,那上面這邊如果也打開來,上面的數字會排除在group中的成員。例如山姆大叔是在AP Leader group 裡面,那我的投票僅會強制被算在這個group中,並不會被重複計算到上面的review中。在這前提之下,我就先把上面關閉了。

https://ithelp.ithome.com.tw/upload/images/20231007/201628005SXsiYQV6A.png

再來看的Environment的審核設計

上面講完AP Leader 的審核,現在要說Operator的審核設計了。因為實際上在佈署這件事情是直接寫在pipeline,當在hosted pipeline上面編譯好後,就會一路奔向environment去進行佈署作業了。那在Environment那邊其實也有審核機制的,我們看一下操作圖:
https://ithelp.ithome.com.tw/upload/images/20231007/20162800y6SiFbVxxA.png

https://ithelp.ithome.com.tw/upload/images/20231007/20162800pfFG41Vsfl.png

https://ithelp.ithome.com.tw/upload/images/20231007/20162800tcygQCJN1g.png

在這裡我把AP Leader 以及OP都帶入了,而且下了一些註解。這個設定會在Pipeline 要使用到這個資源進行佈署的時候,就會發信呼叫審核者須進行審核的動作。

Release note

Release note 其實是內部提出來,專門要提供給審核者以及未來查核者確認,到底每次要上線到營運環境的版本是否正確、相關檢核資訊是否也完備,都整理出來好讓審核人員以查核人員可以確認資訊。

我們目前打算做在wiki上,格式大概如下:
https://ithelp.ithome.com.tw/upload/images/20231008/20162800V1R1C9HsyR.png

我們會要求每一次進版到正式環境,都需要填寫這一份初稿,而且在Create Pull Request時,就會把這份Release note 的連結上。也會把Pull Request的Link 也回填到這份wiki上。這樣的好處是,這份Release note 會敘述接下來要進行佈署營運環境的一些敘述,所以可以方便審核的AP Leader可以點入觀看。同樣的在觀看Release note的審核人員,也可以依據需求直接就點到Pull Request去進行細節確認。

那這份Release note 應該要落下一些資訊,我們認為應該要有:

  • 版號:目前我們打算使用語意化版本的方式進行版本控管,也就是major.minor.patch的三位數字進行,這目前是大方向。
  • 日期:敘述寫這份文件的時間。
  • 預計發布日期:這裡敘述了屆時營運環境更版的時間。
  • 發布內容,這裡的狀態應該都要已經是交付並驗證完畢:
    • 需求,也就是user story的部分,也就是使用者驗收項目。
    • Bug,修正項目。
  • 需求單位通知:這裡要註記起當時開立這些需求,或是Bug單的單位以及其主管,作為一個通知。
  • 測試內容:這邊預計簡單敘述Test Plan的一些測試的說明,告知Test Plan的名稱,以及一些其他的敘述。

那當然,上面這份算是我們的初版Release note,未來是可能因為其他人意見而在進行調整。但整份Release note 就是為了正視版本發布至營運環境的說明,並通知相關人等預計型的時間。

再來,就是讓我們試跑一次看看了。


上一篇
Day 28 任務導向的Azure DevOps 系列文 - 進入交付營運環境 - Review 的思考
下一篇
Day 30 任務導向的Azure DevOps 系列文 - 進入交付營運環境 - 完整的一次交付模擬。 End。
系列文
任務導向的Azure DevOps 系列文30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言