当前位置:主页 > 查看内容

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

发布时间:2021-06-28 00:00| 位朋友查看

简介:由来 提到可观测性这个词语,很多人或许会不削一顾,:"这个不就是旧瓶装新酒吗?和监控有什么差别吗?" 。带着这个问题,我们先来看看这个词诞生的时代背景。 ? 随着近几年云计算、云原生的出现,我们发现花在标准化部署、上线的周期被大大缩短。但数字化技……
由来

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

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

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

?

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

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

?

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

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

image.png
?

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

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

?

image.png
?

将可观测数据和平台统一

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

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

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

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

独立系统数据孤岛
|接口统一数据互通
|

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

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

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

SLS首页:https://www.aliyun.com/product/sls知乎:https://zhuanlan.zhihu.com/aliyunlog微信公众号:日志服务 or LogAnalytics哔哩哔哩:https://space.bilibili.com/630680534
本文转自网络,原文链接:https://developer.aliyun.com/article/784927
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐