技術|TopOn分布式服務設計與伺服器監控預警部署

2020-12-16 TopOn

如今手遊出海已經成為常態,越來越多的遊戲廠商在全球構建了自己的產品矩陣及龐大的用戶量,由此也帶來了巨額的數據請求,其中廣告請求是數據量最為龐大的類型之一。以激勵視頻為例,根據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的使用及配置在此不作贅述,感興趣的大佬可以自行查閱了解。

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專人溝通,不管是初次接觸廣告變現的「小白」,還是熟知廣告變現技術的「大牛」,所需支持一應俱全,歡迎開發者前來體驗使用。

相關焦點

  • 《伺服器虛擬化技術與應用》課程教學大綱
    課程的任務:通過本課程的學習,使學生了解伺服器虛擬化的技術架構,掌握伺服器虛擬化平臺的部署和運維方法。本課程將緊密結合實際,以伺服器虛擬化的首選解決方案VMware vSphere為例講解伺服器虛擬化技術和實現方法,為學生今後進行數據中心的建設、管理和維護,以及雲計算奠定基礎。
  • 一文詳解:如何設計出高可用的分布式架構?
    本文作者將與大家分享目前主流的分布式架構、分布式架構中常見理論以及如何才能設計出高可用的分布式架構。比如 ESB、以及技術規範、服務管理規範;這一步解決的核心問題是【有序】。 系統的服務化:我們站在功能的角度,需要把業務邏輯抽象成可復用、可組裝的服務,從而通過服務的編排實現業務的快速再生。目的是要把原先固有的業務功能抽象設計為通用的業務服務、實現業務邏輯的快速復用;這步要解決的核心問題是【復用】。
  • 完美的分布式監控系統——普羅米修斯
    Prometheus於2012年由SoundCloud創建,目前已經已發展為最熱門的分布式監控系統。Prometheus完全開源的,被很多雲廠商(架構)內置,在這些廠商(架構)中,可以簡單部署Prometheus,用來監控整個雲基礎架構設施。比如DigitalOcean或Docker都是普羅米修斯作為基礎監控。
  • 面向大數據的分布式緩存設計
    整個系統共存在3種角色,分別為緩存客戶端、緩存伺服器以及元數據伺服器。在生產環境下的大數據平臺中,緩存客戶端作為BoSS Client庫的一部分部署在計算節點上。CacheServer接收到CacheClient的數據訪問請求後,根據文件/對象名查找本機內存中維護的元數據hashmap得出該文件/對象在該臺伺服器的RAMDisk/SSD掛載路徑,從而返回DRAM/SSD中該文件/對象的數據流。緩存系統的元數據由MongoDB管理,與BoSS Monitor組件並置部署在3個及以上的監控節點上。
  • 8款伺服器和應用性能監控工具
    某些性能監控非常基本,比如僅跟蹤伺服器上的系統資源使用情況。其他更強大一些,將跟蹤從帶寬到系統使用的所有內容,並逐個節點地執行深入分析。這些系統通常採用較大的包,設計或打算與其他應用一起使用,以創建完整的網絡管理系統。確定網絡上需要哪些功能將幫助你縮小哪些軟體可能適合。
  • [Stardust]星塵分布式全鏈路監控
    隨著業務的發展,微服務系統會變得越來越大,各個服務之間的調用關係也會日趨複雜。一個WebApi請求,後方可能經歷多個微服務以及資料庫和MQ操作,在這個調用過程中,可能因為某一個服務節點出現延遲或者失敗,而導致整個請求失敗,此時極為需要全鏈路的調用監控。星塵Stardust提供了分布式全鏈路監控的解決方案。
  • 當分布式資料庫遇上開放伺服器LinuxONE,輕鬆應對各種問題挑戰
    第三,拆分的越多,節點和服務數量也越多,隨之而來的是,系統整體性能瓶頸點和故障點也增多。伴隨著物理伺服器和網絡設備數量的不斷增加,機房空間和電力不足的制約,軟體成本的和整體 TCO 成本的不斷增加,也會逐漸顯現出來。 不難看出,分布式架構的水很深,選擇分布式並不容易。但是,如果已經做好了選擇,那麼如何應對分布式架構帶來的挑戰,就顯得尤為重要。
  • Windows環境下伺服器監控軟體的選擇
    首頁 > 安全 > 關鍵詞 > 伺服器最新資訊 > 正文 Windows環境下伺服器監控軟體的選擇
  • 詳解十三款運維監控工具
    支持多平臺的企業級分布式開源監控軟體2. 安裝部署簡單,多種數據採集插件靈活集成3. 功能強大,可實現複雜多條件告警,4. 自帶畫圖功能,得到的數據可以繪成圖形5. 提供多種API接口,支持調用腳本6.
  • 安全帽識別智能監控預警系統
    人工長時間監控易疲勞,導致監控的疏忽,遺漏或者誤判安全隱患;  3. 人工監控和人員情緒、狀態、工作經驗、性格和生活條件的影響,安全判別帶有強烈的主觀意識,缺乏客觀性。  主要實現功能:  (1)實時識別與預警  在伺服器端部署實時分析系統,可進行實時檢測和預警。在視頻中實時框畫出未佩戴安全帽的人員,並將截屏圖片顯示在客戶端,可以結合現場告警設備發出報警信息,協助管理人員進行管理。  (2)報警記錄存儲   對出現未佩戴安全帽危險行為識別出之後,對視頻進行保存,方便管理人員對記錄查看追溯。
  • 一文理解分布式架構
    通過對MyCat的學習,加深分布式系統架構的理解,以及分布式相關的技術,分布式一致性ZooKeeper服務, 高可用HAProxy/keepalived等相關應用。描述:任何強大的單一伺服器都滿足不了大型系統持續增長的業務需求,資料庫讀寫分離隨著業務的發展最終也將無法滿足需求,需要使用分布式資料庫及分布式文件系統來支撐。分布式資料庫是系統資料庫拆分的最後方法,只有在單表數據規模非常龐大的時候才使用,更常用的資料庫拆分手段是業務分庫,將不同的業務資料庫部署在不同的物理伺服器上。
  • 劉霄,等.室內位置服務雲構建及其人流監控應用
    室內位置服務雲平臺應用試驗表明,雲端和終端軟體均能快速部署、穩定運行,滿足大眾位置的密度監控要求。近年來,位置服務的需求日益增大,人們有近70%~90%的時間在室內區域[1],全球導航衛星系統(global navigation satellite system,GNSS)無法在室內定位,使得複雜室內場景的室內定位技術發展迅速,逐步在各行各業中發揮作用,從各個方面影響著人們的日常生活[2]。
  • 淺談集群、分布式、微服務的異同
    一個服務可能負責幾個功能,是一種面向 SOA 的架構。各分開部署的部分彼此通過各種通訊協議交互信息,並且每臺伺服器都缺一不可,如果某臺伺服器故障,則部分功能缺失,或導致整體無法運行。分布式存在的主要作用是大幅度的提高效率,緩解伺服器的訪問和存儲壓力。區別分布式的方式是一個業務分拆多個子業務,部署在不同的伺服器上。
  • 盈世Coremail異地部署解決方案 分布式部署集中管理
    內部溝通的郵件將使用Coremail私有通訊協議通過專用通道傳輸,保證安全與速度;發往外站郵件,則直接通過本地伺服器對外投遞,真正實現本地化郵件收發。這樣既能減輕總公司伺服器的負擔,又大大加快郵件收發的速度。
  • 如何在基於面向服務架構設計的項目中應用WebService技術(上篇)
    軟體項目實訓及課程設計指導——如何在基於面向服務系統架構設計的項目中應用Web Service技術(上篇)1、了解軟體系統開發人員所能夠獲得的各種層次的功能服務及所存在的問題(1)計算機作業系統中所提供的「Service」(服務)
  • 一套完整的校園視頻監控系統設計方案,可作方案模板
    可靠性:系統硬體採用電信級的伺服器及專業設備,對關鍵設備採取冗餘備份措施,軟體採用模塊化、分層隔離的設計思想,確保整個系統長期穩定運行。實用性:系統的設計突出應用,以現實需求為導向,以有效應用為核心,以技術建設與工作機制的同步協調為保障,確保系統能有效服務於用戶的工作需要。
  • 13張圖搞懂分布式系統服務註冊與發現原理
    本文轉載自【微信公眾號:五角錢的程式設計師,ID:xianglin965】經微信公眾號授權轉載,如需轉載與原文作者聯繫在微服務架構或分布式環境下,服務註冊與發現技術不可或缺,這也是程式設計師進階之路必須要掌握的核心技術之一,本文通過圖解的方式帶領大家輕輕鬆鬆掌握。
  • 阿里雲總監手寫分布式負載均衡+存儲+計算+事務+通信技術筆記
    分布式起源:單機模式1946年情人節發布的ENIAC是世界上的第一臺通用計算機, 它佔地170平米重達30噸,每秒可進行5000次加法或者400次乘法運算,標誌著單機模式的開始。所謂單機模式是指,所有應用程式和數據均部署在一臺電腦或伺服器上,由一臺計算機完成所有的處理。
  • 「技術貼」微服務中臺技術解析之分布式事務方案和實踐
    隨著軟體系統從單體應用邁向微服務架構以及資料庫選型去中心化、異構化的趨勢,傳統的ACID事務在分布式系統上能否延續,如何落地,有哪些注意事項?本文將圍繞分布式事務這一技術議題,介紹FreeWheel核心業務系統在相關領域的業務需求、技術決策和線上實踐。
  • 一套完整的智慧農場視頻監控系統設計方案
    農業物聯網綜合監控技術的突破,利用軟體平臺和先進的硬體設備,建成支撐現代農業發展的物聯網綜合管理服務體系。建設農業物聯網綜合平臺,覆蓋全農場的決策指揮調度體系。1.2.2點位設計前端設備技術要求前端攝像機是整個視頻監控系統的原始信號源,主要負責各個監控點現場視頻信號的採集,並將其傳輸給視頻處理設備。監控前端的設計將結合農場實際監控需要選擇合適的產品和技術方法,保障視頻監控的效果。