天天看點

Cmdb、Saltstack、Web化,莉莉絲遊戲雲上運維心得分享目前概況進化曆程Cmdbsaltstack Web化 心得

在2017遊戲行業全球同服和安全攻防技術沙龍上,來自莉莉絲遊戲的蔣海洋分享了《莉莉絲遊戲雲上運維之路》。他通過介紹莉莉絲遊戲的概況、進化曆程,引出了莉莉絲遊戲使用的cmdb,saltstack以及web化技術,并且分享了莉莉絲遊戲在運維方面的心得。

以下内容根據直播視訊整理而成。

莉莉絲遊戲采用的是雲上架構,目前擁有兩個運維工程師,4款營運中遊戲,500+雲主機,200+rds。線上沒有一台實體、實體的伺服器,也沒有使用任何實體的機房。

之前做的比較好的一款遊戲是《dota傳奇》,蔣老師進入莉莉絲遊戲之後初步了解過該遊戲的運維情況。《dota傳奇》運維的基本方式是以txt文檔來管理基本的主機資源,比如ip、資料庫、遊戲的伺服器名字,如果需要進行操作的話使用python寫的腳本,利用裡面的expect子產品以及多線程進行操作,其存在的問題是速度特别慢,比如在釋出版本部署檔案的時候。

在做美版發行的時候,莉莉絲引入了cmdb用來管理基礎的資源資訊等,遠端執行則使用了開源的軟體saltstack來進行操作。做完這些之後,伺服器的同僚想要自己做制作的操作等,是以需要web化開放出來。

cmdb是建構自動化流程的基礎,所有的資源等資訊都在其中進行管理,比如遊戲和配置等都是從cmdb中拉取出來的,包括裡面的充值等都是從cmdb拉取。之前使用txt進行管理的時候,很多地方都有對應的東西,如果有一個地方需要進行變更的話,其他地方如果沒有關聯到就可能出現問題。cmdb的管理純粹是基于雲平台上的配置管理,沒有實體伺服器的話不用像實體機房一樣關心伺服器的位置、端口,隻需要管理ip的資訊、硬碟、erp等。

Cmdb、Saltstack、Web化,莉莉絲遊戲雲上運維心得分享目前概況進化曆程Cmdbsaltstack Web化 心得

上圖是莉莉絲自制的管理平台,主要分為三層結構:業務管理,包括遊戲等;拓撲模型,比如遊戲的叢集子產品等;業務執行個體,每個子產品下面的執行個體。

Cmdb、Saltstack、Web化,莉莉絲遊戲雲上運維心得分享目前概況進化曆程Cmdbsaltstack Web化 心得

莉莉絲擁有的資源如上圖所示,主要為雲上的資源,固資編号是根據雲廠商的id得到的,又相對執行個體化,還涉及到後期的按項目拆分賬單等。将資源都管理起來之後,底層調用了雲的api,如果需要買一些元件的話隻可以直接在裡面點一下,用戶端會關聯雲平台的api把資源灌到裡面來,然後把資源配置設定給項目使用。

saltstack是開源的快速遠端執行平台,是基于python開發的,部署簡單友善,有自己的api便于進行二次開發。

Cmdb、Saltstack、Web化,莉莉絲遊戲雲上運維心得分享目前概況進化曆程Cmdbsaltstack Web化 心得

最上方是一個master,下面會挂很多minion,master可以對minion進行遠端的操作。如果在阿裡雲上用了很多的區域,相當于在中間加了一些syndic節點進行統一管理。我們會根據業務關系去調cmdb裡面存儲的業務資訊,比如需要對某個子產品進行操作的時候會到cmdb裡面去找需要操作的指令有哪些,然後将這些指令下發下去。執行完指令會将結果傳回回來,中心master就會看到這些傳回的結果,整個的執行速率非常快。

後期,一些開發同僚也想用saltstack,但是純粹的指令行會讓人覺得不太友善。是以做了一個web化的東西友善使用。它也成了一個互動平台,比如想要知道增加一個子產品每db需要多少機器,那麼可以告訴他需要在db的叢集下面開一個子產品,分好機器之後告知提問者可以直接進行操作即可。web化可以降低使用門檻,固化操作流程可以減少失誤。

Cmdb、Saltstack、Web化,莉莉絲遊戲雲上運維心得分享目前概況進化曆程Cmdbsaltstack Web化 心得

上圖是可視化作業平台,有幾個常見的功能:如果想看某個檔案是否下發下去或者目前的狀态,可以點選快速腳本執行,可以在下面直接進行腳本編輯,然後指定執行的目标路徑、執行賬戶,通過配置平台選擇執行的機器,按照子產品把所需要的叢集都勾選上,執行完之後把最後的執行結果傳回回來在業務平台上展示出來。這樣對于開發的同學非常友善。

首先,莉莉絲的人力非常少,是以考慮用開源的軟體,比如監控使用小米的open-falcon。在遊戲行業,标杆行業騰訊的運維平台藍鲸已經做到了2.0版本,自己做平台的時候也可以參考這些企業的運維平台,但是由于擔心安全問題可以不直接使用。

莉莉絲使用了很多成熟的雲産品,阿裡雲的rds已經做得非常成熟,可以做主從同步,出現問題時也可以復原到任意時間點,小公司使用起來非常友善,沒有必要自己來搭相關資料庫。這樣就不需要自己做備份相關的事情,可以省很多時間和能力,而且可以動态擴容。如果用主機來搭資料庫的話需要考慮到了瓶頸需要怎麼做,早期成本會比較高,用rds可以先選擇比較小的量,到了一定階段的時候再進行擴容即可。很少用到cdn做雲棧,隻需要用oss上傳回源。由于曾經受到了ddos攻擊,是以使用了阿裡雲的anti-ddos進行防範。

利用好阿裡雲的api接口,通過寫一些腳本來使用api接口可以提高效率。最好一開始就尋求專業支援,在架構設計階段就可以聯系做架構的指引,這樣對于後期的維護相對簡單很多。