一 背景
金融級移動開發(fā)平臺 mPaaS(Mobile PaaS)為 App 開發(fā),、測試、運營及運維提供云到端的一站式解決方案,,能有效降低技術(shù)門檻,、減少研發(fā)成本、提升開發(fā)效率,,協(xié)助企業(yè)快速搭建穩(wěn)定高質(zhì)量的移動應(yīng)用,。在我們?nèi)粘_\維過程中發(fā)現(xiàn),大部分用戶對螞蟻的研發(fā)流程比較感興趣,,特別是在上百個開發(fā)者同時在一個app的環(huán)境內(nèi)進行高效開發(fā),,技術(shù)選型、研發(fā)流程還有線上運維是怎么做的,,成為大家關(guān)注的重點,。以下分享我的一些理解。
二 技術(shù)選型
目前研發(fā)模式分為Native模式和動態(tài)化模式兩種,,其中Native技術(shù)棧主要覆蓋基礎(chǔ)中間件,,還有核心高保鏈路或者變更很少的一些基礎(chǔ)頁面,比如收銀臺,,登錄頁面,,付款碼等,。其他場景業(yè)務(wù)一般會通過動態(tài)化的方式,解耦客戶端版本發(fā)布,。其中,,在線H5一般適用于活動營銷活動,離線包場景一般用于有固定入口的常駐業(yè)務(wù),,如果有跨端多投場景,一般會選擇小程序,,通過小程序的跨端發(fā)布實現(xiàn)多端投放,。
三 研發(fā)流程
1.需求階段:主要是需求評審,大家意見達成一致,。
2.開發(fā)階段:代碼開發(fā),,代碼合并以及打包等
3.測試階段:測試案例的編寫,功能測試,,兼容性測試等
4.集成階段:代碼改動申請進對應(yīng)的集成基線,進行集成驗證
5.發(fā)布階段: 通過內(nèi)灰,,外灰,渠道包全量,,站內(nèi)全量實現(xiàn)發(fā)布上線
四 分支管理
原則:基于分支開發(fā),,基于主干發(fā)布
1. 變更操作流程
- 創(chuàng)建變更
- 選擇倉庫,基于 Master 創(chuàng)建分支
- 在分支上打工程包,,打安裝包,,自測(可以基于變更分支創(chuàng)建 feature 分支,,并行開發(fā))
- 合并到 Master 打包、提測
- 申請集成,、發(fā)布
2. 獨立發(fā)布
主要用做區(qū)別于日常變更的獨立發(fā)布迭代,比如單獨針對某個廠商做的預(yù)裝包適配迭代,,就適用于獨立發(fā)布,。
3. 多App管理(雙Master)
使用場景:聚寶、香港支付寶,、口碑,、支付寶共用同一個代碼倉庫,同一代碼庫需要多app并行,,需要有自己獨立的master分支,,在合并的時候,在不同的app端進行多主干的合并,。
五 線上運維
1. 多維度灰度發(fā)布能力
MDS提供多維度的發(fā)布模式,,發(fā)布前需要經(jīng)過白名單灰度,內(nèi)部灰度,,外部灰度,,百分比灰度等多層次灰度,,不斷擴大灰度范圍,直到Crash率,,ANR率等穩(wěn)定性指標(biāo)達標(biāo)后才進行全量的發(fā)布,。
2. 多角度線上監(jiān)控
MAS提供了多角度的實時監(jiān)控指標(biāo)監(jiān)控,包括Crash率,,ANR率等核心指標(biāo),,同時這些核心的指標(biāo)上報都是通過實時通道完成的上報,方便問題的快速發(fā)現(xiàn),。
3. 輿情監(jiān)控
除了以上一些核心指標(biāo)的監(jiān)控,,同時提供了輿情的監(jiān)控平臺,開發(fā)者可以設(shè)置自己關(guān)注的關(guān)鍵字,,在灰度期間去查看相關(guān)產(chǎn)品的線上用戶輿情,,真實的反饋用戶問題。
4. 線上問題定位
通過上述的多渠道發(fā)現(xiàn)問題后,,首先可以通過客戶端上報的行為日志進行分析,,同時也可以通過MAS提供的日志拉取功能,拉取用戶的詳細(xì)日志進行進一步的診斷分析,。
5. 自動容災(zāi)降級
在積累了多年的客戶端問題處理經(jīng)驗后,,客戶端SDK內(nèi)部也沉淀了一套自恢復(fù)的容災(zāi)降級策略。比如對于多次啟動后重復(fù)閃退的用戶,,客戶端會嘗試在啟動后清除app私有目錄下的一些文件,,解決由于臟數(shù)據(jù)導(dǎo)致的極端重復(fù)閃退。
6. 線上問題修復(fù)
針對不同的問題提供了不同的能力實現(xiàn)動態(tài)修復(fù),,比如對Native模塊實現(xiàn)動態(tài)修復(fù)的hotpatch機制,。
本文為阿里云平臺