90DVD欧美大片高清视频_国产精品影院一_国产精品 码一区二区_白丝高潮在线观看_在线免费观看小视频_97欧美午夜大片_2021国产精品毛片久久_工作中的人妻制AV_深爱激综合网_亚洲专区字幕在线

企業動態

您所在的位置:企業動態

圖靈互娛劉龍鑫,游戲出海運維經驗分享

發布時間:2021-09-15

(文章轉自公眾號:又拍云)


日前,又拍云攜手 CloudFlare 共同舉辦了出海企業網絡安全專場技術沙龍,通過深度剖析當前企業出海業務面臨的安全難題,結合企業用戶實踐案例探討切實可行的、具有高性價比的安全解決方案。其中來自圖靈互娛運維工程師劉龍鑫,結合業務實踐經驗,帶來了干貨滿滿的《游戲出海之運維小經驗分享》主題分享。以下是現場演講整理,視頻及 PPT 可下拉文末點擊閱讀原文查看。


大家好,我叫劉龍鑫,來自廣州圖靈科技有限公司,主要負責公司日常的運維工作。這次很榮幸能和大家一起探討游戲出海相關的一些經驗。我今天主要從以下五部分游戲出海過程中必須考慮的點進行展開分享:




服務器部署地域選擇



我們首先來看一下服務部署地域的選擇。服務器部署的地域決定了玩家進入服務器的網絡狀況,也決定了玩家的體驗。保證一個通暢的網絡,才能讓玩家在玩的時候更順暢,體驗更好。如果網絡容易卡頓,則很容易造成玩家流失。

相比國內我們選擇北上廣任意一點就可以覆蓋全國的網絡情況,海外的網絡就比較復雜,需要我們格外認真一些。下圖是我自己測試做的時延表,我們可以清楚看到各個地域網絡的時延差異非常大。

微信圖片_20221118130146.png

結合經驗,我有兩條小建議給大家選擇服務器時做參考:

網絡和數據庫規劃


接下來我們說一下網絡和數據庫的規劃。因為海外玩家客戶端到服務端網絡的延遲比較大,同時也是為了提升他們的穩定性,我們需要對網絡進行最大可能的優化,從而加速玩家的訪問,提升玩家體驗。

數據庫的規劃主要用于大數據分析。如果沒有提前進行規劃,當同一個游戲各區域數據集中到一起時,就會存在主鍵沖突和其他問題。而提到網絡規劃那我們必須要了解這兩個產品,對等連接和 Anycast  IP。

對等連接能夠打通兩個 VPC 網絡,使它們能進行內網通信。它的優點在于能夠讓兩個 VPC 網絡通過云服務商自建的內部網絡進行通信,不受公網質量影響,這大大提升了可用性,保證了時延和丟包率。

微信圖片_20221118130141.png

如上圖所示,如果一個游戲在歐美同時發布,但是共用一個后臺,這時無論后臺在美國還是歐洲,只要是走公網進行訪問就沒辦法保證網絡質量。比如把后臺放在美國,美國本地的服務器在同一個 VPC 內肯定不影響訪問,但是歐洲服務器走公網訪問就會非常不穩定。這時候我們可以通過對等連接,走內網降低它們內部訪問之間的時延和丟包。事實上我測試過,從歐洲的法蘭克福到美國的弗吉尼亞時延在80毫秒左右,這是一個能夠讓人接受的范圍。

Anycast IP 采用 Anycast 的方式,把 IP 發布到多個地域,讓請求包根據傳輸協議到達最優的 IP 發布地域。它的優勢是實現了 IP 傳輸的質量優化和多入口的就近接入,減少了網絡傳輸的抖動、丟包。

如果我們在海外發布一個共用 SDK,而且還是多地域發布的話,因為海外運營商很多,很容易導致丟包時延。那么不管玩家是訪問 SDK 還是游戲和 SDK 進行校驗,只要 SDK 在本地沒有節點,走公網進行訪問的話,用戶的體驗就會比較差。這時我們就可以通過 Anycast IP 對 SDK 進行網絡優化。或者選擇對等連接+反向代理+域名分地域解析的方式,把 SDK 的域名分別解析到不同地域,讓用戶請求的時候可以請求到對應節點。

微信圖片_20221118130141.png

如上圖所示,SDK 源節點在新加坡,而我們在香港、臺灣、日本建立四個反向代理節點。當我們將解析分別接到這三個節點后,用戶請求時就會請求到自己國家的節點,再通過這些節點反向代理走云服務商內部網絡到源節點,這樣就能夠進行一次及時的響應,讓用戶在體驗上有所提升。

網絡規劃

我們前面提到的對等連接,如果需要使用對等連接則必須要提前對網絡進行規劃,網絡規劃的考慮主要基于以下兩點:


數據庫規劃


數據庫規劃主要是為了提前防止數據沖突,主要就是根據 auto_increment_increment 和 auto_increment_offset 兩個 MYSQL 的質證參數。提前進行數據規劃能夠防止起點設置過長,方便大家把各個數據中心的數據導入到一起,避免大數據分析時出現數據沖突。

DDOS 攻擊緊急處理


這是本次分享的重點,因為海外發行游戲特別是在港臺地區,只要上榜就很容易受到攻擊。所以我們需要在游戲上線前就做好防護預案,這樣當攻擊發生時我們就能按預案進行緊急處理。

對于中小型廠商來說,高防的成本較高,而且流量經過高防后會導致少量正常用戶一塊被清洗掉,所以導致很少有中小型廠商選擇接了高防再上線游戲,一般都是遇到了攻擊的時候才接入高防。但是上線后再接入高防比上線前接入,在時間上的緊迫感更大,一個剛上線的游戲不可能長時間的停服和測試來對接高防。因此在上線前我們一定要有詳盡的預案和測試,這邊給大家幾點接入高防需要注意的地方。


攻擊范圍


一般我們上線都是新游戲和 SDK,因此需要將這兩部分都考慮進去,不然不管對面攻擊哪一部分都會導致游戲的不正常。


高防產品的選擇


這里需要考慮到兩點,首先是成本。我們要根據攻擊的情況,提前考慮到自己能夠接受的成本有多高,十萬還是二十萬,一旦超出這個成本就需要考慮其他方式。第二是考慮是否有本地高防,因為我們要把正常的流量轉入高防進行清洗,這相當于網絡鏈路的加長,如果有本地高防就可以更快的完成清洗過程,讓用戶體驗更好。


游戲的黑白名單

我們大部分游戲都有黑白名單,這可能會導致游戲接入高防后無法登錄。這個問題是我們前年上線一款產品時確實遇到的情況,當時在接入高防后就出現了無法登錄的情況,造成了剛上線就被迫停服檢查,后來才發現是游戲黑白名單出現的問題。因此我們需要提前做好測試,確保各方面都是正常的。


游戲要提前做好雙 IP


當攻擊來臨時原本暴露的 IP 會因為被攻擊而無法正常連接使用。因此我們需要有另一個備用 IP,并且在上線前就讓每臺機器都綁定兩個 IP。同時保證一個是隱藏起來的不被外界所知。


Nginx 轉發文件準備


為什么要做 Nginx 轉發文件準備呢?因為有些端口,比如 80、443 這類常用端口,很容易重復。而且因為高防成本的問題,很難買多個高防 IP 或者多個高防產品進行防護。所以我們的高防 IP 通常只有一個,這種時候就需要 nginx 的轉發。比如我們把流量從高防 80 端口轉發到某臺機器的備用 80 端口,然后在通過這臺機器的 Nginx 轉發到其他相應機器上。這么做也可以節約我們的成本。

多提一句,除了通過高防來處理 DDoS 攻擊,CDN+負載均衡的方式也可以通過把攻擊分散到各個節點,從而避免需要防護的情況,這是我在和一些云廠商接觸的時候發現的。但是因為我們的游戲并不是使用的這種方法,所以大家可以拿去做個參考。比如又拍云和 Couldflare 的產品是用 Anycast IP 的,我們可以使用他們的 CDN 加上負載均衡的方式來進行防護。


服務器和數據監控


在游戲運行的過程中監控是必不可少的,只有做好監控才能及時發現并解決問題。而監控又分為服務器和數據監控,我們詳細說下。


服務器監控


服務器監控主要有兩方面組成,機器指標監控和進程、日志監控。


機器指標監控


機器指標監控相信大家都比較熟悉了,包括 CPU、內存、硬盤、網絡這些。目前大部分的云服務上提供的監控系統已經基本完善了,只需要完成系統配置并根據自己的需要添加一下必要腳本,就可以滿足日常的監控需求。

但是如果我們因為一些特色業務需求,比如需要對數據進行匯總,進行更深次分析的話。我們可能會需要 Zabbix,或者一些其他的監控工具。這部分的相關文檔市面上有很多,我們就不展開細說了。

在游戲海外發行的過程中,除了基本的監控外,網絡監控是很重要的。因為我們的玩家來自很多國家,他們的丟包和時延都需要監控來看。一般這類監控都是根據腳本監控的。比如我們的監控標準是 10% 以內的丟包,400 毫秒以內的時延,然后每隔五分鐘檢查一次。當第一個五分鐘檢測到有異常時我們是不會發送告警的,因為網絡有偶爾的小波動橫正常。當相隔五分鐘后的第二次檢測依然有異常時,就代表超過了我們所涉的閾值,那么無論是丟包還是時延都會對網絡進行郵件告警。這個監控邏輯非常簡單,但是也非常有效。


進程和日志監控


進程的監控大家可以通過簡單的腳本來實現。當進程掛掉后我們可以將進程掛掉時的情況、進程重啟、重啟成功或者重啟失敗都通過郵件進行告警,防止進程中斷而不知道的情況。

日志的監控一般指的是對游戲日志的監控,常用工具是 ELK 工具,它可以對日志進行收集,進行日志分析和處理,并進行郵件告警。


數據的監控


數據監控屬于業務監控,一般是對游戲的充值、在線、注冊等數據進行監控。通常數據監控都在游戲剛上線需要重點關注的時候加入。因為有時候服務器的監控反饋不夠及時,數據監控就可以保障業務的正常。比如日常晚上七點的游戲在線人數是 500,突然有一天只有 100 人了,出現了明顯的下降。那我們就需要考慮是不是游戲本身有 bug,或者被攻擊了。

除了數據監控外,我們也需要對相關閾值進行不斷調整。因為我們的業務在不同時間點的正常值是不同隊,如果我們要確保這個值能夠準確反映當前的狀態,就需要進行相關閾值的調整。

另外監控也需要查詢數據庫,我們最好不要直接在相關表上進行查詢,而是創建一個數據庫的視圖,避免因為慢查詢引發鎖邊等問題。

國內維護之小妙招


最后我給大家講講一個我們國內維護的小經驗。因為國際出口有限,我們維護海外項目的時候,經常會發現因為線路擁堵出現丟包高達 60% 以上,甚至 100% 的情況,這導致運營和開發人員完全無法對外海項目進行維護。

其實在國內維護海外項目主要涉及到服務器登陸、數據庫連線、后臺登陸三方面,通過這三個方面基本可以完成正常的海外維護。而且這三個方面又都可以通過國內的云廠商來處理,因為云廠商都有一定的國際出口,假如云廠商位于香港的服務器不丟包,那就可以在香港服務器上進行代理操作。我們可以在香港服務器上面搭建一個跳板機,先用跳板機再訪問項目對應的機器,從而減少丟包和卡頓問題的出現情況。

數據庫也是一樣的,通過對香港服務器進行授權,走香港服務器 SSH 通道進行登陸的速度就會很快。后臺網站也可以在香港服務器上搭建一套反向代理,讓國內的運營人員綁定 host 進行登陸。或者修改局域網域名解析,將解析解析在香港的 IP 上讓國內的運營人員能夠順暢的訪問海外項目。

以上是我分享所有的內容,謝謝大家。