From 582f0475e8fa442e4a52b036a25b99225bce31fc Mon Sep 17 00:00:00 2001 From: isno Date: Wed, 14 Feb 2024 09:21:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8F=AF=E8=A7=82=E6=B5=8B?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vuepress/config.js | 3 +- Observability/What-is-Observability.md | 2 +- Observability/logging.md | 10 +++--- Observability/profiles.md | 4 +-- Observability/signals.md | 10 +++--- Observability/tracing.md | 39 +++++++++++++++++++++-- ServiceMesh/The-future-of-ServiceMesh.md | 1 + ServiceMesh/summary.md | 2 +- assets/observability.jpg | Bin 0 -> 50566 bytes 9 files changed, 53 insertions(+), 18 deletions(-) create mode 100644 ServiceMesh/The-future-of-ServiceMesh.md create mode 100644 assets/observability.jpg diff --git a/.vuepress/config.js b/.vuepress/config.js index 33c71bf4..2100a619 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -286,7 +286,8 @@ export default defineUserConfig({ children: [ '/ServiceMesh/What-is-ServiceMesh.md', '/ServiceMesh/MicroService-history.md', - '/ServiceMesh/overview.md' + '/ServiceMesh/overview.md', + '/ServiceMesh/The-future-of-ServiceMesh.md' ] }, { diff --git a/Observability/What-is-Observability.md b/Observability/What-is-Observability.md index 98877f23..679217b0 100644 --- a/Observability/What-is-Observability.md +++ b/Observability/What-is-Observability.md @@ -1,6 +1,6 @@ # 9.1 什么是可观测性 -什么是可观测性?观测的是什么?Google Cloud 介绍 OpenTelemetry 时提到了这么一个概念[^1]: +什么是可观测性?观测的是什么?Google Cloud 介绍 OpenTelemetry 时提到了这么一个概念 telemetry data [^1]。 :::tip telemetry data(遥测数据) diff --git a/Observability/logging.md b/Observability/logging.md index 283a96fb..aaf82e30 100644 --- a/Observability/logging.md +++ b/Observability/logging.md @@ -1,26 +1,26 @@ # 9.2.2 事件日志 -对于日志的生产和处理,相信程序员们绝对不会陌生。绝大多数程序员生涯的伊始第一行代码打印 “hello world” 开始,再到从 Nginx 的 access.log 中通过 awk 挖掘信息,而今天只要稍微复杂点的系统,已经很难只依靠 tail、grep、awk 来从日志中挖掘信息。现在对日志的完整处理,除了打印,还包含着日志采集、日志传输、日志清洗、日志存储、分析与检索、告警与智能化响应一系列步骤。 +对于日志的生产和处理,相信程序员们绝对不会陌生,绝大多数程序员生涯的第一行代码是从打印 “hello world” 开始,再到通过 awk 挖掘 Nginx 的 access.log 中的信息。而今天只要稍微复杂点的系统,已经很难只依靠 tail、grep、awk 来从日志中挖掘信息。现在对日志的完整处理,除了打印,还包含着日志采集、日志传输、日志清洗、日志存储、分析与检索、告警与智能化响应一系列步骤。 日志的处理和分析是典型的大数据分析场景之一,高吞吐写入、低成本海量存储、实时文本检索,业内通常以 ELK(倒排索引架构,消耗巨大的资源建立索引,巨大的存储成本)和 Grafana Loki(轻量索引,检索性能慢)为代表的两类权衡架构。 ## ELK -谈论实现一套完整的日志系统,相信用户或多或少都应该听说过这几个名词:Elasticsearch、ELK 或者 Elastic Stack。 +谈论实现一套完整的日志系统,工程师们或多或少都应该听说过这几个名词:Elasticsearch、ELK(B) 或者 Elastic Stack。 :::tip ELKB -ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。 Elasticsearch 是一个搜索和分析引擎。 Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。Beats 作为轻量级的数据搬运工,集合了多种单一用途数据采集器,将数据发送给 Logstash 或 ElasticSearch,其可扩展的框架及丰富的预置采集器将使工作事半功倍。 +ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。 Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。Beats 作为轻量级的数据搬运工,集合了多种单一用途数据采集器,将数据发送给 Logstash 或 ElasticSearch,其可扩展的框架及丰富的预置采集器将使工作事半功倍。 ::: -总结起来, ELK 是一组开源组件组成的套件,组件之间作用不用,各司其事,可以像网络协议一样按分层来理解和归类,所以形成一个类似 TCP/IP Stack 类似的 ELK Stack,如下图所示。但明确的是 ELK 中的 Stack 肯定不是协议栈,跟协议没有任何区别。为严谨准确,我们把上面的所有名词简称为 Elastic。 +总结起来,ELKB 是一组开源组件组成的套件,组件之间作用不用,各司其事,可以像网络协议一样按分层来理解和归类,形成一个类似 TCP/IP Stack 类似的 ELK Stack,如下图所示。但明确的是 ELK 中的 Stack 肯定不是协议栈,且和协议没有任何关系。为统一明确,本文把上面的所有名词简称为 Elastic。

Loki 架构:与 Prometheus、Grafana 密切集成

-ELK 中最核心的是 Elasticsearch,它是一个分布式搜索分析引擎,提供一种准实时搜索服务(生产环境中可以做到上报 10 秒后可搜,不惜成本万亿级日志秒级响应)。与 Elasticsearch 类似的产品还有商业公司 Splunk 和 Apache 开源的 Solr。事实上,Elasticsearch 和 Solr 都使用了著名的 Java 信息检索工具包 Lucene,Lucene 的作者就是大名鼎鼎的 Doug Cutting,如果你不知道谁是 Doug Cutting,那你一定听过他儿子玩具的名字 -- Hadoop。 +Elastic 中最核心的是 Elasticsearch,它是一个分布式搜索分析引擎,提供一种准实时搜索服务(生产环境中可以做到上报 10 秒后可搜,不惜成本万亿级日志秒级响应)。与 Elasticsearch 类似的产品还有商业公司 Splunk 和 Apache 开源的 Solr。事实上,Elasticsearch 和 Solr 都使用了著名的 Java 信息检索工具包 Lucene,Lucene 的作者就是大名鼎鼎的 Doug Cutting,如果你不知道谁是 Doug Cutting,那你一定听过他儿子玩具的名字 -- Hadoop。 Elasticsearch 在日志场景中的优势在于全文检索能力,能快速从海量的数据中检索出关键词匹配的日志,其底层核心技术是转置索引(Inverted index)。正常的索引是按 ID 查询详情,类似字典通过页码查询内容。转置索引反过来,将每一行文本进行分词,变成一个个词(Term),然后构建词(Term) -> 行号列表(Posting List) 的映射关系,将映射关系按照词进行排序存储。当需要查询某个词在哪些行出现的时候,先在 词 -> 行号列表 的有序映射关系中查找词对应的行号列表,然后用行号列表中的行号去取出对应行的内容。这样的查询方式,可以避免遍历对每一行数据进行扫描和匹配,只需要访问包含查找词的行,在海量数据下性能有数量级的提升。 diff --git a/Observability/profiles.md b/Observability/profiles.md index 1745f833..954b1e33 100644 --- a/Observability/profiles.md +++ b/Observability/profiles.md @@ -1,8 +1,8 @@ # 9.2.4 Profiles -熟悉 Go 语言的朋友一定了解 pprof,进行性能分析时,通过 pprof 的 CPU profiling 或者 Memory profiling 功能分析函数耗时以及内存占用情况。Profiles 就是进行 profiling 时程序运行的动态画像,当于动态的内部数据,说明各类资源分配的情况,能精确到进程、代码。 +熟悉 Go 语言的朋友一定了解 pprof,当我们需要对软件进行性能分析时,可以通过 pprof 的 CPU profiling 或者 Memory profiling 功能分析函数耗时以及内存占用情况。此刻,你应该已经理解到 Profiles 就是对动态程序进行 profiling 时程序运行的动态画像,相当于动态程序的各类内部数据,能说明各类资源分配的情况,分析时能定位到具体的函数和代码。 -Profiles 数据一般表示成火焰图、堆栈图,内存分析图等形式,可以让我们足够细地了解到程序使用各类资源的全貌,是回答从“是什么”到“为什么”的依据,例如通过 trace 了解到延迟在什么地方产生,再通过 Profiles 定位到是哪行代码影响。2021年国内某站崩溃,工程师们就是使用火焰图观察到到一处 Lua 代码存在异常,才找到问题的源头[^1]。 +Profiles 数据一般表示成火焰图、堆栈图,内存分析图等形式,可以让我们足够细地了解到程序使用各类资源的全貌,是回答从“是什么”到“为什么”的依据,例如通过 trace 获知延迟在什么地方产生,再通过 Profiles 定位到是哪行代码影响。2021年国内某站崩溃,工程师们就是使用火焰图观察到到一处 Lua 代码存在异常,才找到问题的源头[^1]。
diff --git a/Observability/signals.md b/Observability/signals.md index 87e79fd7..84bb9bee 100644 --- a/Observability/signals.md +++ b/Observability/signals.md @@ -1,17 +1,17 @@ # 9.2 可观测性数据分类 -尽管可观测性这一术语是近年来从控制理论引进的新词,但实际上,它在计算机科学领域已有深厚的实践基础,计算机领域一般会将可观测性的遥测数据分解为三个更具体方向进行研究:事件日志、链路追踪和聚合度量。 +尽管可观测性这一术语是近年来从控制理论引进的新词,但实际上,它在计算机科学领域已有深厚的实践基础,计算机领域一般会将可观测性的遥测数据分解为三个更具体方向进行研究:事件日志、链路追踪和聚合度量。以上三个领域虽然各有侧重,但也并非完全孤立,它们之间存在着天然的交集与互补。2017 年的分布式追踪峰会结束后,Peter Bourgon 撰写了总结文章《Metrics, Tracing, and Logging》[^1]系统地阐述了这三者的定义、特征以及它们之间的关系与差异,受到了业界的广泛认可。如下韦恩图所示,三者之间的关系。 + +
+ +
- **Metrics(度量)**:传统监控和告警领域的代名词,用来计算事件发生数量的数据集,例如服务 QPS、API 响应延迟、某个接口的失败数等。呈数字化指标出现,特征是具有时间属性、且可聚合,这样既能做常见的监控告警,也可以用来做趋势分析。Metrics 提供的信息可用于系统整体行为和监控状况的分析,它不一定能揭示问题根本原因,但可以作为发现问题的起点。一个典型例子是你收到一条告警”请求成功率跌到了 10%“,你意识到不妙,立即开始处理,结合其他 Signals 找到 root cause,从而解决问题。 - **Logging(日志)**:程序员最熟悉的也是最古老又最具体的 Signal,描述一系列离散的事件,特别是非预期的行为、异常情况。在缺乏有力的 APM 系统时,Logging 数据通常是工程师在定位问题时最直接的手段。如果说 Metrics 告诉你应用程序出现问题,那么 Logging 就告诉你为什么出现问题。日志的采集、存储和查询需要消耗大量资源,应用中通常采样使用。 - **Tracing(追踪)**:分布式系统中多个服务之间或多或少存在依赖,Tracing 通过有向无环图的方式记录分布式系统依赖中发生事件之间的因果关系,从而可以轻松分析出请求中异常点。与日志相同的是会消耗大量的资源,通常也需要根据采样的方式减少数据量。与日志不同的是,追踪技术依赖特定网络协议和语言,这种依赖使得追踪工具需要以插件或者探针的形式进行深度集成,对业务具有一定的侵入性。 -以上三个领域虽然各有侧重,但也并非完全孤立,它们之间存在着天然的交集与互补。2017 年的分布式追踪峰会结束后,Peter Bourgon 撰写了总结文章《Metrics, Tracing, and Logging》[^1]系统地阐述了这三者的定义、特征以及它们之间的关系与差异,受到了业界的广泛认可。 -
- -
来自于 Cindy Sridharan 的著作《Distributed Systems Observability》进一步将这三个类型的数据称为可观测性的三大支柱(three pillars),不过将它们成为支柱容易让人产生误解,支柱就像一个房子的均匀受力支撑点,缺一不可。而事实上这三者都可以独立存在,系统中只存在 Logging、Tracing 未尝不可。在 CNCF 发布的最新可观测性白皮书中,将这些可观测的数据统一称为信号(Signals),主要的信号除了 Metrics、logs、traces 之外又额外增加了 Profiles 和 Dumps。 diff --git a/Observability/tracing.md b/Observability/tracing.md index 126b3544..6ed470b0 100644 --- a/Observability/tracing.md +++ b/Observability/tracing.md @@ -7,24 +7,57 @@

Uber 使用 Jaeger 生成的追踪链路拓扑

-分布式链路追踪诞生的标志性事件就是 Google Dapper 论文的发表。2010年4月,Benjamin H. Sigelman 等人在 Google Technical Report 上发表了《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》[^2],论文详细阐述了 Google 内部分布式链路追踪系统 Dapper 的设计理念,还提出了成为后续链路追踪系统设计的共识的两个概念 Trace(追踪)和 Span(跨度)。 +分布式链路追踪诞生的标志性事件就是 Google Dapper 论文的发表。2010年4月,Benjamin H. Sigelman 等人在 Google Technical Report 上发表了《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》[^2]论文,文中详细阐述了 Google 内部分布式链路追踪系统 Dapper 的设计理念,还提出了成为后续链路追踪系统设计共识的两个基础术语 Trace(追踪)和 Span(跨度)。 ## Trace 和 Span -一条 Trace 代表一次入口请求在 IT 系统内的完整调用轨迹及其关联数据集合。其中,全局唯一的链路标识 TraceId 是代表性的一个属性,通过 TraceId 我们才能将同一个请求分散在不同节点的链路数据准确的关联起来,实现请求粒度的“确定性关联”。当前,光有 TraceId 还不够,请求在每一跳的接口方法上执行了什么动作、耗时多久、执行状态是成功还是失败?承载这些信息的记录就是跨度(Span)。每一次 Trace 实际上都是由若干个有顺序、有层级关系的 Span 所组成一颗“追踪树”(Trace Tree),如下图所示。 +一条 Trace 代表一次入口请求在 IT 系统内的完整调用轨迹及其关联数据集合。其中,全局唯一的链路标识 TraceId 是代表性的一个属性,通过 TraceId 我们才能将同一个请求分散在不同节点的链路数据准确的关联起来,实现请求粒度的“确定性关联”。 + +Span 代表系统中一个逻辑运行单元,Span 之间通过嵌套或者顺序排列建立因果关系。Span 之内记录着请求在每一跳的接口方法上执行了什么动作、耗时多久、执行状态是成功还是失败,Span 包含的对象如下: + +- Operation Name:描述当前接口的行为语义。比如 /api/createOrder 代表执行了一次创建订单的动作。 +- SpanId/ParentSpanId:接口调用的层级标识,用来还原 Trace 内部的层调用关系。 +- Start/FinishTime:接口调用的开始和结束时间,两者相减是该次调用的耗时。 +- StatusCode:响应状态,标识该次调用是成功还是失败。 +- Tags & Events:调用附加信息。 + +每一次 Trace 实际上都是由若干个有顺序、有层级关系的 Span 所组成一颗“追踪树”(Trace Tree),如下图所示。

Trace 和 Spans

-总结分布式链路追踪的原理就是在分布式应用的接口方法中设置一些观察点,在入口节点给每个请求分配一个全局唯一的标识 traceId,当请求流经这些观察点时就会记录一条对应的链路日志(Span),最后通过 TraceId 将一次请求的所有链路日志进行组装,就能还原出该次请求的链路轨迹。如图所示,根据拓扑图中 Span 记录的时间信息和响应结果,我们就可以定位到出错或者缓慢的服务。 +总结分布式链路追踪的原理就是在分布式应用的接口方法中设置一些观察点,在入口节点给每个请求分配一个全局唯一的标识 TraceId,当请求流经这些观察点时就会记录一条对应的链路日志(Span)。最后通过 TraceId 将一次请求的所有链路日志进行组装,就能还原出该次请求的链路轨迹。 + +如图所示,根据拓扑图中 Span 记录的时间信息和响应结果,我们就可以定位到出错或者缓慢的服务。

Skywalking 链路分析

+## 追踪技术的核心 + +实现追踪的核心技术是方法增强(通常也称为埋点,指的是在代码中插入额外的逻辑来捕获和记录执行信息)。Dapper 的论文中提出的设计原则要求方法增强必须满足应用级透明性和低开销着两个关键条件。 + +- 应用级透明:开发者不需要修改业务代码或者仅需要极少的修改即可实现埋点,这意味着追踪逻辑对应用层不可见或者几乎不可见。 +- 低开销: + + +**2.基于服务的追踪**,基于服务的追踪是目前最为常见的追踪实现方式,被 Zipkin、SkyWalking、Pinpoint 等主流追踪系统广泛采用。基于服务追踪的实现思路是通过某些手段给目标应用注入追踪探针(Probe),譬如针对 Java 应用,一般就通过 Java Agent 注入。 + +探针可以看做是一个寄生在目标服务身上的一个小型微服务系统,它一般会有自己的专用服务注册、心跳检测等功能,有专门的数据收集协议,可以把从目标系统监控得到的服务调用信息,通过另一次独立的 HTTP 或者 RPC 请求发送给追踪系统。 + +因此,基于服务方式的追踪系统会比基于日志的追踪消耗更多的资源,也具有更强的侵入性,而换来的收益就是追踪的精确性和稳定性都有保证,不必再依靠日志归集来传输跟踪数据。 + + +**3.基于边车代理的追踪**,服务网格的专属方案,也是最理想的分布式追踪模型,边车代理对应用完全透明,有自己独立数据通道,追踪数据通过控制平面上报,无论对日志服务本身还是,都不会有依赖和干扰;它与程序语言无法,无论应用采用什么编程语言,只要它通过网络(HTTP或 gRPC)访问服务,就可以被追踪到。如果非要总结种方式的实现有什么缺点,就是边车代理本身对应用透明的原理,决定了它只能实现服务调用层面的追踪。 + +现在,市场占有率最高的 Envoy 就提供了完善的追踪功能,但没有提供自己的界面端和存储端,需要配合专门的 UI 与存储系统来使用,不过 SkyWalking、Zipkin、Jaeger 等系统都可以接受来自 Envoy 的追踪数据。 + + + ## 代表性项目 在没有形成大一统标准的早期,Dapper 的思想和协议影响了大量的开源项目。受到 Dapper 的启发,Twitter 开发了自己的分布式追踪系统 Zipkin,Zipkin 是第一个被广泛采用的开源的分布式链路追踪系统,提供了数据收集、存储和查询的功能以及友好的 UI 界面来展示追踪信息。 diff --git a/ServiceMesh/The-future-of-ServiceMesh.md b/ServiceMesh/The-future-of-ServiceMesh.md new file mode 100644 index 00000000..10d07ccf --- /dev/null +++ b/ServiceMesh/The-future-of-ServiceMesh.md @@ -0,0 +1 @@ +# 服务网格的未来 \ No newline at end of file diff --git a/ServiceMesh/summary.md b/ServiceMesh/summary.md index be07b833..043f2810 100644 --- a/ServiceMesh/summary.md +++ b/ServiceMesh/summary.md @@ -1,5 +1,5 @@ # 第九章:ServiceMesh -在过去几年,微服务技术迅速普及,和容器技术一起成为最吸引眼球的热点技术之一。微服务虽好但也存在明显弊端,需要编写和维护⼤量非功能性代码,解决各类分布式的难题。虽然几年一批又一批技术框架不断涌现,但微服务治理的技术理念却止步于 Dubbo、SpringCloud 为代表的传统侵入性方案。直到 2017年底,当非侵入性的 ServiceMesh 技术从萌芽走向成熟,当 Istio 横空出世,人们才惊觉:原来微服务并非只有侵入性一种玩法。 +在过去几年,微服务技术迅速普及,和容器技术一起成为最吸引眼球的热点技术之一。微服务虽好但也存在明显弊端,人们也一直在寻找治理分布式系统中的理想方案。虽然近几年一批又一批技术框架不断涌现,但微服务治理的技术理念却止步于 Dubbo、SpringCloud 为代表的传统侵入性方案。直到 2017年底,当非侵入性的 ServiceMesh 技术从萌芽走向成熟,当 Istio 横空出世,人们才惊觉:原来微服务并非只有侵入性一种玩法。 Kubernetes 的崛起标志着微服务时代的新篇章,通过基础设施层解决分布式架构问题,实现了业务与非功能性终极解耦,微服务服务治理开启了全新的进化。2018年,Bilgin lbryam 在 InfoQ 发了一篇名为 《MicroService in a Post-Kubernetes Era 》的文章,文章虽然没有明确“ 后 Kubernetes 时代的微服务” 是什么,但从文章也能看出作者的观点是:在后 Kubernetes 时代,服务网格技术已经完全取代了通过使用软件库来实现网络运维的方式。 \ No newline at end of file diff --git a/assets/observability.jpg b/assets/observability.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f815e17c87963a34e70cb261cc1af65cdb63041c GIT binary patch literal 50566 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 literal 0 HcmV?d00001