首页 首页 大数据 大数据入门 查看内容

Netflix如何使用Mantis进行运维数据流及批量处理

木马童年 2019-1-14 08:15 26 0

今年三月,Netflix在博客中推出了一系列文章,介绍了该公司设计的一个运维指标处理平台,名为Mantis。在这个平台上可进行细粒度、设备级别的事件推送,并捕获运维相关的指标。它使得Netflix能够构建具备极细粒度、实 ...

今年三月,Netflix在博客中推出了一系列文章,介绍了该公司设计的一个运维指标处理平台,名为Mantis。在这个平台上可进行细粒度、设备级别的事件推送,并捕获运维相关的指标。它使得Netflix能够构建具备极细粒度、实时的数据观察应用,通过这些应用能够深刻地了解Netflix终端用户的设备与AWS服务之间的互操作,这些功能包括运维方面的仪表板,以及通过SPS的分析实现的单个节目级别的警告功能。

Netflix现有的服务级别监控系统并不适用于理解与诊断在具体某个特定用户、设备和娱乐节目的环境中,与设备级别行为相关的问题。这些用户、设备与节目的组合形成了一种资产,而数据的捕获、转换、报表生成以及警告就是基于这些资产进行的。由Mantis所驱动的异常检测功能让工程人员能够跟踪每种资产的各种事件,使他们能够快速地对生产环境中的问题进行响应,并得知受到影响的用户群体。而这些能力是作用在一个高处理量、高基数的实时流处理以及批量数据处理的环境中实现的。

Mantis与Netflix现有的基础设施实现了良好的集成,允许开发者及其应用提交用于生成事件、处理事件和查询事件的各种作业。这些事件来自于约20种不同的数据源,包括Zuul和API等服务、个性化和点播服务、以及设备日志数据等等。事件生成者与调用者之间的解耦实现了这两者之间的隔离,为生产环境中的异常检测和修复提供了更大的灵活性。

该系统的架构基于Apache Mesos设计,它提供了一种处于应用开发者与EC2服务器集群之间的抽象层,作为流处理作业计算资源的共享池。应用开发者可通过一系列API或某个图形用户界面对作业进行配置,并可在之后对作业的配置进行编辑,以及查询当前各项指标。应用开发者可以基于这些数据构建自己的应用程序,同时又与Mantis的内部实现细节保持了解耦。

Mantis作业具备不同的消息保证级别,遵循Kafka语义,例如“最多一次”可保证传递,以及“至少一次”可保证传递。曾有人向Mantis的工程师Neeraj Joshi询问Mantis为何不使用其他架构方案,包括Spark Streaming。Joshi指出,

基于Kafka的实现对于资源的调度具备更多的控制能力,因此我们可以选择更智能的分配方式,例如binpack算法等等(同时也让我们能够对作业的处理进行扩展)。

Mantis的设计中包括一个master/agent的集群模型,并使用了Frenzo。Frenzo是一个资源管理器,它最近刚刚成为一个开源项目,作为一个Java的调度器库,它可以通过在Mesos工作集群中新增与删除实例的方式实现自动伸缩。伸缩的标准取决于资源使用率指标、作业的调度时间,以及通过资源使用率PCLdI/AAAAAAAAB-0/VEbNznNVg7UIzW9l01-wmhLYgnRkze1GA/s1600/image06-legend.png">仪表板对作业进行的人工操作等等。Fenzo可基于作业调度时间以及当前的资源使用情况动态地分配EC2实例。作业管理器可提供元数据保留、SLA、部署位置、作业拓扑结构以及生命周期等信息。

Mantis能够执行的任务包括流处理、具有背压感知性的非阻塞性作业、数据转换以及异步结果存储。对于基本的转换/聚合等用例,作业可以定义为一个单独的阶段。而对于高处理量、高基数的事件流,也可以将作业定义为多个阶段进行分片与处理等操作。

Netflix的工程师Nick Mahilani提到了Mantis的作业定制化、用户自定义的作业以及内部的实现细节:

系统提供了一些可重用的作业,用户在提交这些作业时能够传递不同的参数集。举例来说,某些作业通过不同参数可连接至不同的来源、根据不同的key进行分组、或基于阀值参数进行异常检测。某些作业还能够接受被动态编译为模板作业的参数……

用户可自行开发以作业方式进行提交的新应用,他们可专注于作业本身的编写,而无需考虑扩展或资源设置方面的问题。在实现Mantis作业时需要引入Mantis运行时库,并实现某个Java接口。该作业将被传递一个RxJava Observable对象,作业的开发者可通过Rx操作符对其进行转换。作业的执行结果可传输至管道的下一个阶段,也可让其他作业使用经过转换的流。在部署作业时,用户需要将作业打包为一个.zip文件,随后通过Mantis集群进行分发。

据报告显示,在处理运维用例时,Mantis能够充分利用服务器上的网卡,同时保持很少的CPU占用。

在不久的将来,多智时代一定会彻底走入我们的生活,有兴趣入行未来前沿产业的朋友,可以收藏多智时代,及时获取人工智能、大数据、云计算和物联网的前沿资讯和基础知识,让我们一起携手,引领人工智能的未来!

监控系统 流处理 数据处理 基础设施 数据源 计算资源
0
为您推荐
大数据技术怎么学习,在学习大数据之前,需要具备什么基础?

大数据技术怎么学习,在学习大数据之前,需要具备什么

  大数据又称黑暗数据,是指人脑无法处理的海量数据聚合成的信息资产,在民生、IT、…...

大数据现在处于什么阶段,入行大数据,需要学习哪些基础知识?

大数据现在处于什么阶段,入行大数据,需要学习哪些基

大数据的发展历程总体上可以划分为三个重要阶段,萌芽期、成熟期和大规模应用期…...

对于大数据开发的学习,最经典的学习路线是什么?

对于大数据开发的学习,最经典的学习路线是什么?

对于现代社会,大数据开发的重要性不言而喻,通过大量的数据处理、分析获取有价值的信…...

大数据时代,主要需要什么类型的人才?

大数据时代,主要需要什么类型的人才?

什么是大数据,大数据是主要指的是,无法在可承受的时间范围内用常规软件工具进行捕捉…...

数据科学,数据分析和机器学习之间,有什么本质区别?

数据科学,数据分析和机器学习之间,有什么本质区别?

我们都知道机器学习,数据科学和数据分析是未来的发展方向。有些公司不仅利用大数据帮…...

什么样的人才是大数据人才呢?我们应该怎么定义和分类?

什么样的人才是大数据人才呢?我们应该怎么定义和分类

在未来世界,国家之间、区域之间甚至是公司之间的大数据人才的争夺战,将是愈演愈烈的…...