所有系統提測和上線流程均需按以下流程嚴格執行
1 需求上線(指產品推動,基於 PRD 的需求上線)
1.1 提測
-
提測使用的分支必須為 test 分支
-
測試非必要的情況下必須使用泳道,以后的測試骨干鏈路會禁止 RD 手工發布
-
提測前一天必須提 PR,至少包含系統負責人和 TL,2 個 approve之后合並到 test 分支后提測 各系統主 R
-
所有的提測項目必須提供提測文檔,提測文檔模板見 需求上線計划模板
-
客戶端快照版本管理需要登記到文檔中各客戶端包版本登記
1.2 上線前准備
-
提前一天merge 代碼,RD 提 PR 將開發分支(不能用 test 分支)的代碼合並到 release 分支,至少包含系統負責人和 TL,2 個 approve之后合並
-
所有的需求上線前必須提交系統上線計划文檔 ,模板見 TODO
1.3 預上線階段
-
修改數據庫、es 、redis 等基礎組件的配置
-
編譯 release 分支上線 st 環境
-
打正式的客戶端 release 包 各客戶端包版本登記
-
修改 MCC 配置
-
讓 QA 進行 ST 環境的驗證
1. 4 正式上線
-
QA 打 tag 合並到 master 分支,如新服務沒有 ci,手工提 PR 合並到 master 分支
-
RD檢查 master 分支的代碼,整體 check 一下修改點,防止有遺漏的合並的代碼或者沖突被覆蓋的代碼
-
編譯 tag 的代碼為上線版本
-
提前准備回滾版本( plus 會自動有線上包,如果不能用,使用上一次上線的包,或者重新使用上一次上線的 tag 重新打包)
-
在 打車系統值班 群中發布上線周知
-
先灰度一台機器,進入觀察階段(見下一步 上線后觀察),觀察無誤后,發剩余的機器
1.5 觀察階段
-
上線后必須觀察,超過5分鍾的日志,觀察每一個異常,觀察本次修改的新日志是否按正常邏輯進行
-
觀察數據庫,ES,redis中的數據是否按設計的內容生成
-
全量上線完畢之后找 QA 驗證。
-
驗證后在 打車系統值班 群中發布上線完畢周知
2 技術優化上線(一般指性能優化,一般無 QA 測試)
2.1 上線前准備
-
提前一天merge 代碼,RD 提 PR 將開發分支的代碼合並到 release 分支,至少包含系統負責人和 TL,2 個 approve之后合並
-
上線前必須提交系統上線計划文檔 ,模板見 技術優化上線計划模板
2.2 預上線階段
-
修改數據庫、es 、redis 等基礎組件的配置
-
編譯 release 分支上線 st 環境
-
修改 MCC 配置
2.3 正式上線
-
QA 打 tag 合並到 master 分支,如新服務沒有 ci,手工提 PR 合並到 master 分支
-
RD檢查 master 分支的代碼,整體 check 一下修改點,防止有遺漏的合並的代碼或者沖突被覆蓋的代碼
-
編譯 tag 的代碼為上線版本
-
提前准備回滾版本( plus 會自動有線上包,如果不能用,使用上一次上線的包,或者重新使用上一次上線的 tag 重新打包)
-
在 打車系統值班 群中發布上線周知
-
先灰度一台機器,進入觀察階段(見下一步 上線后觀察),觀察無誤后,發剩余的機器
2.4 觀察階段
-
上線后必須觀察,超過5分鍾的日志,觀察每一個異常並定位,觀察本次修改的新日志是否按正常邏輯進行
-
觀察數據庫,ES,redis中的數據是否按設計的內容生成
-
驗證后在 打車系統值班 群中發布上線完畢周知
3 Bug上線(一般 改 bug,一般無 QA 測試,無數據庫等中間件改動)
3.1 上線前准備
-
RD 提 PR 將開發分支的代碼合並到 release 分支,至少包含系統負責人和 TL,2 個 approve之后合並
-
上線前必須提交系統上線計划文檔 ,模板見 bug修復上線計划模板
3.2 預上線階段
-
編譯 release 分支上線 st 環境
3.3 正式上線
-
手工提 PR 合並到 master 分支
-
RD檢查 master 分支的代碼,整體 check 一下修改點,防止有遺漏的合並的代碼或者沖突被覆蓋的代碼
-
提前准備回滾版本( plus 會自動有線上包,如果不能用,使用上一次上線的包,或者重新使用上一次上線的 tag 重新打包)
-
在 打車系統值班 群中發布上線周知
-
先灰度一台機器,進入觀察階段(見下一步 上線后觀察),觀察無誤后,發剩余的機器
3.4 觀察階段
-
上線后必須觀察,超過5分鍾的日志,觀察每一個異常並定位,觀察本次修改的新日志是否按正常邏輯進行
-
驗證后在 打車系統值班 群中發布上線完畢周知
4 緊急上線(已經影響了線上,必須立刻修復的問題)
4.1 上線前准備
-
RD 直接合並代碼到 release 分支
4.2 預上線階段
-
跳過預發布環節
4.3 正式上線
-
提前准備回滾版本( plus 會自動有線上包,如果不能用,使用上一次上線的包,或者重新使用上一次上線的 tag 重新打包)
-
緊急上線使用 release 分支來上線
-
在 打車系統值班 群中發布上線周知
-
先灰度一台機器,進入觀察階段(見下一步 上線后觀察),觀察無誤后,發剩余的機器
4.4 觀察階段
-
上線后必須觀察,超過5分鍾的日志,觀察每一個異常並定位,觀察本次修改的新日志是否按正常邏輯進行
-
驗證后在 打車系統值班 群中發布上線完畢周知
-
驗證無誤之后,合並代碼到 master
-
補充上線文檔 模板緊急上線計划模板
5 異常回滾
-
觸發大量告警必須第一時刻立刻回滾
-
在 打車系統值班 群中發布回滾周知
-
定位問題,並在上線計划文檔中填寫問題分析,未填寫問題分析不允許再次上線
-
填寫完問題分析后,與系統負責人或 TL 共同確認問題定位是否正確及修正思路
-
確認完畢后修改代碼及上線計划文檔后,重新進入上線流程