以“工匠”的精神對待每一個版本
“工匠”精神具有精益求精、嚴謹、一絲不茍、耐心、專注、堅持、專業、敬業。
游戲每一次版本更新對于玩家來說都是非常值得期待的,版本準備、版本驗證、版本更新、版本更新后的每一刻,不只是體現游戲開發、策劃者的獨具匠心,版本如何順利發布給玩家,并且助力玩家完成更新,都凝聚著游戲業務運維人的”工匠“精神。
日常版本
QQ炫舞、DNF分別為MUG、ACT類游戲,前者一個月一個版本,后者可以達到一月八個版本。
QQ炫舞每個月的版本只有一個,所以經常會伴隨著架構調整、新的系統接入、功能、活動開放,以及運維側遺留下來的環境類變更。因此長時間的發布準備,詳細的checklist是每次發布前的例行工作。
由于版本發布還伴隨了較多的變更,在老的流程下單次停機時長高達6小時,較影響玩家體驗。
為了壓縮每次的停機時長,運維側會把很多工作都挪到發布準備時間,保證運維的發布操作時間控制在0.5小時之內;同時測試同事會加大灰度發布的測試覆蓋度,全服發布只需過基本功能即可,在此基礎上繼續增加測試人力;通過如上的一些努力,保障每月一次的發布控制在3小時左右。
DNF為動作類的MMOG游戲,需要不斷更新版本內容以吸引玩家,由于游戲邏輯處理的不同,導致外掛較多。
在不斷更新游戲內容及反外掛對抗功能的背景下,DNF的版本頻率達到了驚人的每月八次。任何一次的運維失誤、或響應不及時都會影響到最終外網版本的發布,為保障每次版本高效、高質的更新測試服、體驗服、及外網。
運維側與韓方規范化了版本交付流程,通過這個規范實現標準的版本更新,與版本質量跟蹤app;同時將標準化的版本更新作業交付一線同事操作,以減少運維人力。
DNF版本更新app如下圖,填好參數后一鍵執行更新:
運維會對發布到現網的版本質量進行跟蹤、監控,以便能及時發現現網問題并處理;同時可以根據帶寬使用、在線恢復趨勢等數據制定更好的發布策略,以優化發布成本,提升玩家的體驗。
如下為版本發布前后狀態對比(停服前30分鐘、起服后30分鐘、60分鐘3個點):在線趨勢(主要指標)
其他趨勢指標
- 1、程序負載
- 2、程序穩定性
- 3、掉線量
- 4、支付
- 5、下載
- 6、突發
通過上面可以看出,不同的業務版本側重點會有不同,運維側要做的就是保持與開發商、項目同事的緊密溝通,共同優化版本更新中遇到的問題(停機時長、更新頻率)。
大版本支撐
QQ炫舞為國內代理游戲,其大版本主要集中在功能的橫向擴展上,如不斷推出海灘社區、舞廳社區、KTV、視頻秀等功能,不斷豐富游戲的玩法。
這些版本需要進行架構調整、新的api接入;運維側需要進行機型選型、容量壓力評估、物理架構的調整、監控跟進等等。
方案選型:炫舞是第一個做視頻秀的端游,沒有其他游戲可參考。當時是參考了內部幾個流媒體產品,最終確定視頻技術+流媒體CDN的方式實現。
架構優化:多點部署主播接入點,從源頭保障視頻流的傳輸質量。推動CDNProxy等關鍵模塊熱備實現,并分物理機部署,在機器故障時保證關鍵功能可用。
成本:小流量模塊使用虛擬機。
體驗監控:監控方面,運維在產品前期就推動開發在客戶端、服務端進行了詳細的日志記錄。如tqos日志實時監控玩家、主播端的質量;服務端的oss log實時分析玩家異常行為。通過監控->優化的閉環不斷推動玩家體驗提升,大幅提升了視頻秀穩定性,且投訴下降20%左右。
DNF主要在玩法的橫向與縱向擴展上,如新的職業、轉職、覺醒內容的添加,游戲決斗場改編、地下城改編,等級提升等方面。且大版本的內容基本是從韓服版本直接拷貝過來進行修改。相當于服務端的程序基本是全新的,無論從性能,穩定性,以及bug數量都會對運營帶來很大的挑戰。同時超大的客戶端更新、黑盒的db工具變更也會對運維帶來不少挑戰。一般會經過十幾個版本的迭代測試才會上到現網。
版本迭代:創新世紀版本約經過20個子版本,50次的測試環境更新才上線到現網。這期間更新效率、質量都需要得到保證。因此DNF運維開發了測試環境更新app,將更新全流程打通以提升效率;并將更新內容入庫,保障更新的準確性。
“DNF2013年發布的超大更新包,導致CDN帶寬翻倍,直接垮掉”。有了這次慘痛的教訓之后,DNF是這樣更新超大包的。
- 預下載
- 拆分包,資源包拆分并且提前分發
- 提升p2p率
- 閹割版完整包提前外放
- 網吧預推送,網吧用戶預下載無法觸達,進行網吧預推送。
DNF大版本改動內容很多,因此在服務端更新、db變更、測試上都需要花大量的時間,導致停服時間很長,從收入、口碑產品都有直接影響。一般大版本的db變更、測試時間會占到總時間的80%。我們在保障質量、壓縮時間方面做了如下調整:
- checklist評審,涉及完整性、回退方案、效率等方面。
- DB變更提前在小型區、大型區、合服區的DR上進行測試,保證每個區都能正常執行。
- DB變更執行多并發,并利用tmysql在線加字段等特性節省變更時長。
- DB變更按數據量大小分兩批同時執行,小數據量的大區即可先開區測試,待測試完成后,大數據量的大區也以起服并測試,這樣會充分利用測試時間。
下圖是14年大版本在優化前后的時間對比:
轉自:騰訊大講堂
- 目前還沒評論,等你發揮!