| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 2021-09-07 -> 正文阅读 |
|
[嵌入式]2021-09-07 |
**AntMonitor 简 介 ** AntMonitor 是蚂蚁集团的智能监控系统,通过构建面向监控可观测数据的、实时的、稳定的采集、清洗、计算及存储数据链路,为技术风险大脑及体系提供实时、稳定、可靠、丰富的可观测数据与告警服务。 AntMonitor 日常服务于蚂蚁全站 100+ 业务域,分钟峰值数据清洗量 20TB、数据聚合量 1TB、数据存储量 1.5 亿条,大促期间这些指标更是成倍增长,如此庞大且复杂的系统是如何对自身的稳定性进行保障的,这篇文章将从思考、策略与实现的角度带领大家一探究竟。 系 统 构 架 系统架构上,AntMonitor 可以分为产品、告警、计算和存储等四个子系统,各个子系统可以独立提供服务,又相互协调配合,承担起了蚂蚁技术风险的数据底盘角色。 ** 产品系统 ** 产品系统直接为用户提供各项可视化服务,包括 monitormeta 和 monitorprod 两个组件。
** 计算系统 ** 计算系统提供一体化的数据采集、清洗、聚合与数据生命周期管理服务。计算系统内组件较多,可以分为服务层、计算层和采集层进行介绍。
二、计算层
三、采集层
** 告警系统 **
如果将告警系统和计算系统进行类比的话,可以抽象地认为:告警的输入不是采集,而是计算系统产出的数据;告警的输出也不是存储系统,而是告警通知网关 alarm-gateway 。 ** 存储系统 **
**稳定性建设 ** 监控系统在整个蚂蚁的体系架构内是一个特殊的角色,它在承载所有业务系统的可观测与告警能力的同时,还为容量、自愈、故障应急等技术风险其他子域提供着数据服务。 因此,监控对自身的稳定性要求更加严苛,在诸如大规模宕机、机房网络中断或更极端情况下,监控也需要保障自身是可以稳定运行的。 针对蚂蚁智能监控自身的稳定性建设,我们主要从两方面进行推进,包括稳定性架构的设计与运行时的稳定性保障,整体如下图所示。 ** 稳定性架构 ** 稳定性架构是建设稳定性中最重要的一环,一个经过缜密设计的稳定性架构,可以使我们后期尽可能优雅从容地处理各类稳定性问题,而不是疲于奔命地打地鼠。 具体来说,在设计稳定性架构之初,我们首先应该意识到系统的运行时环境和输入都不会是稳定的。 运行时环境的不稳定 ,主要体现在机器的故障宕机、网络的抖动,或者更极端的机房光纤被挖断、城市自然灾害等客观因素影响。处理这类问题通常从两方面出发: 第一、尽可能地提升系统的容灾等级。 例如单点、机房级容灾、城市级容灾等,以最基础的去单点来说,我们需要保证所有的调度或同步类节点(例如 monitormeta、gs)都是基于主备架构的,所有的服务类节点(例如 monitorprod、tableapi)都是无状态的,所有的分片节点(例如 gaea-registry、ceresbase)都是存在冗余副本的,所有的工作类节点(例如 cspace、alarm-cspace),宕机后也都是可以自行恢复的。 第二、所有的数据处理流程都应该面向失败进行设计。 针对系统输入的不确定性 ,我们也分两种情况进行处理: 第一种情况是入口数据的错乱,例如脏配置、脏元数据、不合法的数据类型等,错误的数据流入系统可能会导致不可预期的行为,针对此类问题,我们通常需要在入口处进行校验,拒绝非预期的数据流入系统。 第二种情况是入口数据量级管控,任何系统,其性能都是和容量挂钩的,其设计也都是在一定的性能容量平衡假设下进行的。监控系统的输入通常是业务日志,而且监控配置的定义是直面用户的,那么很可能一个随意定义的配置将导致海量的服务调用明细日志流入监控系统,导致集群崩溃,所以对流量的限制与管控非常重要。在 AntMonitor 中,各个关键的入口例如采集入口、计算入口、存储入口、数据查询入口等都有严格的流量管控校验规则,确保监控系统在预期容量下能够稳定运行,而不会被突发的流量所压垮。 综上,我们将重点从容灾架构和架构单元化两方面出发来阐述 AntMonitor 稳定性架构的设计思路。 **容灾架构 ** 前文简要提及了架构去单点问题的解决思路,这足以覆盖日常可能发生的节点宕机、网络抖动等小规模故障场景,但是当真正的毁灭性灾难来临时,还需要更高层面的容灾方案来应对。 目前基于不同租户保障等级的区分以及资源配额等客观因素的权衡,AntMonitor 实施了两套不同等级的容灾策略,即针对常规业务域租户的机房级容灾和针对高保业务域租户的城市级容灾。 ** 机房级容灾 ** 对于常规的业务域租户,AntMonitor 提供机房级的容灾能力,各子系统的机房级容灾方案实现如下。 ** 产品系统 **
计算系统内组件较多,且直接关系到监控数据质量,所以稳定性工作也较为复杂。
但此时我们会提供另一个指标——数据齐全度——来反映监控数据的准确性问题。例如一个监控配置需要采集 100 个业务容器,如果某一个 agent 所在物理机挂掉导致 5 个业务容器采集失败,计算层会汇聚出 95% 的齐全度信息;如果某一个机房发生故障导致该机房 vessel 集群不可用,相应的 30 个业务容器的数据丢失,计算层同样会汇聚出 70% 的齐全度信息。 ** 告 警 系 统 ** 告警系统由于与计算系统架构的相似性,稳定性架构上也大同小异。
** 存 储 系 统 **
** 城市级容灾 ** 对于高保的业务域租户(例如交易租户), AntMonitor 提供城市级的容灾能力。 具体的方案是异地双链路部署。针对高保租户,除了上述的上海链路外,我们同时在河源部署了一条完整的监控链路,即同一时刻、同一配置,任务会执行两次、产生两份数据和告警事件、并通过两个域名独立向外暴露服务,当某一条链路不可用时,可以手动切换到另一条链路。 为什么选择异地双链路,而不是异地双活或者异地热备呢? 原因有几点:
跨城双链路的部署,使得整个 AntMonitor 即使在最严苛的环境之下,也能生存下来。 ** 架构单元化 ** 架构单元化,可以理解为 AntMonitor 内部的集群管理。 单元化设计为 AntMonitor 的稳定性架构带来了诸多好处。
** 运行时保障 ** 设计并实现良好的稳定性架构,就像种下了一棵基因优良、枝干笔挺的树苗,但要让它长得枝繁叶茂,还需要平时地照看、灌溉与修剪,这就是日常的运行时稳定性保障。 ** 自 监 控 ** 提起监控,总有不少看似悖论的话题被提起,例如监控系统如何监控自己? 针对 基础础设施循环依赖的问题 ,一方面 AntMonitor 在设计之初就将自身作为了整个蚂蚁最底层的基础设施之一,只依赖了 iaas 与 oceanbase,没有依赖其他任何中间件。另一方面,针对被 AntMonitor 依赖的 iaas 与 oceanbase ,我们也单独为其搭建了独立且版本稳定的监控集群,确保不会由于生产环境的监控变更导致 AntMonitor 上游依赖的监控服务不可用。 数字化运营 数字化运营,顾名思义,就是针对监控本身,做好全方位的数字化衡量工作。 ** S L A ** 对外,我们将监控能力服务化,用 SLO 指标来牵引稳定性保障的工作,比如我们会设定数据查询服务的可用率目标、数据计算的延迟和断点率目标,告警的延迟与准确率目标、存储的读写可用率与耗时目标等等。SLO 量化了服务目标,我们还需要承诺目标不满足将承担的后果,也就是 SLA。例如,如果交易租户数据断点率超过 50% 且持续超过 60 分钟,将记作一次故障。 ** 成 本 ** 对内,我们将监控的成本进行量化,具体方式是在整个链路上的关键节点上对成本的度量指标进行定义并统计。 ** 配置管控 ** 「沙盒拦截」 经验告诉我们,变更往往最容易给系统引入稳定性问题。 总 结 系统的稳定性建设是一项长期投入的工作和不断精进的过程,直观地将稳定性拆分为“稳定”和“性”来看,“稳定”是当前业务体量与容量水平下系统保障的底线。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/29 9:05:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |