导语:目前高防产品是国内互联网安全领域最赚钱的产品,但是我发现围绕它的产品方面的解析文章很少,所以想和大家分享一下相关经验。揭开高防的神秘面纱。
0x01、前言
目前高防产品是国内互联网安全领域最赚钱的产品,但是我发现围绕它的产品方面的解析文章很少,所以想和大家分享一下相关经验。揭开高防的神秘面纱。线路质量监控模块做的好坏直接影响到高防产品是否能成功。本期就和大家探讨一下这个模块。
由于国内三大运营商在商业利益上的角逐,导致线路质量问题成为了互联网企业影响用户体验最突出的一个问题。人们有句笑话,天下最远的距离不是你在天涯我在海角,而是你在电信,我在联通。国内前期做这块的厂商也很多Top2是博睿、听云,但是它们提供的商业解决方案太贵了(一个网民或者IDC节点做一次探测需要大约1.5分),那对于高防产品这种探测是常态的,而且时间间隔要短。这个钱你是花不起的(放开手去探测,算下来,比高防营收还高)。所以要考虑其它自建的解决方案。
目前自建云拨测有几种做法:
· 通过获取公有云访问的客户端的真实IP做回探测。
· 通过自身的CDN节点部署探测点,对公有云机房做探测。
· 使用App SDK集成探测网络质量探测模块。
方法1,在没有更多的节点的情况下,也只能这么做了。方法2,目前是公有云主流的做法,但是问题很多,部署在CDN节点上的探测节点会影响正常CDN峰值时候的业务,所以部署起来一般很缓慢。那么,方法3是一个很好的选择,它是解决了last mile的问题。但是需要一个大的IP,做SDK的承载方,对用户隐私方面有更高的要求。
抛开以上优缺点的考虑,我选择第三条路,那么如何设计线路质量探测产品呢,下面就和大家详细阐述一下。
0x02、SDK线路质量监控设计
1、业务需求描述
· 无论是BGP高防、3线静态高防、托管高防、类似阿里游戏盾的非对称高防。都需要对客户端到业务服务器的网络质量做一定的监控(如果接入高防IP,那么业务服务器就是高防IP)减少大网抖动给用户业务带来的流失率。也方便由于线路质量不好自动化升级&降级调度(客户端调度)。
· 监控App使用过程中的网络状况,排查App单个用户的网络异常,解决App客户访问卡顿或者延迟过高的问题。
· 对大网流经路由器做分析。优化线路配置。
2、产品需求
· 高防自动化调度系统
(1)通过尽可能多的App嵌入网络监控SDK,上传icmp相关数据(网络平均延时、网络平均丢包率)
(2)通过后台实时大数据清洗、聚合、分析等操作得出各个省乃至各个市的网络延时和丢包数据。
(3)通过WebUI方式展示给展示给用户。
(4)通过WebUI设置告警规则,触发告警,执行客户端调度策略。
· App客户端网络质量排查系统
(1)记录所有App用户上传的网络延时和网络丢包数据。
(2)通过WebUI方式展示给展示给用户。
(3)交给售后客服人员。
· 大网监控路由数据挖掘
(1)通过上传的数据,通过NoSQL语句挖掘客户端流经路由器,对路由器标识,优化高防线路配置。
3、系统架构
· 客户端数据采集SDK
(1)设置目标IP、监控间隔。
(2)获取App基本信息、网络质量探测信息(丢包、延时)、路由跟踪信息
· 服务器端大数据存储分析
(1)kafka+spark集群
①. 实时分析通过spark streaming=> elastic Search
②. 离线分析通过spark分析hadoop历史数据 =>elastic Search
(2)前端展示
①. console/VUE 全网监控大屏&监控设置&troubleshooting
②. django/python 后台数据查询 elastic Search
4、数据分析
5、系统原型图
(1)全网监控大屏
(2)告警设置
(3)troubleshooting网络质量历史数据
监控大屏主要向用户展示以下重要信息:
· 多个高防IP不同的线路质量监控
· 针对于不同运营商客户端到监控高防IP的线路质量,其中包括BGP高防IP、电信、联通、移动线路的质· 线路质量主要体现在平均延时和平均丢包率,中国地图会统计每个省有多少客户端在提供数据,统计后的平均数据。
· 历史线路质量趋势图,提供除了预设时间节点,还提供自定义时间选择。
6、Demo数据验证
和一个做App的朋友求助,前期帮助集成测试版SDK获取丢包率和延时,从数据处理后台采样获取了大约25000条数据做demo验证。
原始数据截图如下:
原始数据主要分两部分,第一部分是通过SDK采集丢包率和延时以及用户device_id。第二部分,当SDK原始数据到达分析平台后,分析平台会对现有数据做二次加工,输出省份和客户端线路。
通过excel做简单的数据分析
得出以下统计数据(降序排列)
使用echart网页功能先显示出来。
其他丢包率也是同样的道理。Traceroute上来的数据太少价值不大,先暂缓分析。
0x03、总结
本文从App SDK形式网络质量监控,BRD讲到PRD,从各个方面阐述了网络质量监控模块的重要性,以及商业实现途径。为了更好的让读者了解其技术架构和实现细节下篇文章会和详细描述实现过程(coding),敬请期待。