2020-DevOps导论-Lec9-探索可观测性的技术原理

Lec9-探索可观测性的技术原理

1. 软件架构的演进

  1. 在软件架构的演进过程中,也出现了一些问题
    1. 服务之间存在错综复杂的关系
    2. 应用部署到生产环境只是刚刚开始
    3. 天下没有不宕机的系统,时刻做好恢复系统的准备
    4. 如果系统是分布式的,那么它的故障也可能在哪里都存在

2. 分布式链路追踪的起源

  1. Google Dapper论文
  2. 记录并不难,将记录进行关联才是解决问题的关键
    1. 黑盒方案:方便、基于统计学、不准确
    2. 基于注释的监控方案:利用应用程序或中间件给每条记录赋予一个全局性的标示符
  3. 如何收集关联数据?
    1. 埋点/日志
    2. JVM字节码增强技术
  4. 构建分布式追踪系统难点
    1. 低开销:开销越小,开发人员越能接受
    2. 可扩展性:能够满足至少未来几年需求
    3. 应用层透明:应该对程序员是不可见的

3. 链路追踪与可观测性

  1. APM——Application Performance Management
  2. 可观测性的定义与本质
    1. 监控告诉我们系统的那部分是工作的。
    2. 可观测性告诉我们那里为何不工作了。
  3. 可观测性的三根支柱
    1. Log 日志
    2. Metric 指标
    3. Tracing 应用追踪
  4. 分层级构建可观测性(适用于云原生应用的可观测性建设四步法)
    1. 健康检查
    2. 指标
    3. 日志
    4. 应用追踪
  5. 典型问题排查过程
    1. Alert
    2. Dashboard
    3. Adhoc Query
    4. Log Aggregation
    5. Distributed Tracing
    6. Fix!
  6. 工具的可用性是实施可观测性的关键
    1. 成本低的追踪埋点
    2. 容易浏览查询分析
    3. 可靠性值得信任

4. 常见开源方案

4.1. Apache Skywalking 深度剖析

  1. 三个维度
    1. Tracing 追踪链路数据
    2. Logging 日志数据
    3. Metrics 指标数据
  2. 三个层级
    1. Receiver 接收器:解析和适配不同协议
    2. Analysis Core 分析内核:OAL/MAL
    3. Query Core 内核:多维度数据查询

4.1.1. 探针工作原理剖析

4.1.2. 探针协议剖析

4.1.3. 指标分析剖析

4.1.4. 指标存储与查询剖析

5. 小结


2020-DevOps导论-Lec9-探索可观测性的技术原理
https://spricoder.github.io/2020/07/02/2020-Devops-introduction/2020-Devops-introduction-Lec9-%E6%8E%A2%E7%B4%A2%E5%8F%AF%E8%A7%82%E6%B5%8B%E6%80%A7%E7%9A%84%E6%8A%80%E6%9C%AF%E5%8E%9F%E7%90%86/
作者
SpriCoder
发布于
2020年7月2日
许可协议