您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[2023年中国DevOps社区广州峰会]:刘征-用可观测性之眼洞悉复杂生产系统 - 发现报告
当前位置:首页/行业研究/报告详情/

刘征-用可观测性之眼洞悉复杂生产系统

AI智能总结
查看更多
刘征-用可观测性之眼洞悉复杂生产系统

中国DevOps社区峰会2023·广州 用可观测性之眼洞悉复杂生产系统 刘征、中国DevOps社区 刘征 中国DevOps社区-理事长 《DevOps实践指南》译者 《GoogleSRE工作手册》译者 开源软件爱好者 目录 1 2 可观测性概念正本清源 循序渐进落地可观测性 3持续改进和评估 4问答 可观测性概念正本清源 术语定义和来历 当前时代背景下的定义 可观测性与DevOps的关系 可观测性与SRE的关系 没有人能忍受可怕的索伦之眼 眼睛能看到一切,眼睛也能影响它所看到的一切。被它或他盯上就等於受到索倫的影響。 可观测性:“度量一切,影响所有正在发生的问题,是生产环境不可或缺的稳定性的保障。” 可观测之眼� 反馈性&验证 稳定之眼� 可用性&性能 混沌之眼� 鲁棒性&可靠 可观测性的定义是什么? Observabilityo11y 源于数学&机械工程学科领域的《控制论》 •“可观测性”于1960年,在《控制论》中被首次提出。 •定义:指系统可以由其外部输出推断其内部状态的程度。 •特点:用已知的输入输出推断机械内部的工作状态。 •将会不太适用于“虚拟的软件系统” •可观测性工程将开启你编写软件代码并与生产环境交互的全新模式。 •未知的用户行为,未知的生产环境现象 各种厂商的解读 •套用控制论,强调某些关键点•发展创新,靠近最新技术 系统的可观测性:应该具备的三大基本特征 度量能力 •无论系统中着发生多么费解的现象 •它帮助你更好地理解和解释系统当前的状态 探索分析 •能够在各类状态数据的所有维度和组合之间进行关联分析 •无预定调试&排查模式和路径 按需改变 •最好是不需要改变原有代码 •也能随心所欲的按需埋点洞察 可观测性与DevOps的关系 •持续验证、功能开关、灰度发布等 •自动化和持续交付 •跨团队协作、事后分享 •故障排除和持续改进,无指责的事后回顾 可观测性与SRE的关系 客户 文档 (1~1) (1~n) SLA(n~1) 销售 (n~1) SRE 产品 产品 延时 流量 错误 饱和 I SRE Dev (n~n) SRE域 定义、可视化、调查、验证 聚合、搜索、告警 采集、上传、测试 可观测性域 参考数据 SLOSLI 反馈 导航、确认 使用 复杂 困难处理 Code running 工程实施 简单 容易获取 SLO 骤循序渐进落地可观测性 采集 处理 使用 可观测性数据来源 代码入侵非代码入侵 �可观测性信号量≠可观测性 代码&内在OS&集成环境&外在 手工埋点 LogMetricTraceRUM Stream 框架埋点 LogTraceRUMeBPF Profiling 环境采集 LogMetricSyntheticsCloudNPM 数据服务于:问题的解决,四大问题领域 Trace、日志… 指标、日志 代码|编码 Trace… 日志、Profiling… 可观测性数据意义最大化:用户x环境x代码?? 在这三个维度的交叉点上获取:即时、准确和清晰的洞见。 可观测性数据的底层细节 •用可观测数据度量和感知应用系统的状态,以及状态的变化过程 •可观测性数据的两个维度“基数”和“维度”。 数据 时间 基数 维度 数值 A C 可观测性的数据结构 B •高基数字段:用户ID、UUID、购物车ID、请求ID、容器ID、主机名 (弹性、不可变架构)、PodID等等。 •低基数字段:操作系统类型、云提供商、可用区、主机架构(AMD/arm)等等 •高维度可观测性数据是一条结构化数据,代表一次事件,亦或是一个状态,它的 “宽度”可以高达上千个键值对(字段),事件越宽所携带的上线文信息就越丰富。高维度数据的作用是用来回答:到底发生了什么? •Trace–是以‘追踪ID’为线索的,一组具有调用逻辑关系的Span的集合。 •讲述了:前端A同时调用了缓存服务B 和数据库服务C这样一次事件 在产品团队中推广可观测性 1.应用可观测性驱动开发 •了解和掌握OTel&商业项目 •使用自动化埋点 •左移:尽早的实施自定义埋点 •统一设计规划集中的数据后台 2.实施基于SLO的告警 •将有限的精力投入到有的放矢的SLO告警排查和处理中 3.提高代码可观测性 •是否按期望运行?与前一个版本相比如何?用户更喜欢吗?有没有发生新的异常? 统一数据模型:标准化、互操作性、简化开发和集成 ElasticCommonSchema(ECS) •背景:由Elastic推动的ElasticCommonSchema(ECS)是一种用于标准化日志和事件数据的数据模型。它旨在消除在不同数据源和工具之间对字段和术语的混淆,使得数据更易于理解和可操作。 •意义:ECS的标准化使得日志、指标和其他可观测性数据的结构在整个生态系统中保持一致。这有助于不同的日志收集器、监控工具和安全信息与事件管理(SIEM)系统之间的集成,简化了数据分析和查询。 CNCFObservabilityMetrics(COM) 捐献 •背景:CNCFObservabilityMetrics(COM)是由云原生计算基金会(CNCF)推动的可观测性数据模型。COM旨在提供一种统一的方法,以在云原生环境中收集和表示指标数据。 •意义:COM的目标是为云原生应用程序和基础设施提供一个通用的度量标准。通过定义共同的指标和度量单位,COM有助于确保不同的监控和度量工具之间的兼容性,从而简化了监控、自动化和调试任务。 高效存储可观测性数据 挑战:一写多读,在高基数和高维度的任意组合下高速搜索 •时间序列数据库:高基数导致时间线爆炸 •InfluxDB:专门用于存储和查询时间序列数据的开源数据库。 •Prometheus:开源的系统监控和警报工具,使用自身的时间序列数据库。 •Graphite:开源的可视化工具,使用时间序列数据库来存储性能数据。 •日志存储:不是为Tracing优化而设计的 •Elasticsearch:用于搜索和分析大量数据的分布式开源搜索引擎,通常与Logstash和Kibana一起使用(ELK堆栈)。 •Splunk:商业日志管理工具,用于搜索、监视和分析机器生成的大量数据。 •关系型数据库:传统关系型数据库不适合 •MySQL、PostgreSQL、Oracle:传统的关系型数据库,也可以用于存储监控数据。 •列式存储:未来可期的存储项目ClickHouse,但未对o11y优化 •ApacheCassandra:高度可扩展的分布式数据库系统,适用于大规模存储和处理数据。 •ClickHouse:列式数据库管理系统,用于高性能分析型工作负载。 •对象存储:延迟太高 •AmazonS3、GoogleCloudStorage、AzureBlobStorage:云存储服务,适用于存储大量监控数据。 •内存数据库:规模不够 •Redis:开源的内存键值存储系统,可用于缓存和实时数据分析。 •分布式存储系统:查询延迟高 •HadoopHDFS:分布式文件系统,可用于存储大规模的监控数据。 运算和预处理可观测性的考量 •实时性: •数据的新鲜度*采集速度 •常用运算: •P99,P95,P90,切片,平均值 •异常检测: •当前vs.基线 •AI推理和判断 •自动驾驶的实现前提:交通环境和规则是确定性的 •AIOps除非监督异常行为预判外,不确定是云环境&服务运行常态 基于SLO的告警逻辑 1一触即发2延长告警时间窗口3延迟触发前持续时间4单燃烧率触发5多燃烧率触发 6推荐的告警逻辑 举例:SLO为99.9%的接口错误率 •多时间窗口(5m~3d) •多燃烧率(1~14.4) •多告警级别(短信、工单) 详见:《GoogleSRE工作手册》 运维界的第一性原理:核心分析循环 •被动干预:告警事件触发 •主动干预: 系统监控巡检 核心分析循环的数据可视化演示 可观测性持续改进和评估 能力成熟度模型的作用和意义 可参考的两个模型 在组织内使用可观测性成熟度模型 参考模型的作用和意义 •提供起点,批判依据,客观的度量和识别目标。 •模型不会适用于所有企业,有待人的适配,模型本身也需要不断发展 •目标: •系统和工程师的生活均可持续发展 •提高客户满意度实现企业价值 能清晰理解用户的行为 可参考的能力模型:LizFong-Jones2019InfoQ文章 在复杂系统中可持续地运维卓越的生产系统 有抵御系统故障的可靠性 能持续交付高质量代码 可管理复杂度和技术债 可按预定节奏发布软件 在组织内使用可观测性成熟度模型 •用于度量团队表现的优缺点 •从对业绩具有较大影响的应用系统的优化开始 •将可观测性能力和其它能力交织在一起 •授权给特定的变革负责人,并得到管理层的支持和重视 THANKS! 个人微信号微信公众号

你可能感兴趣

hot

大型企业系统可观测性的最佳实践 - 林亚ILYA MOCHALOV

信息技术
XOps 风向标!GOPS 全球运维大会暨研运数智化技术峰会 2024 · 上海站2024-10-21
hot

刘晓辉-运维平台可观测与数字孪生的落地实践_加水印

信息技术
2024 第23届 GOPS 全球运维大会暨 XOps 技术创新峰会 · 北京站2024-07-17