大型企业系统可观测性的最佳实践 姓名:MOCHALOVILYA GOPS全球运维大会暨研运数智化技术峰会2024·上海站 个人简介 名:ILYA 性:MOCHALOV 某大型外企系统稳定性资深架构师 •来自俄罗斯 •工作经验在某大型外企系统稳定性 •开源软件倡导 大型企业IT系统环境 可观测性平台 案例研究:公司描述 目录 可观测性的最佳实践 案例研究:2年后 01 大型企业IT系统环境 大型企业IT系统介绍 大型企业IT系统介绍 多样化的IT环境:大型组织通常拥有混合的IT环境,包括在传统虚拟机上运行的遗留系统、在基于云的Kubernetes集群上的现代应用程序,以及专用硬件系统。 规模挑战:从小规模到大规模的快速扩展会显著增加管理这些多样化环境的复杂性。 遗留系统 •通常对业务运营至关重要。 •运行在虚拟机上,可能已经过时,且更难以监控。 云原生系统 •构建在云基础设施上的现代应用程序。 •使用容器、微服务和Kubernetes以实现可扩展性 硬件系统 •包括专用或专有系统,通常具有独特的可观测性挑战。 大型企业系统可观测性挑战 数据和组织孤岛 数据分散在不同的系统和团队中 工具激增 难以理解组件之间的相互作用 系统复杂性 数据格式和指标不一致 缺乏标准化 缺乏可观测性实践的专业知识 技能差距 多个具有重叠功能的可观测性工具 挑战的影响: •平均修复时间(MTTR)增加 •系统可靠性降低 •上市时间延长 •运营成本增加 DevOps/SRE/运营团队的组织结构 中 布 集分 态集度中端的正专能业够知认识真完成本岗本职各项工作 虚标心准学化习 但可能会成为瓶颈式式 响应速度更快与开发更好地对齐但可能存在不一致性 02 可观测性平台 可观测性平台介绍 可观测性平台概述 生成数据 收集并保存 可视化和价值提取 InstrumentationsandSDKs,agents,相关指标的处理 筛选、减少、丰富、保存 仪表板、警报、报告和数据挖掘 可观测性平台概述 生成数据 •从系统中提取数据的代理 •Profilers •Agentprocess(eBPF) • •应用程序发出监控数据 •SDK •custominstrumentation •日志聚合 可观测性数据的三种主要类型 指标:系统性能的数值度量(例如CPU使用率、内存消耗)。 response_duration_seconds_count[method="GET",path="/",status="200"]64493response_duration_seconds_count[method="POST",path="/",status="200"]52 日志:事件和活动的文本记录(例如,应用程序错误、系统消息)。跟踪:通过分布式系统的请求流的记录。 [ "name":"hello","context":[ "trace_id":"0x5b8aa5a2d2c872e832","span_id":"0x051581bf3cb55c13" ……. 可观测性平台概述 收集并保存 挑战 -延迟:确保低延迟数据传输以实现实时监控。 -可靠性:确保数据完整性和可用性。 -安全性:保护敏感数据免受未经授权的访问。 数据传输的最佳实践: -选择正确的协议:选择满足性能和安全要求的协议。 -优化网络配置:微调网络设置以实现高效的数据传输。 -使用数据压缩:减小数据大小以提高传输速度。 数据存储的最佳实践: -选择合适的存储解决方案:选择满足性能、可扩展性和成本要求的解决方案。 -实施数据保留策略:确定数据保留多长时间以平衡分析需求和存储成本。 -利用重复数据删除:通过消除重复数据来降低存储需求。 可观测性平台概述 可视化、自动化和数据挖掘 •可视化:以清晰易懂的格式呈现数据。 •自动化:自动执行警报、异常检测和事件响应等任务。 •数据挖掘:应用高级分析技术来发现模式和趋势。 有效价值提取的好处: 改进决策:数据驱动的洞察指导战略决策。更快的事件响应:主动识别和解决问题。提高运营效率:优化资源利用率和性能。创新:发现新的机会和趋势。 03案例研究:公司描述 单云击生此和处遗编留辑系标统题03 04 混合编程语言 案例研究:公司简介 多单个击本此地处数据编中辑心标和题云01 Unicorn6ai 02集单中击式此D处ev编O辑ps标/S题RE 团队 案例研究:公司DevOps/SRE简介 组织结构 案例研究:公司挑战 •用于指标、日志和跟踪的多个工具,从而创建一个碎片化的环境。 •难以跨不同工具 关联数据。 可观测性工具的激增 缺乏标准化 •系统故障和中断的发生率很高。 •难以确定根本原因并及时解决问 题。 频繁的IT系统稳定性事件 难以确定根本原因 •现代系统的复杂性,使得很难确定问题的根源。 •缺乏对组件之间 交互的可见性。 •系统故障和中断的发生率很高。 •难以确定根本原因并及时解决问 题。 04可观测性的最佳实践 可观测性的最佳实践:将SRE纳入开发团队 将DevOps/SRE纳入开发团队的好处: 共享所有权:增强对系统可靠性的责任感。主动解决问题:及早发现和预防问题。 改进的协作:团队之间更好的沟通和协调。 加强知识传授:分享专业知识和最佳实践。 开发团队中SRE的主要职责: 事件响应:处理系统故障和中断。 容量规划:确保有足够的资源来满足应用程序性能。变更管理:监督系统的变更。 监控和警报:设置监控系统和警报。 可观测性的最佳实践:可观测性标准 OpenTelemetry 一个供应商中立的开源框架,用于收集和导出遥测数据。 指标定义和日志记录约定 关键指标的标准化定义和一致的日志记录实践和格式。 项目模板 用于使用可观测性数据检测代码的预定义模板。 GOPS全球运维大会暨研运数智化技术峰会2024·上海站 可观测性的最佳实践:可观测性标准 自上而下的方法 教育和培训 持续改进 领导层推动标准化 提供有关可观测性最佳实践的培训 定期审查和更新标准 可观测性的最佳实践:降低复杂性 降低复杂性 更轻松的管理和维护 节省成本 降低许可和维护成本。 单纯(KISS*) 提高效率 简化工作流程并减少开销。 增强的数据一致性 更少的数据孤岛,更轻松的关联。 *KISS–KEEPITSUPERSIMPLE 服务 K8sNginxingress 缓存代理 硬件负载均衡器 CDN 可观测性的最佳实践:降低复杂性 可观测性的最佳实践:降低复杂性 API网关 服务 硬件负载均衡器 CDN 缓存代理 K8sNginxingress 可观测性的最佳实践:降低复杂性 CDN 硬件负载均衡器 API网关 缓存代理 K8sNginxingress 服务 K8sAPI网关 可观测性的最佳实践:降低复杂性 系统级复杂性方面: 训练时间 新团队成员需要多长时间才能待命 说明时间 向新团队成员解释服务的全面高级视图需要多长时间 管理多样性 有多少种方法可以在系统的不同部分配置类似的设置 部署配置的多样性 在生产环境中部署了多少个唯一配置 年龄 该系统有多旧? 可观测性的最佳实践:减少指标、日志和跟踪 降低成本 减少存储和加工费用 更快的分析 从减少的数据量中更快地获得洞察 提高性能 减少数据存储和分析系统的压力 增强专注力 更容易识别真正重要的数据。 可观测性的最佳实践:减少指标、日志和跟踪 少即是多 指标 识别不必要的指标识别不必要的标签 痕迹 加sampling 日志 关闭debuglog在生产环境中,不记录请求正文和过多信息等。 可观测性的最佳实践:应用程序分析 指标、日志和跟踪有什么问题 虽然日志、指标和跟踪提供了有关系统行为的宝贵见解,但它们也 有其局限性: 01 高级视图: 日志、指标和跟踪通常提供系统性能的高级视图,但它们 可能无法揭示问题的根本原因。 02 有限粒度: 日志和指标可能无法捕获有关应用程序行为的精细详细信 息,例如函数调用、内存分配和CPU使用率。 03 缺乏根本原因分析: 虽然日志和指标可以帮助识别问题的症状,但它们可能无 法直接指向根本原因。 可观测性的最佳实践:应用程序分析 •性能分析:识别性能瓶颈和热点 •内存分析:分析内存使用情况并识别泄漏。 •CPU分析:了解CPU利用率并识 别低效代码。 •线程分析:分析线程行为并识别同步问题。 可观测性的最佳实践:80/20 •专注于关键系统:优先考虑对业务运营最关键的系统的可观测性工作。 •与业务利益相关者交谈 •如果所有系统似乎都是业务关键型–选择那些产生更多收入或从长远 来看会产生更大影响的系统 • •确定关键指标:专注于提供最有价值洞察的指标。 •跟踪很好,但你有好的指标吗? •优化数据收集:专注于从最重要的来源收集数据。 •Goldensignals是必须的,其余的取决于系统关键性 •确定事件响应的优先级:集中精力解决最严重的事件。 05案例研究:2年后 后续步骤 -使用内部代码模板 -将分布式跟踪集成到100% 的关键应用程序中 更好的可观测性覆盖率 •之前:40%的关键应用程序具有GoldenSignals指标 •之后:100%的关键应用程序具有GoldenSignals指标 严重事件减少70% •事故总数减少60% •平均MTTR减少5倍 GOPS全球运维大会暨研运数智化技术峰会2024·上海站 Thanks GOPS全球运维大会暨研运数智化技术峰会2024·上海站 高效运维社区DevOps时代 荣誉出品