題面
CVTE目前有一款軟件升級服務(wù)OTA。 工作原理: PC端軟件向服務(wù)器請求獲取該軟件升級安裝包,但下載軟件升級包需耗費CDN流量費用(每天CDN流量費用=每天CDN流量峰值*流量單價,如:25 日CDN流量費用=100M * 20元/M),產(chǎn)品經(jīng)理需求如下:
升級類型分為主動升級與靜默升級 主動升級指用戶主動軟件升級,要求不受CDN流量控制,能獲取升級包 靜默升級指軟件自動發(fā)起升級,服務(wù)根據(jù)CDN流量峰值情況智能分配軟件升級包,可能不能獲取到升級包
OTA服務(wù)能設(shè)置白名單,白名單配置的軟件不受CDN流量管控,能獲取升級包
OTA軟件服務(wù)可以設(shè)置CDN流量峰值閾值,靜默升級軟件時受CDN流量閾值控制
盡可能降低軟件升級成本
請您給出OTA服務(wù)設(shè)計方案,使?jié)M足軟件升級需求同時,CDN成本費用最低
備注: CDN(Content Delivery Network)是指內(nèi)容分發(fā)網(wǎng)絡(luò),也稱為內(nèi)容傳送網(wǎng)絡(luò)。
分析
主要需要考慮的因素以下幾點:
白名單機制
每天CDN流量的限制
用戶主動升級軟件時,不受CDN流量控制,需要有一定的預(yù)留流量空間
靜默升級時,需要客戶端的配合
解決方案
服務(wù)端
對于用戶主動的升級,直接升就行了。設(shè)計的重點在靜默升級的策略。
對于靜默升級,則通過設(shè)置“流量閾值”和白名單來進行判斷。
流量閾值:是非白名單軟件可以執(zhí)行靜默升級的已使用流量上限,當(dāng)當(dāng)天已使用流量超過閾值時,則不再允許進行靜默升級。剩下的流量保留為用戶主動升級或白名單軟件的靜默升級所用。
例如,可設(shè)置為每天流量上限的80%,若某天已使用流量超過閾值,則非白名單軟件靜默升級失敗。具體數(shù)據(jù)可根據(jù)實際項目中以下數(shù)據(jù)來調(diào)整:
非白名單軟件與白名單軟件的大小和用戶數(shù)量:軟件大小和用戶的不同,每天在這方面使用的流量也不同,二者都和流量正相關(guān)。
距上一版本發(fā)布日期:版本之間時間間隔越長,未更新人數(shù)越少
新版本的功能、重要性:越重要、越好用、越有吸引力,手動升級的用戶越多
客戶端
客戶端軟件可設(shè)置為每天定時檢測升級或啟動時檢測。
定時檢測:容易造成某一時間段流量大增,而之后或之前則不會更新。如果軟件恰好在該時間段內(nèi)沒有運行,則容易造成遺漏(用戶恰好習(xí)慣在其他時間段允許該軟件,但也可通過增加每天檢測的次數(shù)來解決),故適用于長時間運行或駐留的程序、守護進程等。
軟件啟動時檢測:能覆蓋大部分的用戶,但如果軟件屬于守護進程、長時間運行或服務(wù)端的程序,則由于其一經(jīng)啟動除非出錯或者手動停止否則不會重啟的特點,容易造成遺漏。
整體流程
