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