如今手遊出海已經成為常態,越來越多的遊戲廠商在全球構建了自己的產品矩陣及龐大的用戶量,由此也帶來了巨額的數據請求,其中廣告請求是數據量最為龐大的類型之一。以激勵視頻為例,根據TopOn 2019年統計數據,廣告變現收益佔比較高的休閒與中度手遊人均廣告展示次數都在3次左右,插屏廣告及橫幅廣告的展示則更多,由此帶來的服務請求數更是翻番。
作為全球領先的聚合管理工具,TopOn已與千餘家國內外開發團隊合作,接入移動遊戲和應用超過3000款,每日廣告展示2億+、廣告請求10億+、服務請求20億+。巨額的服務壓力下,TopOn服務端是如何保障開發者在全球範圍穩定高效使用聚合管理功能的?今天小T就為開發者詳細闡述TopOn的聚合平臺分布式服務以及確保伺服器穩定的監控預警部署。
01聚合平臺分布式服務
基於廣告平臺和聚合管理的功能特徵,TopOn的服務端系統主要有以下兩個特殊需求:
Setting API:包括APP和Placement 策略下發,比如Waterfall配置、廣告源信息等;
Tracking API:包括廣告請求、展示、點擊等鏈路和埋點上報。
基於業務需求特性,TopOn技術團隊在服務語言、架構模式、緩存處理上首先考慮到數據運行的高效率保證。
1.服務語言:Golang
作為當前熱門的WEB API開發語言之一,Golang有著很多優勢,包括:高並發、部署簡單、執行效率高、開發效率高等。
2.Pipeline-Filter架構模式
Pipeline-Filter架構模式擁有代碼簡潔、邏輯清晰、復用性高、利於高並發等優點
3.緩存的選擇
APP Placement等信息,維護一個協程,將Mongo數據同步到本地內存,實現分鐘級同步;IP所屬的國家城市等信息,保存在Redis集群當中,這部分數據需要共享。
考慮到遊戲廠商流量的全球分布,TopOn在雲服務上選擇了阿里雲和亞馬遜AWS,部署在中國、新加坡、歐洲、美國等全球主要國家或地區。多機房多雲廠商的部署,提高了容錯率和可用性,同時藉助雲廠商Auto Scaling等機制,實現服務自動伸縮、成本節約。
02伺服器監控預警部署
在確保高效率的業務處理能力外,TopOn同時為確保伺服器的穩定運行進行了監控預警部署。TopOn選用的基礎設施涉及到多種服務資源、全球分布的數百臺伺服器,監控的目的就是為了記錄和了解服務運行的狀況,預防服務瓶頸,及時發現服務故障,給定位和分析故障原因提供依據。
從大的方向來區分,TopOn配置的監控主要分為兩個部分:基礎監控、業務監控。
1.基礎監控
基礎監控包括 CPU、內存、磁碟、網絡流量、埠和進程等作業系統級別的信息,對此TopOn選擇了目前成熟穩定的Zabbix監控系統。
Zabbix 是一個基於 WEB 界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案,能監視各種網絡參數,保證伺服器系統的安全運營,並提供靈活的通知機制以讓系統管理員快速定位,解決存在的各種問題。除了能夠配置常用的基礎監控,Zabbix 還支持用戶自定義key、userparameter 監控項,用戶可以通過編寫監控腳本添加自定義的監控項。關於Zabbix的使用及配置在此不作贅述,感興趣的大佬可以自行查閱了解。
另外TopOn技術團隊還對展示及預警結果進行了優化,採用了Zabbix + Grafana,結合微信/釘釘通知的方式。Grafana是一款美觀、強大的開源可視化監控指標展示工具,它可以輕鬆的添加zabbix監控項數據源,聚合展示。再配合微信/釘釘通知,前置了人工介入環節。
2.業務監控
a. 日誌
日誌可以包含服務運行的方方面面,是重要的監控數據來源。
· 日誌收集工具:Fluentd
· 業務數據日誌存儲+查詢方案:Clickhouse + Grafana
· 業務系統日誌:Elasticsearch + Kibana
b. API監控
也就是業務服務狀態監控,系統對外提供healthy check接口。監控部分可以通過編寫監控腳本對接zabbix自定義監控,或者使用付費監控工具監控寶,完成對業務接口的可用性以及網絡延時監控。
c. 埋點分析
埋點是侵入式的監控數據採集方式,其優點是其可以更靈活地為我們提供業務內部的監控指標。
03結語
在廣告變現愈加普遍的今天,越來越多的手遊開發者不僅需要數據精細化的運營功能,還需要穩定、專業、高效的技術服務支持。TopOn從開發者的實際需求出發,基於高效穩定的技術架構為開發者提供廣告分層、header bidding、流量分組、AB測試、交叉推廣等高效實用功能,並且提供1對1專人溝通,不管是初次接觸廣告變現的「小白」,還是熟知廣告變現技術的「大牛」,所需支持一應俱全,歡迎開發者前來體驗使用。