写点什么

Netflix 开源实时监控平台 Mantis:故障平均检测时间缩减到秒级

  • 2019-11-12
  • 本文字数:2749 字

    阅读完需:约 9 分钟

Netflix 开源实时监控平台 Mantis:故障平均检测时间缩减到秒级

Netflix 开源了自己开发的 Mantis 平台,该平台能让开发者在最小化观察和操作系统的成本的情况下,实时地监控并分析运维事件,并将故障平均检测时间从几十分钟减少到了几秒钟。


2019 年 10 月 21 日,我们很高兴地宣布,Netflix 将Mantis(螳螂)开源了,这个平台能够帮助 Netflix 的工程师们更好地理解他们所开发的应用程序的各种行为,以确保为 Netflix 的会员提供最高质量的体验。而且我们相信,我们在 Netflix 所遇到的种种挑战并不一定是 Netflix 所独有的,这就是为什么我们要在更广泛的开发社区来分享这个平台。


作为一个流媒体微服务生态系统,在不影响运维判断力的情况下,Mantis 平台为开发工程师提供了让观察和操作复杂分布式系统的成本降至最低的能力。开发工程师们已经基于 Mantis 平台构建了性价比颇高的应用程序,以实现快速识别问题、触发警报、以及实施补救措施,从而最大程度地降低 Netflix 服务的宕机时间,甚至完全避免发生宕机事故。而遇到类似的指标故障,其他系统可能需要花上十多分钟才能完成精确处理,而 Mantis 将这一过程从几十分钟减少到了几秒钟,卓然有效地减少了我们的故障平均检测时间。这点是至关重要的,因为任何宕机时间对于 Netflix 都是致命的,并且会对我们的订阅用户产生非常大的负面影响,因此,宕机过程中每流逝的一秒对我们来说都很重要。


随着 Netlix 在全球日益增长的会员基数,以及随着这些会员越来越多地使用 Netflix 提供的服务,我们对 Netflix 的系统运营健康状况如何进行经济适用、便捷快速且精确无误的监控分析就变得越来越重要。例如,距离我们发表上一篇关于Mantis博客文章(2016 年 3 月)已经有两年半的时间,今日 Netflix 五分钟的宕机的影响体量已经相当于那时候两小时的宕机。

Matins 让回答未知问题变得容易

对于规模巨大又日益增长的系统而言,只使用指标度量和日志分析的传统方法已不能满足当前的系统需求。指标衡量和日志分析方法的前提是,在事故发生之前你预先就知道需要回答什么样的问题。而另一方面,Mantis 让我们完全避开这个缺点,这个平台让我们能够回答事先并未预料到的新问题,且不需要添加任何新的工具或配置。Mantis 并没有使用日志或度量指标,而是支持将事件普遍化,开发人员可以根据需要从任何能收集数据的应用程序对事件流实现访问。通过这种“按需消费”的模式,你就可以自由地将所有数据发布给 Mantis。

Matins 以经济合算的方式回答问题

如果为了能够在未来回答新的问题就发布 100%的运维数据,这么做在传统意义上成本会是非常昂贵的。而 Mantis 使用了一种随需应变的、响应式的模型,在这些事件被订阅成为事件流之前,你并不需要为这些事件付出任何成本。而为了进一步降低成本,Mantis 会为等效的订阅者重新发布相同的数据。通过这种方式,Mantis 与其他系统的显著不同之处在于,Mantis 允许我们对事件实现基于流的可观察性,同时允许开发工程师使用工具来降低成本,否则过高的成本将有害于业务。


从一开始构建 Mantis,我们就把这个指导原则准确无误地铭记于心:让我们确保最小化观察和操作系统的成本,同时也保证了不会牺牲那些必要的和机遇性的监控要点。

构建 Mantis 的指导原则

以下是构建 Mantis 平台背后的指导原则。


  1. 我们应该保证能够对原始事件进行访问。将事件发布到 Mantis 中的应用程序应该可以自由地发布每个事件。如果我们在这个阶段过早地把原始事件转换为其他形式,那么在洞察事件原因方面可能就已经处于劣势了,因为这样一来已经丢失了原始形式的数据。

  2. 我们应该能够做到实时访问这些事件。很多运维性用例在本质上是时间敏感的。而传统的方法采用发布、存储、然后批量聚合事件等步骤,这样处理起来太慢了。与之相反的是,我们应该在事件到达时逐个地对它们进行处理和服务。随着系统规模的扩张,更短的时间内事件的影响会变得更显著,实时处理这一点会变得越来越重要。

  3. 我们应该在不需要向应用程序添加新的工具和配置的情况下,基于这些收集的数据回答那些未知的新问题。无论怎么为系统打造足够的弹性,我们都不可能做到事先悉知系统可能会遇到的每一种可能的故障模式。所以,当这些未知故障不可避免地发生时,最重要的是我们可以从这些收集的数据中获取针对未知问题的新见解。因此,你应该做到能够发布具有任意上下文、任意大小的事件。这样,当你未来某次想起要向系统询问一个未知的新问题时,可以运用这些数据来回答这些新问题。

  4. 我们应该能够以一种经济适用的方式来实现上述所有这些需求。随着 Netflix 这个业务关键系统规模不断扩大,我们需要确保为该业务关键系统所打造的支撑性系统,其最终的成本不会超过业务关键系统本身。


请记住这些指导原则,接下来让我们来看看 Mantis 是如何为 Netflix 带来更多价值的。

Mantis 如何为 Netflix 带来更多价值

Mantis 投入生产的实际应用已经超过四年了。在此期间,在 Mantis 平台上已经构建了几个关键的运维洞察性应用程序。


在这些洞察性应用程序中,一些值得注意的例子包括:


  • 实时监控 Netflix 流媒体健康状况,该应用程序实时地检查 Netflix 的所有流媒体视频流量,并以精细粒度准确地识别那些对观看体验的负面影响。该系统为 Netflix 服务整体健康状况承担了预警指示的作用,并将在几秒钟内触发警告并通知相关团队。

  • 上下文警报,这个应用程序会实时地分析数十种 Netflix 微服务之间数以百万计的互动,从而识别出异常,并为运营商提供与该异常所相关的丰富的上下文信息。这些由 Mantis 在背后支持的聚合具有天然的实时特性,从而使得异常的平均检测时间从几十分钟减少到几秒钟。考虑到 Netflix 如此巨大的规模,这带来的影响确实十分深远。

  • Raven 允许用户使用我们的 Mantis 查询语言(MQL)对来自数百个流媒体源的实时数据进行各种形式的探测。

  • Cassandra 健康检查则提供了对丰富的运维事件的实时分析,并为 Netflix 里每个 Cassandra 集群生成整体性的健康状况报告。

  • 日志警报,通过实时处理来自数千个 Netflix 服务器的日志数据,来检测应用程序错误。

  • 混沌实验监控,实时地跟踪混沌实验中的用户体验变化,并在遇到负面影响时触发中断混沌实验。

  • 实时个人身份信息(PII)数据,跨越所有流媒体源实时地检测个人身份信息数据样本,以快速识别敏感数据的传输。

欢迎尝试开源的 Mantis

如果想要了解更多关于 Mantis 的信息,可以查看 Mantis 的主页。现在,可以尝试让你自己的第一个 Mantis 集群运转起来,可以选择在本地使用 Docker,也可以在云端用 Mantis CLI 在 AWS 中构建一个小集群。你也可以在 Github 上获取 Mantis 的开源代码,通过用户或开发者邮件列表与社区进行交流,为 Mantis 做出你的一份贡献。


Mantis 主页:https://netflix.github.io/mantis/


原文链接:


Open Sourcing Mantis: A Platform For Building Cost-Effective, Realtime, Operations-Focused Applications


2019-11-12 11:263598

评论

发布
暂无评论
发现更多内容

获奖!科技进步奖一等奖!成果贡献奖金奖!

天翼云开发者社区

云计算 云服务 云平台

如何确保团队协作中,项目Node版本的一致性?

秃头小帅oi

node.js 团队协作 低代码

NFT支持的ICO开发:开创众筹的未来

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

CertiK CSO Dr. Kang Li 确认出席Hack .Summit() 香港区块链盛会

TechubNews

Spring Security权限控制框架使用指南

越长大越悲伤

Java Spring Boot spring security

多租户篇 | MatrixOne与MySQL全面对比

MatrixOrigin

数据库 分布式 云原生

大数据时代来了

小齐写代码

深圳企业要知道的:堡垒机就选行云管家!

行云管家

网络安全 堡垒机

深入解析 Java 面向对象编程与类属性应用

伤感汤姆布利柏

Java js java

软件测试学习笔记丨Docker容器镜像制作

测试人

软件测试 测试开发

等保测评与合规性检查定义以及区别简单了解

行云管家

等级保护 等保测评 合规性检查

低代码平台运营效果评估模型:AICE

鲸品堂

低代码 企业号 2 月 PK 榜

助力春节精准营销,火山引擎ByteHouse加速数据分析效率

字节跳动数据平台

数据库 大数据 云原生 数仓 企业号 2 月 PK 榜

站在大模型加速带,重新审视办公提效

飞桨PaddlePaddle

百度 百度飞桨 AI应用 文心大模型 飞桨星河社区

干货 | 如何通过度量研发效能,多角度洞察百人敏捷团队的价值交付?

思码逸研发效能

怎样建立健康的绩效管理体系?聊聊专家看到的误区与疑问

思码逸研发效能

我是如何参与 Apache Calcite 社区并成为 Committer 的

LakeShen

大数据 开源 Apache Calcite apache 社区 Calcite

第40期 | GPTSecurity周报

云起无垠

产品更新 | 如何利用思码逸DevInsight 度量代码评审效率、质量与瓶颈?

思码逸研发效能

一文搞懂设计模式—享元模式

Java随想录

Java 设计模式

小程序框架(概念、工作原理、发展及应用)

天津汇柏科技有限公司

小程序开发 定制软件开发 软件开发定制

智能护航:人工智能引领软件测试新革命

测试人

人工智能 软件测试

教不会你算我输系列 | 手把手教你HarmonyOS应用开发

百度Geek说

HarmonyOS 鸿蒙开发 ArkTS

Databend 开源周报第 133 期

Databend

Stable Diffusion解析:探寻AI绘画背后的科技神秘

极限实验室

GAN model AI绘画 Diffusion Stable Diffusion

终于有篇文章把后管权限系统设计讲清楚了

越长大越悲伤

Java spring 权限 权限控制 后台管理

Apifox 2月版本更新:常用参数优化,自动化测试持续优化

Apifox

开发工具 Apifox 测试工具

如何评价OpenAi发布的视频生成模型Sora?

算法的秘密

Netflix 开源实时监控平台 Mantis:故障平均检测时间缩减到秒级_数据库_Netflix技术博客_InfoQ精选文章