CODING合作中手游:甩開低效桎梏, 盡情奔向游戲王國
(1)客戶介紹
中手游是領(lǐng)先的全球化 IP 游戲運營商。根據(jù) Analysys(易觀智庫)數(shù)據(jù)顯示,截至 2019 年 12 月 31 日,除騰訊游戲外,中手游是擁有 IP 儲備數(shù)量最多的中國游戲發(fā)行商,發(fā)行的移動 IP 游戲數(shù)量僅次于騰訊游戲。公司于2019 年 10 月 31 日在香港聯(lián)交所主板上市。
其名下有多款知名游戲,其中《擇天記》及《傳奇世界之雷霆霸業(yè)》上線后最高月流水賬額分別超過人民幣 1.7 億元及人民幣 2 億元。
(2)項目背景
手游進入 2.0 時代,人肉運維亟待解決
近年來,手游市場的玩家用戶增量在逐漸減少,意味著過去渠道為王的盈利模式在弱化,游戲廠商的產(chǎn)品能力愈發(fā)重要,如何高效地研發(fā)出優(yōu)質(zhì)手游成為許多游戲廠商的發(fā)力點。而產(chǎn)品能力培養(yǎng)的背后,除了需要天馬行空的創(chuàng)造力,還需要順暢的研發(fā)流程以及高效的組織形式來落地想象力。
截止 2020 年年中,中手游線上活躍游戲已高達 80 款。我們從中手游研發(fā)團隊了解到,游戲項目的快速研發(fā)依賴于成熟的腳手架?;诙嗄甑挠螒蜃匝薪?jīng)驗,中手游已在內(nèi)部系統(tǒng)中積累了大量腳手架。
每個運維人員自行在本地編寫維護腳手架的腳本。每個人的技術(shù)棧不同,導致腳本也是參差不齊,有些腳本已經(jīng)走向一鍵執(zhí)行的工業(yè)時代,有些腳本還停留在一行一行命令輸入的手工時代。上述問題導致一旦出現(xiàn)人員更替,這些腳本就可能會丟失或令人難以接手,拖延游戲研發(fā)效率。
在生產(chǎn)環(huán)境中,這些腳本的運行也存在隱患。運維人員需要手動登錄到內(nèi)部系統(tǒng)的生產(chǎn)環(huán)境中,拷貝并調(diào)用腳本。人工頻繁地在生產(chǎn)環(huán)境中登錄登出,不但會有手工執(zhí)行命令帶來的操作風險,還有密碼賬號泄露的風險;并且由于腳本的執(zhí)行與指定運維人員強相關(guān),對生產(chǎn)環(huán)境的維護也帶來了制約。
(3)解決方案
統(tǒng)一的代碼管理,自動化的流水線
針對人肉管理帶來的種種不便,CODING 提供了代碼管理、持續(xù)集成以及 Wiki 知識庫的能力,幫助中手游的運維團隊完成腳本的統(tǒng)一化管理、自動化流水線的構(gòu)建以及運維操作事項的規(guī)范化管理。
- 云端代碼管理替代本地零散存儲
中手游運維團隊將腳本放置在 CODING 代碼倉庫中進行統(tǒng)一管理,既能方便存儲與查看,又便于統(tǒng)一技術(shù)棧,統(tǒng)一規(guī)范和版本控制?;谠贫说拇a托管,使得運維人員可以隨時隨地查看或修改腳本代碼,團隊可以通過執(zhí)行 CODING 代碼掃描來進行代碼規(guī)范與質(zhì)量管理,團隊管理人員在 CODING 工作臺中隨時隨地巡檢所有項目的腳本情況。
- 自動化流水線提高發(fā)布效率
解決好腳本管理的問題后,接下去就是腳本運行的問題?;诔掷m(xù)集成,通過選擇使用自定義的構(gòu)建節(jié)點的方式,在構(gòu)建計劃中指定不同環(huán)境的配置文件,中手游將流水線接入了各種環(huán)境。流水線自動化調(diào)用代碼倉庫中的腳本,避免了人工操作的風險;同時將安全相關(guān)的參數(shù)以保密形式的環(huán)境變量或安全憑據(jù)配置在 CI 中,也減少了口口相傳的風險。
有了自動化流水線后,中手游運維團隊可以按需制定發(fā)布計劃,不再依賴指定人員的發(fā)布操作。對于測試環(huán)境日常頻繁發(fā)布的小更新,開發(fā)人員提交代碼后就會自動觸發(fā)構(gòu)建任務;生產(chǎn)環(huán)境則加入人工卡點,由運維手動觸發(fā)構(gòu)建任務。在流水線運行完畢后,團隊人員還能夠及時收到流水線運行結(jié)果通知。
- Wiki 知識庫規(guī)范運維操作
在中手游運維團隊過去的日常工作中,有大量的運維相關(guān)信息以本地文件形式進行共享,比如資源信息、發(fā)布操作注意事項,每位運維無法全面地掌握運維知識與規(guī)范,也很難和開發(fā)團隊及時地共享變更?;?Wiki 知識庫,運維團隊對工作進行了一次全面梳理,將所有運維知識與規(guī)范整理后放置在云端知識庫中:
- 測試/類生產(chǎn)/生產(chǎn)環(huán)境資源管理
- 發(fā)布變更規(guī)范
- 故障管理規(guī)范
- 業(yè)務模塊質(zhì)量打分機制等
基于統(tǒng)一知識庫,新成員可以快速掌握運維操作要點,開發(fā)和運維也能及時共享運維規(guī)范信息,團隊之間的信息不對稱呈量級下降。MD 文檔形式讓 Wiki 編輯也更加方便易用;對于安全相關(guān)的 Wiki 內(nèi)容 CODING 支持開啟訪問者水印,減少內(nèi)容泄漏的風險。
- 精細化的安全機制保駕護航
由于運維的工作特性,對安全一直有著很高的要求。中手游的運維團隊使用了 CODING 的 IP 白名單機制以及日志功能來提高人員登錄 CODING 的安全性。在登錄日志中可以看到每次登錄的 IP 及地址庫中匹配的地理位置,在操作日志中可以看到成員的操作類型、操作內(nèi)容等信息。
同時 CODING 還提供了精細的權(quán)限劃分和易用的權(quán)限設置,幾乎每個功能模塊都支持權(quán)限開關(guān)、讀寫分離。例如中手游團隊把開發(fā)在持續(xù)集成模塊的權(quán)限僅設為訪問,而無管理和刪除權(quán)限,這樣開發(fā)人員只能觸發(fā)運行,運維人員才能管理流水線。
基礎(chǔ)設施代碼化,助力團隊聚焦核心業(yè)務
(4)解決方案
通過 CODING 的代碼倉庫、持續(xù)集成以及 Wiki 知識庫,中手游的運維團隊將游戲腳手架發(fā)布所需的基礎(chǔ)配置信息,以代碼的形式進行統(tǒng)一管理起來,同時將重復繁瑣的發(fā)布操作自動化,這使得開發(fā)與運維的合作更加緊密,降低了團隊之間的損耗,讓游戲的交付更加有序、規(guī)范、高效。
中手游目前處在快速發(fā)展時期,在未來,中手游將基于 CODING 打造更加快速的游戲交付流程,給玩家們帶來更快更好更新奇的游戲體驗。