摘要:由国际知名开源社区Linux基金会主办的Linux con Container ConCloud Open China 2018(LC3)于6月25日在北京开幕。今年,阿里云作为白金合作伙伴出现在中国的这一开源活动中。本文是在线团队分享系列的第三篇。

由国际知名开源社区Linux基金会主办的linuxcon Container ConCloud Open China 2018(LC3)于6月25日在北京开幕。今年,阿里云作为白金合作伙伴出现在中国的这一开源活动中。本文是在线团队分享系列的第三篇。

本文介绍了阿里云网络团队在网络分析方向的一些实践,包括如何基于实时计算搭建整个平台,以及几个关键场景。

演讲嘉宾:阿里云高级技术专家卢比奥

题目:基于jstorm的网络分析平台

分论坛:网络编排

项目背景随着阿里云的快速发展,其业务已覆盖全球18个地区,服务超过100万客户。不仅如此,阿里云还支持类似双11这样的活动,挑战其灵活性、调度性和稳定性。网络业务发展的背后是越来越复杂的网络技术体系,比如SDN。现在整个阿里云网络都是基于SDN的,所有的云网设备从业务到南北都是通过我们的API进行管理和配置。网络本身也分为Overlay和Underlay,主要是物理交换机、路由器和Overlay,为用户提供灵活多变的虚拟网络功能。然后我们有NFV,RDMA,SD-WAN等等。整个网络变得越来越复杂。

让网络更简单。虽然我们有如此复杂的技术体系,如此大规模的挑战,但我们仍然希望我们的网络更稳定、更简单、更易用。我们希望每次网络升级都不会影响用户。当任何设备出现问题时,我们都可以提前发现问题,并非常准确地定位出出现问题的节点。最后,我们希望对网络有非常丰富和多维度的了解,这对我们自己和用户维护和运营这个网络非常有帮助。网络即服务,我们希望自己的网络可以在需要的时候被连接起来,就像一个简单灵活的服务。

如何在这种持续增长的情况下,保持网络规模的简单高效。自动化肯定是必要的,但是在自动化的基础上,我们希望系统能够承担更多的事情,关闭更多的决策,减少整个网络生命周期中的人为干预,让另一个系统代替我们的用户和网络运营商去和控制者打交道。我们的用户和网络运营商如何决策?他们依赖数据。基于这些数据和他们的判断做出决策,所以数据是这个闭环的最后一环。右图展示了我们目前的想法。基于各种网络运行过程中产生的数据系统的自动生成策略,将这些策略提交给控制器,形成网络的配置管理,网络会在这个过程中产生新的数据。在这个系统上,我们完成了从网络更新、网络监控、网络画像、网络诊断、异常恢复的闭环。

根据这一思想,我们设计并实现了一个网络分析平台。我们把这个平台命名为七天,希望能以天空的视角看到我们的全网。

整个平台大致可以分为三层。底层是数据源,包括从网络设备和业务服务收集的各种数据。向上是我们的实时数据分析层。从左到右,第一个是我们的基础数据分析,包括DB数据清洗,ETL,通用数学计算。基础数据分析是右边所有数据分析的前提,将原始数据转换成标准格式的数据。第二个是我们的网络监控分析,用来发现网络中的可疑异常。它分为三个部分,监控策略,网络事件和异常通知。消耗基础数据,初级网络异常,融合网络事件,最终产生可疑事件记录和告警。第三个是我们的网络诊断,当发现问题的时候用来定位问题的具体原因。它可以对每一条数据报文进行处理和分析,并计算出报文的流动路径,找出在这条路径上出现问题的网络设备以及具体出现问题的原因。第四是我们的网络调度。目前,该部分最重要的用途是在故障发生时恢复故障的流量调度策略。最后一个是我们的网络画像,用于我们网络资源的规划和调度,也用于我们产品成本和收益的核算。整个实时分析层是基于JStorm引擎开发的,不是一个独立的应用,而是很多JStorm任务的集合。

顶部是我们数据分析的输出,其中有流数据输出,也支持API数据提取。这两个主要是与其他系统连接。比如我们的SDN控制器会消耗七天产生的策略数据来管理和配置网络设备,但是对于我们的研发,他们需要售后更直观的数据呈现。最后,我们开发了一个钉钉机器人。你可以问他一个集群最近的告警或者一个用户实例的运行情况。这个机器人也有一个好听的名字,大圣,所以和我们平台的名字一起,就是齐天大圣。接下来我将自下而上介绍整个平台,包括数据源、分析性能、实时监控、网络诊断、智能调度、多维网络画像。

实时网络监控七天的整个监控系统是基于JStorm的流计算引擎开发的。我们从数据流的角度来看整个系统是如何处理的。最左边仍然是网络设备。经过一些基本的ETL和聚合,它收集的原始数据就变成了多维信息和网络流量信息流数据。这些数据将被我们的JStorm拓扑消耗,它被称为监控策略任务。监控策略任务将包括各种监控策略,每个策略将从不同的维度识别异常。目前支持三种策略:指数波动、区间预测、事件统计。策略完成后,接下来是一个名为事件合并的JStorm任务。此任务的作用是根据用户和网络拓扑的维度合并策略任务生成的事件。实时监控的最后一个环节是通知中心,主要是根据网络事件的不同类型和严重程度,采用不同的方式进行通知。目前支持邮件、短信、应用消息等。每份通知都将清楚地描述问题发生的时间和范围,并帮助R&D做出判断。

基于流计算的网络诊断接下来,我们来看看齐天是如何基于流计算进行网络诊断的。当用户流量出现异常时,以前是通过抓包或者traceroute等工具进行定位,但是这种方法一方面效率低,另一方面在覆盖网络下很难达到效果。为此,我们的网络设备采用消息染色的方法,将染色后的消息收集到SLS日志中,然后由JStorm任务对这些消息进行分析,最终可以定位出引起问题的设备节点。

智能网络调度如何恢复有问题的网络是我们下一个系统需要解决的问题。目前主要的网络问题是服务器上虚拟机的网络异常和我们的分布式虚拟网关异常。当前者出现问题时,我们需要快速定位可以迁移的目标服务器,然后快速迁移虚拟机。当后者出现问题时,我们需要快速定位新的可以引流的虚网关组,引导流量。虚拟机的迁移是一个全面的评估系统。作为一个网络,我们将为虚拟机调度系统提供可选的交换机和服务器来做出决策。虚拟网关的流量迁移是网络内部的闭环逻辑。

多维度网络画像最后一块是我们的多维度网络画像,实际上有两层,一层是实时计算,这里是在JStorm上做的,另一层是离线计算。我们基于Max-Compute开发的一些离线分析任务,做出最终的多维网络画像。网络画像是我们运营网络产品的重要手段。在这个平台中,我们结合产品销售、资源消耗、实际成本和用户画像,帮助我们对每一个产品做出运营决策。比如分析用户的资源部署,了解我们和运营商之间的直接网络费用使用情况。

综上所述,以上是七天平台目前提供的服务,接下来我们会在智能分析上进一步进化,让我们更快的了解情况,更准确的定位原因,更智能的调度流量。这将使阿里云网络更智能、更高效,帮助我们实现让我们的网络更简单的使命。