可观测系统存储分析最佳实践

简介: 分享在北京云峰会智能运维场的主题

由来

提到可观测性这个词语,很多人或许会不削一顾,:"这个不就是旧瓶装新酒吗?和监控有什么差别吗?" 。带着这个问题,我们先来看看这个词诞生的时代背景。
​

随着近几年云计算、云原生的出现,我们发现花在标准化部署、上线的周期被大大缩短。但数字化技术的出现,却对背后研发、运维和运维的工程师们提出了更高的要求,例如:

  • 研发和上线的过程中,需要尽可能模拟真实的情况,对测试环境系统进行对比,判别
  • 在上线后的过程中,需要大量的配套监控,确保业务稳定性
  • 在业务支撑的过程中,一方面需要关注系统是否有认为的漏洞,造成入侵、刷单等,引起经济损失。另外一方面也需要做好运营支撑工作,更了解用户是否按我们的预期在使用系统。

​

在这些活动的背后,包含的大量围绕系统、应用、客户行为的观测+分析活动:
image.png
​

那可观测性与传统监控有什么区别呢?

​

我们来看一个例子:海恩法则(Heinrich's Law)指出: 每一起严重事故背后,必然有29次轻微事故和300起未遂先兆以及1000起事故隐患。
​

这背后表达了非常朴素的道理,在人为构建的系统中,大部分过程实际上是连续的。一个t3时间点的问题并不是一蹴而就,而是由一大堆t0-t2时间段的事件叠加而成。我们对一个系统是否正常的监控实际上是一个结果,可观测性则是通过大数据的思想,通过细粒度、多维度数据对系统进行建模,用以提前推导出可能的风险。
​

image.png
​

除了我们熟悉的监控场景外,我们还可以把工程师关于观测工作做一个大致的细分:能看到无论是开发、运维、安全、还是运营,很多时间都在和数据分析打交道,整个过程实际上是有一套方法论在支撑:

  • 采集多种多用的数据源
  • 集中式存储数据
  • 对数据分析、展示成可以理解的指标
  • 根据指标计算的结果,通过自动化的方式进行各种动作

​

image.png
​

将可观测数据和平台统一

既然所有的观测动作可以通过一套方法论来构建,那我们是否可以通过一套平台来构建这套观察体系呢?答案肯定是Yes,事实上一些类似的场景正在发生类似的变化:
​

让我们以2020年火热的 “智能电气化汽车”来做一个例子:

五年前 现在
智能化方法 各种独立的外挂系统 传感器+总线+中央处理器
例子 胎压检测仪,通过传感器+蓝牙显示在驾驶位的小屏幕上;倒车影像,摄像头+屏幕;电子狗;导航等等 统一摄像头

毫米波雷达/激光雷达
各种传感器 |
| 数据流动 | 传感器+显示器 | 总线 |
| 决策方式 | 依赖人(视觉+决策) | 算法+算力辅助人 |
| 主要问题 |

  1. 独立系统
  2. 数据孤岛
    |
  3. 接口统一
  4. 数据互通
    |

| 增加传感器 | 驾驶者负担增大 | 更准确的决策 |

image.png
我们以监控软件模式也是如此,如果按这个模式发展,未来所有孤立的软件是没有竞争力的,需要有一个统一、具备强大算力的平台来统筹。

如何构建平台

​

我们可以把整个过程做一个抽象,左边是数据源,右边是决策者(人)。从信息论的角度,系统构建的目标是从杂乱、无需、无关联的数据中洞察系统的规律。因此我们需要设计:

  • 一套对接个数数据源的采集接口
  • 为异构数据提供一套灵活的存储模型
  • 为数据处理打造流批一体的分析引擎
  • 一套能驱动处理与反馈的机制

image.png

阿里云SLS(原日志服务)产品就是为此场景设计的系统,除提供上述的功能外,平台还兼具弹性、低成本、开放等特点,我们来分模块看看系统的构成:

1. 采集系统

数据采集从来源上可以分为:

  • 主动式采集:例如拨测技术、移动端探测
  • 被动采集:例如采集系统的输出
  • 辅助数据:一些非运行时数据,但对我们后期也是有帮助的。例如系统的架构与分布

​

一套完整采集系统必须能够完整对接以上数据,方便实时地去把数据拿到系统中。为此SLS提供了60+种采集的方式,在全球接入了30+个接入点,并提供一张自动加速的传输网络来对接各种数据源。
image.png

2. 存储系统

当采集完这些数据后,我们需要为后期的分析给这些数据提供一套完整的存储引擎。我们以DevOps领域最常见的三种数据为例(Trace/Log/Metric),目前主流的做法是提供三种类型的存储引擎,当需要转换时,通过Queue进行数据的拷贝。

image.png
为了解决这类数据孤岛问题,SLS设计了一套类似数据库的“表”存储模型,通过排序索引、子表、列存、倒排索引等技术把针对这三类不同数据的需求,统一成SQL访问接口。这个带来的好处是,用户不需要为不同引擎去学习不同API,只需要改变Query即可灵活访问。
image.png
从架构角度而言,这种存储模式让整个数据流也变得简洁。过去我们为了从系统采集Trace、Log、Trace数据,我们需要搭建一套采集系统,并且通过ETL流程对数据进行分发与转存。最麻烦的是,当需要使用时我们必须得去4个不同的系统,使用4个API来访问。但在SLS存储中,我们只需要一套访问接口。存储引擎自动会支持弹性伸缩、冷热分层等功能。
​

image.png

​

3. 分析系统

​

在存储之上,我们针对数据处理构建了三种能力来解决三个问题,分别是

  • 把各种异构数据规整:数据加工
  • 对规整后的结构化数据提供灵活分析能力:查询接口
  • 对高维数据进行分析:各种开箱即用的算法

image.png

以查询接口为例子,在面向“表”的查询分析语言设计上,我们遵循SQL92标准,但同时通过子查询把PromQL等语法进行了融入。这样就可以在一个SQL中进行数据查询,规则与建模预测。降低了数据获取与分析的难度。
image.png
通过统一的SQL,我们可以在存储统一基础上,通过Query变化,把Trace/Log/Metric这些数据的组合查询进行有效的统一与关联。
image.png

全貌

​

以下是阿里云云原生观测分析平台全貌,目前该平台一天处理30PB数据量,支持来自用户15亿次每天的分析活动,每天服务10W+用户。
image.png

对我们工作感兴趣的,可以通过如下方式了解更多,谢谢关注:)
​

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
消息中间件 NoSQL Cloud Native
对Confluent一些解读
对Kafka母公司Confluent IPO、产品、技术一些看法
6648 0
对Confluent一些解读
|
存储 缓存 Prometheus
阿里云下一代可观测时序引擎-MetricStore 2.0
我们开发了 MetricStore 2.0 版本,从存储到计算进行了全面升级,致力于成为阿里云下一代可观测时序引擎。
1198 47
|
机器学习/深度学习 人工智能 自然语言处理
如何构建企业级数据智能体:Data Agent 开发实践
本篇将介绍DMS的一款数据分析智能体(Data Agent for Analytics )产品的技术思考和实践。Data Agent for Analytics 定位为一款企业级数据分析智能体, 基于Agentic AI 技术,帮助用户查数据、做分析、生成报告、深入洞察。
|
网络协议 算法 安全
深入理解 TCP;场景复现,掌握鲜为人知的细节
深入理解 TCP;场景复现,掌握鲜为人知的细节
1261 0
|
存储 SQL 缓存
阿里云EMR 2.0:定义下一代云原生智能数据湖
本次分享主要介绍了阿里云云原生数据湖分析解决方案的三个核心要素:全托管,湖存储;一站式,湖管理;多模态,湖计算。
30766 1
阿里云EMR 2.0:定义下一代云原生智能数据湖
|
存储 运维 监控
SRE方法论之监控设计
监控系统的四个黄金指标是:延迟(Latency)、流量(Traffic)、错误(Errors)、饱和度(Saturation)
|
消息中间件 存储 缓存
深入解析 Kafka Exactly Once 语义设计 & 实现
本篇文章主要介绍 Kafka 如何在流计算场景下保证端到端的 Exactly Once 语义,通过其架构上的设计以及源码分析帮助读者理解背后的实现原理。什么是 Exactly-Once?消息的投递语义主要分为三种:At Most Once: 消息投递至多一次,可能会丢但不会出现重复。At Least Once: 消息投递至少一次,可能会出现重复但不会丢。Exactly Once: 消息投递正好一次
深入解析 Kafka Exactly Once 语义设计 & 实现
|
存储 Prometheus 监控
当 OpenTelemetry 遇上阿里云 Prometheus
本文以构建系统可观测(重点为指标监控体系)为切入点,对比 OpenTelemetry 与 Prometheus 的相同与差异,后重点介绍如何将应用的 OpenTelemetry 指标接入 Prometheus 及背后原理,最后介绍阿里云可观测监控 Prometheus 版拥抱 OpenTelemetry 及相关落地实践案例,希望能更好的帮助读者更好的理解 OpenTelemetry 及与 Prometheus 的生态融合。
1971 0
|
缓存 监控 安全
日志上云利器 - Aliyun LOG Java Producer
日志无处不在,它作为记录世间万物变化的载体,在运维、研发、运营、安全、BI、审计等领域有着广泛的应用场景。阿里云日志服务是日志类数据的一站式服务平台,其核心组件 LogHub 凭借着高吞吐、低延迟、可自动伸缩等特性,逐渐成为大数据处理领域特别是实时数据处理场景下的基础设施。
11071 12