揭秘双11丝滑般剁手之路背后的网络监控技术

简介: 本篇将重点介绍Hologres在阿里巴巴网络监控部门成功替换Druid的最佳实践,并助力双11实时网络监控大盘毫秒级响应。

概要:刚刚结束的2020天猫双11中,MaxCompute交互式分析(Hologres)+实时计算Flink搭建的云原生实时数仓首次在核心数据场景落地,为大数据平台创下一项新纪录。借此之际,我们将陆续推出云原生实时数仓双11实战系列内容,本篇将重点介绍Hologres在阿里巴巴网络监控部门成功替换Druid的最佳实践,并助力双11实时网络监控大盘毫秒级响应。

3...
2...
1...
00:00:00 。购物车,结算,提交订单,付款
00:01:00...。滴,您的支付宝消费xxx万元。
亿万人同时参与的千亿级项目,破记录的峰值58万笔/秒,剁手党们在整个交易过程中如丝般顺滑,好像参加了一个假的双11,而这一切的背后都离不开阿里巴巴网络能力的强大支持。随着技术的发展,尤其是近年来云和电商业务的愈发兴盛,基础网络也变得越来越庞大和复杂,如何保障这张膨胀网络的稳定性,提供云上用户畅通无阻的购物体验,对网络系统建设者和运维者说更是极大的考验。
理论上来说,故障不可避免,但是如果能够做到快速发现,定位,修复甚至预防故障,缩短故障时长,即可让用户轻微或无感是稳定性追求的终极目标。2015年的微软提出了pingmesh,成为业界事实的解决方案,但是由于天生的某些缺陷性,导致故障发现时间过长。阿里巴巴网络研发事业部从2017年就开始研发站在世界前沿的探测系统AliPing,AliPing实时系统的出现将阿里故障发现带入了秒级响应,数据采集到处理到大盘呈现最快时间延迟在数秒之间,告警+故障定位分钟级,7*24全天候监控着整个阿里的网络状况。
AliPling的核心架构图如下:
1.png

在整个系统中,监控大盘作为故障发现的核心元素,承担着实时呈现网络状况的重任,每一条曲线的起起伏伏,就有可能代表用户的业务在受损, 如何快速实时展示网络状态,并预警/发现网络故障,帮助用户迅速止血,这对于监控团队的监控大盘也是重大的考验。对于监控人员使用的监控大盘来说,困难有多个:
1)数据时效性要求高:需要实时的将处理完的结构化数据(告警,监控)7*24小时的呈现在使用者(GOC, 各个或者监控人员面前,以便及时地发现处理全阿里+蚂蚁的网络故障。
2)数据源复杂:网络数据源众多,业务场景众多,有一分钟数百G的流量监控数据,也有一分钟几十K的IDC网络数据,如何将这些不同种类,不同数据量的业务数据,纳入监控体系发现异常,对整体端到端监控大盘来说也是一种考验。
3)数据指标维度多:对于监控人员来说,需要监控的数据指标维度特别多,可以看作是一个复杂的OLAP查询系统,如何根据自身业务场景从大盘中实时查询所需的业务数据,这对于处理后端数据的OLAP框架也是一个重大挑战。

技术选型

对于监控大盘来说,用户的组合查询条件具有不可预知性,其结构化数据没有办法提前算好,只通过OLAP(联机分析处理)技术,实时对基础数据分析组合,并将结果呈现给用户。Aliping大盘实际就是OLAP技术体现,将不同维度的故障数据(机房、区域、DSW、ASW、PSW、部门、应用等等)通过大盘形式展现在用户面前。

2017年在AliPing系统实施的时候,我们对比了多项OLAP数据库, 其中选择比较有代表性的进行了对比:
1)HIVE
底层基于HDFS存储,将SQL语句分解为MapReduce任务进行查询。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。但是由于底层是HDFS分布式文件系统的限制性,不能进行常见的CUD(对表记录操作)操作,同时Hive需要从已有的数据库或日志进行同步最终入到HDFS文件系统中,当前要做到增量实时同步都相当困难。最重要的是:查询速度慢,无法满足监控大盘秒级相应需求。
2)Kylin
传统OLAP根据数据存储方式的不同分为ROLAP(relational olap)以及MOLAP(multi-dimension olap)。ROLAP 以关系模型的方式存储用作多为分析用的数据,优点在于存储体积小,查询方式灵活,然而缺点也显而易见,每次查询都需要对数据进行聚合计算,为了改善短板,ROLAP使用了列存、并行查询、查询优化、位图索引等技术。Kylin中数据立方的思想就是以空间换时间,通过定义一系列的纬度,对每个纬度的组合进行预先计算并存储。有N个纬度,就会有2的N次种组合。所以最好控制好纬度的数量,因为存储量会随着纬度的增加爆炸式的增长,产生灾难性后果。这个对于庞大的网络数据和不可确定性维度组合,是不可以接受的。

3)ClickHouse
这个是由俄罗斯yandex公司开发的,专门为在线数据分析而设计。根据官方提供的文档来看,ClickHouse 日处理记录数"十亿级"(没测过)。其机制采用列式存储,数据压缩,支持分片,支持索引,并且会将一个计算任务拆分分布在不同分片上并行执行,计算完成后会将结果汇总,支持SQL和联表查询但是支持不够好,支持实时更新,自动多副本同步。总体来说,ClickHouse还算不错,但是由于不够成熟,官方支持度不够,bug也多多,最重要的是集团内也没看到人用,只能放弃

4)Druid
是一种能对历史和实时数据提供亚秒级别的查询的数据存储系统。Druid 支持低延时的数据摄取,灵活的数据探索分析,高性能的数据聚合,简便的水平扩展。适用于数据量大,可扩展能力要求高的分析型查询系统。其机制将热点和实时数据存储在实时节点(Realtime Node)内存中,将历史数据存储在历史节点(history node)的硬盘中,实时+伪实时的结构,保证查询基本都在毫秒级。高速摄入,快速查询正是满足了我们的需求,同时还有通用计算引擎团队的有力支持,在早期我们选择了druid作为了我们监控大盘的OLAP支持系统。

新OLAP网络监控系统

随着业务的复杂化,业务进一步增多,Druid使用过程中也暴露出一系列问题:
1)数据量摄入的瓶颈, 集团上云,流量的引入,使我们数据量激增,数据写入出现了数次大故障
2)由于业务复杂多变,我们需要增加维度数据,Druid增加相对来说过程比较复杂
3)Druid的查询方式不友好,有一套自己的查询语言,对于SQL支持太差,浪费大量时间学习
4)不支持高并发,对于大促来说简直是灾难。有两年双十一,我们只能上线踢用户保证监控大盘可用。

随着暴露出的问题越来越多,我们也在寻找一款既能替代Druid解决当前问题,又能满足实时OLAP多维分析场景需求的产品。
也是在集团内其他部门沉淀的最佳实践中知道Hologres,并且了解到Hologres支持行存模式下的高并发点查和列存模式下的实时OLAP多维分析,觉得这一点很贴合我们网络监控系统的要求,于是就抱着试试的心态先去测试体验Hologres。通过全链路的测试和大量的场景数据验证,能满足我们场景需求,于是就决定上线Hologres至正式生产中。

改造后的新OLAP监控系统如下图所示,整体的数据流程大致如下:

  • Kafka实时采集网络相关的监控指标数据,并写入Flink中轻度汇总加工
  • Flink将初步加工完成的基础粒度的实时数据实时写入Hologres中,由Hologres提供统一的存储
  • Hologres直接实时对接监控大屏,大屏实时展示多种监控指标的变化情况,不符合预期的数据实时报警,相应的业务人员立即排查问题并解决。
    2.png

业务价值

今年也是Hologres第一年参与AIS网络故障监控的双11作战,作为新秀交出了令我们比较满意的答卷。整体来说对于业务的价值主要表现如下:

1)TB级数据毫秒级响应
对于实时监控来说,时间就是生命线,越快发现故障就能越快止血,如何根据用户输入的复杂组合条件,在TB级数据中,仅仅以秒级甚至是毫秒级的响应筛选出符合要求的数据(OLAP),这对很多系统来说都是很大的挑战,而实战证明,合理的利用Hologres索引功能,并通过资源的合理分配等,在OLAP实时性上完美的满足了监控业务的需要。

2)支持高并发
双11的监控大屏往往需要查询查询历史数据,并根据历史数据做报警预测,以往的系统最多只能支撑不到数十用户的查询(数10天数据),而Hologres能支撑数百用户的大规模并行查询并且依旧没有达到上限,在今年双11的0点时,面对数百倍的平时数据量冲击,监控曲线依旧平滑如旧,毫无滞涩之感

3)写入性能高
对于之前数十万/秒,数百万/秒的写入能力,Druid的表现不是很好容易出现涌塞现象,而Hologres可以轻松做到,这也就轻松解决了我们的实时写入瓶颈问题。

4)学习成本低
Hologres兼容Postgres,全SQL支持,非常方便新用户上手,无需再花费时间和精力去研究语法。同时Hologres对于BI工具的兼容性很好,无需做改造就能对接监控大屏,节约大量时间。

对每一个天猫双11剁手人来说,每一次的丝滑般购物体验都离不开阿里网络能力的支撑,而监控大盘就是阿里网络状况的眼睛。Hologres作为大盘的核心环节,给大盘持续赋能。但是,作为一个新生儿,HOLO仍然有一些不太成熟的地方,在透明升级、稳定性等环节上依存在提升空间。我们也愿意同Hologres一起成长,期待明年双11 Hologres更优秀的表现。

作者简介:唐傥,隶属网络研发事业部网络,现从事网络稳定性开发研究工作,前北邮研究生导师,拥有数个网络和算法相关专利。

相关实践学习
基于Hologres+PAI+计算巢,5分钟搭建企业级AI问答知识库
本场景采用阿里云人工智能平台PAI、Hologres向量计算和计算巢,搭建企业级AI问答知识库。通过本教程的操作,5分钟即可拉起大模型(PAI)、向量计算(Hologres)与WebUI资源,可直接进行对话问答。
相关文章
|
5天前
|
SQL 安全 算法
网络安全与信息安全:防御前线的关键技术透视
【4月更文挑战第27天】 在数字化时代,网络安全与信息安全已成为维系信息社会正常运作的重要支柱。本文针对当前网络安全领域面临的漏洞问题、加密技术的应用以及提升安全意识的必要性进行深入探讨。通过分析网络攻击者的常见手段和动机,文章揭示了安全漏洞的形成原因及其对个人及企业造成的潜在威胁。进一步地,文中介绍了现代加密技术的种类和作用机制,包括对称加密、非对称加密和哈希算法等,并讨论了这些技术如何在不同场景中保障数据安全。此外,文章还强调了培养全民网络安全意识的重要性,并提出了一系列实用的策略和方法。通过对这些关键技术的综合分析,旨在为读者提供一套全面的网络安全与信息安全防护指南。
|
2天前
|
安全 网络安全
网络安全攻防实战演练:技术探索与实践
【5月更文挑战第1天】网络安全攻防实战演练,通过模拟攻击与防御,提升组织应对网络安全威胁的能力。演练包括准备、攻击、防御和总结四个阶段,涉及环境搭建、攻击技术应用、防御措施执行及后期评估。此类演练有助于检验安全防护能力,提升应急响应速度,暴露系统隐患,加强团队协作,是保障网络安全的关键实践。
|
2天前
|
机器学习/深度学习 自动驾驶 安全
基于深度学习的图像识别技术在自动驾驶系统中的应用网络安全与信息安全:防御前线的关键技术与意识
【4月更文挑战第30天】随着人工智能技术的飞速发展,深度学习已成为推动多个技术领域革新的核心力量。特别是在图像识别领域,深度学习模型已展现出超越传统算法的性能。在自动驾驶系统中,准确的图像识别是确保行车安全和高效导航的基础。本文将探讨深度学习在自动驾驶中图像识别的应用,分析关键技术挑战,并提出未来的发展方向。
|
2天前
|
存储 安全 网络安全
网络安全与信息安全:防御前线的技术与意识
【4月更文挑战第30天】在数字化时代,数据成为了新的货币,而网络安全则是保护这些资产的保险箱。本文深入探讨了网络安全漏洞的成因、加密技术的进展以及提升安全意识的重要性,旨在为读者提供一道防线,帮助他们在网络空间中更安全地存储、传输和处理信息。通过分析当前的威胁景观,我们讨论了如何通过技术手段和行为改变来增强个人和组织的网络防护能力。
|
2天前
|
SQL 安全 算法
网络安全与信息安全:防御前线的技术创新与意识提升
【4月更文挑战第30天】在数字化时代,网络安全和信息安全已成为维护国家安全、企业利益和个人隐私的关键。本文深入探讨了网络安全漏洞的形成机理及其对信息系统的潜在威胁,同时详细分析了加密技术作为信息保护的重要手段的原理和应用。此外,文章还强调了安全意识在构建坚固网络防线中的核心作用,并提出了提升公众和企业员工安全意识的策略。通过综合技术性措施与人文教育,旨在为读者提供一个全面的信息安全防护指南。
|
3天前
|
安全 算法 物联网
网络安全与信息安全:防御前线的技术与意识
【4月更文挑战第30天】在数字化时代,数据成为了新的金矿,而网络安全则是保护这些宝贵资产的盾牌。本文将深入探讨网络安全中的漏洞问题、加密技术的应用以及提升个人和企业的安全意识的重要性。通过对当前网络威胁的分析,我们将了解如何通过技术和教育手段来构建一个更加安全的信息环境。
|
3天前
|
XML 前端开发 JavaScript
【JavaScript技术专栏】JavaScript网络请求与Ajax技术
【4月更文挑战第30天】Ajax是Web开发中实现动态数据更新的关键技术,允许不刷新页面即从服务器获取数据。它结合了HTML/CSS、DOM、XML/JSON和JavaScript。`XMLHttpRequest`是传统的Ajax实现方式,而`fetch` API是现代、简洁的替代选项。Ajax应用实例展示了如何使用fetch在搜索框输入时异步获取并显示结果,提升了用户体验。掌握这些技术对前端开发者至关重要。
|
3天前
|
存储 安全 物联网
网络安全与信息安全:防范之道与技术之盾
【4月更文挑战第30天】在数字化时代,网络安全和信息安全已成为维护信息完整性、确保数据私密性和保障系统可用性的关键。本文深入探讨了网络安全漏洞的成因,加密技术的进展以及提升个人和企业的安全意识的重要性。通过分析当前网络威胁的多样性,文章提出了一系列创新性的解决方案,并强调了安全防御策略中人的因素的核心地位。
|
3天前
|
存储 XML 前端开发
【Flutter前端技术开发专栏】Flutter中的网络请求与数据处理
【4月更文挑战第30天】本文介绍了Flutter开发中的网络请求和数据处理。 Flutter开发者可选择http(官方库)或dio(功能更强大)进行网络请求。http库简单易用,dio支持更多功能如拦截器。数据处理涉及JSON和XML解析,数据存储可选SharedPreferences或Hive,数据传递推荐使用InheritedWidget或Provider状态管理库。了解这些知识点能提升Flutter开发效率。
【Flutter前端技术开发专栏】Flutter中的网络请求与数据处理
|
3天前
|
安全 算法 网络安全
网络安全与信息安全:防范网络攻击的关键技术与策略
【4月更文挑战第30天】 在数字化时代,数据成为核心资产,而网络安全和信息安全则是维护这些资产的关键防线。本文深入探讨了网络安全漏洞的概念、加密技术的进展以及提升安全意识的重要性。通过对当前网络威胁的分析,我们揭示了漏洞产生的原因和它们对系统安全的影响。同时,文章详细介绍了从古典到现代的加密技术演变,并强调了量子计算对未来加密的潜在影响。最后,通过案例研究和最佳实践的分享,本文旨在提高读者的安全防范意识,并为建立更安全的网络环境提供战略性建议。