1. 程式人生 > >完美世界:百款遊戲背後的運維實踐

完美世界:百款遊戲背後的運維實踐

以下內容根據阿里雲行業圓桌論壇視訊整理而成。

本期嘉賓介紹:

趙鵬,完美世界運維部總監;

翔賀,阿里雲資深架構師。

上雲趨勢不可避免,越來越多的企業啟動上雲之路。在雲端計算普惠時代,各行各業都在發生著變化。

阿里雲行業圓桌會,匯聚APP、網站、遊戲、金融、電商、音視訊、健康、教育、能源、政務、運輸、製造等12大行業類別,邀請阿里雲經典客戶,一起聊聊他們的上雲之路,以及雲上技術實踐!

完美公司的主要業務是遊戲和影視,遊戲像PC當中的《完美世界》國際版、《誅仙》、《笑傲江湖》等,手遊也是近兩年完美的發展方向;影視方面像《失戀33天》、新版《射鵰英雄傳》等都是完美影視作品。完美是影遊聯動,去做文化娛樂產業。

那麼,阿里雲對遊戲行業有什麼解決方案?

翔賀介紹說,遊戲行業對穩定性、效能表現比其他行業要高,甚至要超過金融行業,遊戲行業會有流失行為,當你的服務不穩定,使用者體驗不好,玩家就流失掉了。阿里在遊戲方向從第一天就開始在產品上做功課,現在有高效雲磁碟、SSD雲盤等更好的符合遊戲簡單部署的場景,傳統的效能磁碟肯定不能滿足遊戲行業的需求;從產品架構設計上來說,資料都是多分容儲存的,也支援熱遷移,突發性的宕機遷移,資料可靠效能夠得到很好保障;從穩定性來講,我們也打造了遊戲專享叢集,在這個叢集裡我們會要求客戶本身業務的健康度。我們也會深入行業的業務層,包括卡牌、棋牌等都會有針對性的方案提供給遊戲合作伙伴參考,如何在雲平臺更好的構建業務。另外,我們的售後服務體系保障的時效性和處理速度也非常專業。

完美上雲實踐

遊戲上雲和其它行業上雲有什麼不同嗎?完美世界的上雲之路都應用了哪些雲產品?

遊戲是網際網路的一部分,常規網際網路的運維自主性更強,運維人員可以使用更開源、更新的技術,而遊戲受限於整個研發團隊,很難去改變它已經定義好的技術上使用的工具、內容,一旦改變就會影響整個遊戲的穩定性。

遊戲上雲時,第一會考慮可定製化,有時我們會對核心做一些調整,對系統做一些修改;第二會考慮效能,遊戲是理論上的單點,對效能有一定要求;第三會考慮穩定,我們很難接受伺服器宕機,我們的目標是讓宕機率越來越低,趙鵬如是說。

接著他又說,雲所提供的服務不僅有云主機,還包含CDN、防護等,完美在上雲過程中,將雲主機當作虛擬IDC處理,使用雲產品時不會破壞整個運維體系和架構,它只是被當作觸角延伸出去。阿里本身技術能力也很強,我們的IDC人員只需和阿里技術人員溝通好。

對於老遊戲如何平滑的遷移到雲上,新遊戲如何快速的部署到雲上?

趙鵬解釋說,老遊戲就是把現有的架構遷移到雲上,阿里雲已經支援架構的定製化,我們可以無縫的遷移。新遊戲,我們會更多的考慮雲主機資源的彈性以應對突增。

完美目前是自建IDC和雲服務樣的混合雲架構?

趙鵬談及,遊戲行業對程式的安全性比較重視,我們所有的運維都有自己的運維網路,IDC之間的互聯,或是自己拉專線,或是通過VPN方式打通虛擬通道來去做管理,可以把完美現有的架構當成私有和公有混合的雲,既有云主機也有實體機,既有自建IDC,也有云IDC。

翔賀也說,混合雲在現在還是有存在的必要性的,包括在安全上、效能上、傳統的運維方式以及存量伺服器的因素等,在這個時代我們會去適應這樣的場景。混合雲包括兩種,一是雲平臺+物理機,一是多家雲平臺混合使用,我們都有相應的技術支援,我們可以將雲上雲下通過專業的方式打通,可以通過VPN方式實現子網IP地址統一管理,可以實現私網互通。

緊接著趙鵬又說,雲會給我們帶來方便,但不會顛覆我們的運作方式,它是我們資源的擴充套件,它給業務運維提供的東西還是一個一個符合網路要求、效能要求、系統版本要求的作業系統,更多的是實現融合。完美的運維團隊有60多人,負責北美、國內和海外約140個專案。

對運維的理解和探索

如何在遊戲業務架構上保證高可用性?

遊戲架構決定遊戲怎麼去搭建生態環境,有些遊戲是單組的,一組能夠承載的人數取決於本身系統提供的效能和程式本身設定的環境,超過上限玩家可能搶不到掛、任務組隊不容易等,甚至遊戲內的金融環境也會產生影響,為了滿足玩家,我們只能不停的開服,這時候雲對我們就很重要了,趙鵬認真的解釋道。

對DevOps的理解大家各有見解,而趙鵬理解是,他會把它分成兩部分去看。一部分是做平臺,脫離業務做通道、平臺、流程流控,因為它不知道這款遊戲合服怎麼合,挪服怎麼挪;一部分是做業務,通過自己的指令碼能力,Python、Shell等形成標準的操作指令碼,指令碼的輸入輸出要符合要求,將它嵌進去也算是devOps。

翔賀也做了自己的理解,DevOps核心是解決研發,業務層包括程式碼,以及傳統IT之間交付的效率協同,完美的運維平臺就是在解決DevOps的場景,可能與業內DevOps定義不完全一樣,但我們要實現的目標和目的是一樣的。

對於某遊戲發生宕機造成回檔,以及gitlab刪庫事件有什麼看法?

趙鵬深有感觸,備份失效的事件我們也發生過,我們很早就開始反思備份策略,之前定製的規定是否做到位了呢?我們現在採取三級備份,本組伺服器的備份、本機房儲存空間的備份和第三方機房甚至雲上的備份,如果機器宕機,我們保證一個小時內回檔資料。除了備份之外,我們也強調備份後的可用性,我們會定期做備份的演練,抽檔的檢查。同時,我們也會通過手機、微信的報警聯動進行監控。

阿里雲每一款持久化資料的產品以及快取類的產品都會做持久化和容災策略,首先我們要保證服務的高可用性,其次要保證資料的高可靠性,主從切換時儘量保證資料的一致性。

最後,趙鵬對想從事運維行業同學給出了自己的建議,首先是線下學習,才能在後續做更大的發展;其次,運維也要保證好身體;另外,我們也要有好心態,能夠承受壓力。運維做到最後是讓人感覺不到明顯的存在,因為我們把事情做到位了,不出事故。

原文出處:https://yq.aliyun.com/articles/71877