!

Download | 2023 Global Mobile App Advertising & Monetization White Paper

Read>>

技术 | TopOn分布式服务设计与服务器监控预警部署

如今手游出海已经成为常态,越来越多的游戏厂商在全球构建了自己的产品矩阵及庞大的用户量,由此也带来了巨额的数据请求,其中广告请求是数据量最为庞大的类型之一。以激励视频为例,根据TopOn 2019年统计数据,广告变现收益占比较高的休闲与中度手游人均广告展示次数都在3次左右,插屏广告及横幅广告的展示则更多,由此带来的服务请求数更是翻番。

作为全球领先的聚合管理工具,TopOn已与千余家国内外开发团队合作,接入移动游戏和应用超过3000款每日广告展示2亿+、广告请求10亿+、服务请求20亿+。巨额的服务压力下,TopOn服务端是如何保障开发者在全球范围稳定高效使用聚合管理功能的?今天小T就为开发者详细阐述TopOn的聚合平台分布式服务以及确保服务器稳定的监控预警部署。

 

一、聚合平台分布式服务

 

基于广告平台和聚合管理的功能特征,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等机制,实现服务自动伸缩、成本节约。

 

二、服务器监控预警部署

 

在确保高效率的业务处理能力外,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.埋点分析

埋点是侵入式的监控数据采集方式,其优点是其可以更灵活地为我们提供业务内部的监控指标。

 

 

结语

在广告变现愈加普遍的今天,越来越多的手游开发者不仅需要数据精细化的运营功能,还需要稳定、专业、高效的技术服务支持。TopOn从开发者的实际需求出发,基于高效稳定的技术架构为开发者提供广告分层、header bidding、流量分组、AB测试、交叉推广等高效实用功能,并且提供1对1专人沟通,不管是初次接触广告变现的“小白”,还是熟知广告变现技术的“大牛”,所需支持一应俱全,欢迎开发者前来体验使用。

Chat Now