天天看點

mPaas運維之上線巡檢

一 背景

随着越來越多的金融行業基于

mPaas

搭建并上線新的App,App的上線品質也成為各個客戶關注的重點。上線前檢測哪些項目,如何檢測,檢測資料名額包括哪些成為我們思考的主要方向。借着上次去XX農信客戶去做線上功能檢測,加上之前多個mPaas曆史項目的踩過的坑,将App上線前mPaas相關檢測内容整理沉澱如下。

二 檢測方向

1. 安全性

1.1 RPC是否開啟國密加密

對應金融性質的App來說,資料通信安全至關重要,mPaas已經支援 ECC、RSA 和國密(SM2)三種方式,

在金融行業App内建議開啟加密配置為SM2國密加密,滿足行業監管要求。配置可以參考文檔:

連結

1.2 離線包是否開啟驗簽

mPaas運維之上線巡檢

為了保證下發到本地離線包的安全性,mPaas提供了離線包驗簽機制,保證了離線包的安全性。整體示意圖如上所示,使用者設定流程如下:

1. 開發者配置好一對公私鑰,私鑰放在服務端用于對離線包簽名,公鑰放在用戶端,用于對簽名對驗證。

2. 在離線包釋出平台,如果配置了簽名私鑰,平台下發的 amr 檔案就會帶上簽名資訊(通過私鑰對離線包的 hash 值加密後得到的密文)。

3. 用戶端在拿到 amr 包并解壓後,用戶端會使用在項目中預置的公鑰進行簽名的驗證(解密上一步的密文得到一個 hash 值,同時本地計算離線包的 hash 值,判斷兩者是否相同),如果相同則通過驗證。

4. 如果簽名校驗失敗,則删除離線包走fallback位址。

通過離線包的驗簽機制,可以達到以下的目的:

1. 保證了離線包的内容完整,解決解壓異常,讀取異常下的正常顯示

2. 保證了離線包的來源正确,不被本地惡意篡改

1.3 userId資訊是否設定正确

因為userId會被後續用到很多地方,比如推送,白名單。是以一般建議選擇服務端的userId字段作為存儲字段,友善後續和服務端做userId字段同步,不建議存儲個人手機号或者身份證等個人資訊作為userId。

1.4 埋點資訊是否包含敏感資訊,比如交易單号

考慮到埋點的量級很大,是以mPaas的埋點預設本地是沒有做資料加密的,是以埋點資訊不建議包含敏感字段,防止由于埋點導緻資訊洩漏。敏感字段建議走RPC的資料通道上報,保證資料安全。如果有埋點埋敏感字段的訴求,需要主動開啟埋點的本地加密配置。

1.5 隐私權限配置

由于現在監管機構對隐私權限管控比較嚴格,mPaas針對權限管控做了對應的接入方案。需要需要確定上線前隐私權限相關配置已經正常接入。

2. 穩定性

2.1 驗證在Android4.X版本的是否可以正常使用

mPaas最低支援Android4.3版本以上,是以釋出前需要驗證下低版本Android裝置的可用性,遇到比較多的是在Android4.X裝置上由于多dex加載導緻的類找不到導緻的安裝閃退問題。

2.2 iOS符号表是否正常上傳

釋出前需要確定iOS的符号表已經上傳到mPaas背景,友善背景反解閃退資訊。

2.3 熱修複子產品是否接入并且驗證通過

釋出前需要確定熱修複子產品的正常接入以及驗證通過,保證上線有針對Native子產品的熱修複能力,保證異常場景下的修複能力。

2.4 離線包Fallback域名确認

确認Fallback域名是否是外網可通路的位址,遇到過釋出後下發的還是内網位址的case

2.5 離線包子產品接入CDN

上線前做好容量評估,預設mPaas的離線包是存儲在OSS内的,但是一般建議針對離線包子產品接入CDN,通過CDN的緩存功能解決因為離線包下載下傳導緻帶寬打滿的風險,同時相對于OSS存儲來說,CDN的費用更低。接入示意圖如下:

mPaas運維之上線巡檢

2.6 RPC核心鍊路接口壓測

上線前需要對App核心鍊路的RPC接口做性能壓測,擷取接口性能瓶頸,可以用做後續的限流值的設定參考。同時需要針對RPC限流場景做演練,防止上線限流後用戶端出現各種異常。

2.7 釋出更新功能可用

上線前需要驗證釋出apk功能可用,包括釋出更新的強制更新功能,保證在極端場景下,需要強制更新使用。

3. 性能體驗

3.1 離線包離線功能是否正常生效

確定離線包的離線功能正常使用,防止由于離線包各種配置問題導緻離線功能不生效。

3.2 UC核心是否正常接入

確定UC核心正确配置接入,主要解決系統Webview下的各種相容性問題。同時UC提供了很好的穩定性,比系統webview更穩定。

3.3 核心鍊路離線包是否預制

在釋出前,需要預制核心鍊路離線包,保證核心鍊路在極端異常場景下仍然可以打開。

繼續閱讀