GIAC-2022sh 学习笔记 | 云原生时代的可观测体系在大规模应用中的落地实践

本文涉及的产品
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
应用实时监控服务-应用监控,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: GIAC-2022sh 学习笔记 | 云原生时代的可观测体系在大规模应用中的落地实践

otel.png

GIAC-2022sh 学习笔记 | 云原生时代的可观测体系在大规模应用中的落地实践

http://www.thegiac.com/2022sh/schedule

云原生时代的可观测体系在大规模应用中的落地实践

闫鹏

阿里云智能高级技术专家

个人简介

  • 目前就职于阿里云智能云原生应用平台部门
  • 阿里云可观测产品ARMS技术负责人
  • 在云计算/PaaS/中间件领域工作10年+
  • 主导了从阿里巴巴鹰眼监控产品到公有云可观测产品的体系建设及系统架构演进
  • 在分布式链路追踪,根因诊断,开源技术以及产品商业化等方向具有丰富的实战经验。

OpenTelemetry的前世与今生

OpenTelemetry横空出世

可观测领域的两大阵营

  • OpenTracing:CNCF(Cloud Native Computing Foundation)的项目,提供与厂商无关的API及规范, 使应用能够快速具备Tracing能力,如Zipkin、Jaeger都遵循此协议。
  • OpenCensus:Google公司主导的开源项目,Dapper的社区版本,在应用中快速集成Metrics和Tracing, 不仅仅提供规范,还提供Agent、Collector等组件。

OpenTelemetry的架构设计

otel_arch.png

OpenTelemetry不是像Jaeger、Prometheus这些开源项目一样具备存储、查询、以及Dashboard的能力。 相反,它提供了一个可插拔的体系结构,能够将数据导出到各种开源和商业化产品的后端服务。

开源项目、商业化产品之间的关系

相比Zipkin、Jaeger拥有更加优秀的设计理念

  • 全面消除厂商的 Lock-on 隐患
  • 提供标准化的Instrumentation框架
  • 提供可插拔的能力,服务选择更加自由
  • 提供多种数据源,系统对接灵活
  • 规范的制定、协议的统一
  • API语言无关,定义Metrics、Trace、Logs数据类型及操作
  • SDK根据不同API来实现,定义配置、数据处理和导出过程
  • OTLP原生标准协议定义,同时支持Thrift等多种协议扩展
  • 多语言、多环境的支持
  • 支持C++、.NET、Go、Java、PHP等10+种不同语言的SDK
  • 提供Host、Docker、以及Kubernates等多种不同环境下的接入方案
  • 通过Collector实现与不同开源及商业化产品数据的无缝对接

开源、商业化产品之间的关系

  • 应用场景: OpenTelemetry等开源产品 阿里云ARMS可观测套件 (商业化产品)
  • 接入成本
  • 系统运维
  • 采集器(探针)管 理
  • 可视化展示
  • 安全性
  • 根因定位能力
  • 统一监控
  • 可扩展性与服务性

从0到1落地可观测体系的三大挑战及解决方案

实际生产环境下构建可观测体系的三大挑战

  • 数据孤岛: 挑战一:数据的孤岛、监控工具的孤岛导致无法释放数据的关联价值。
  • 高昂成本: 挑战二:多探针、数据、环境的多样化带来的高昂运维及存储成本。
  • 场景复杂: 挑战三:异构系统的互通、异步调用等场景复杂化为最终落地增加了难度。

打破数据孤岛的三个要素

  • 将三个柱子,变成互相连接的一股绳子
  • 指标 调用链 日志 (Metrics) (Trace) (Logs)
  • 三个要素: 数据采集 模型定义 关联分析

三个柱子+三个要素的落地方案

Metrics(指标) Trace(调用链) Logs(日志)

与存量监控系统工具的互联与互通

Kubernates场景下探针自动接入的技术方案

  • 探针种类繁多
  • 探针版本管理
  • 业务遇到问题,探针如何快速回滚 探针如何安装

预聚合、链路压缩实现低成本的无损统计与传输

通过预聚合的实现原理,捕捉每一次真实请求,先聚合,后采样,再上报,从而实现无损统计,端侧成本降低80%。

冷热数据分离,进一步降低存储成本

  • 热数据实时分析:30分钟全量调用链、实时查询 &分析,满足在线诊断需求。
  • 冷数据精准采样:根据链路特征自定义采样策略 (Tail-based Sampling),只持久化存储需要的 调用链(比如错慢调用),大幅降低存储成本。

不同Trace协议下异构系统无法实现互通

异步场景下的断链影响准确性与完整性

落地完整可观测体系的技术架构

otel.png

可观测的未来与展望

行业发展趋势

  • 伴随运维能力下沉,可观测重要性得到进一步提升。
  • 多云、混合云架构应用,为可观测体系的建设带来新的机遇与挑战。
  • 打破数据孤岛、系统融合、统一监控运维等诉求变得更加强烈。
  • 可观测在IT成本治理、业务运营等细分领域逐渐被广泛应用。

可观测技术的演进

  • 开源技术栈进一步收敛(Prometheus、OpenTelemetry、Grafana)
  • eBPF 技术由初始阶段进入发展阶段,逐步在生产环境中应用。
  • eBPF 与开源APM项目强强联合,持续释放技术红利。
目录
相关文章
|
3天前
|
运维 Kubernetes Cloud Native
云原生技术入门及实践
【10月更文挑战第39天】在数字化浪潮的推动下,云原生技术应运而生,它不仅仅是一种技术趋势,更是企业数字化转型的关键。本文将带你走进云原生的世界,从基础概念到实际操作,一步步揭示云原生的魅力和价值。通过实例分析,我们将深入探讨如何利用云原生技术提升业务灵活性、降低成本并加速创新。无论你是云原生技术的初学者还是希望深化理解的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
3天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
20 5
|
4天前
|
负载均衡 监控 Cloud Native
云原生架构下的微服务治理策略与实践####
在数字化转型浪潮中,企业纷纷拥抱云计算,而云原生架构作为其核心技术支撑,正引领着一场深刻的技术变革。本文聚焦于云原生环境下微服务架构的治理策略与实践,探讨如何通过精细化的服务管理、动态的流量调度、高效的故障恢复机制以及持续的监控优化,构建弹性、可靠且易于维护的分布式系统。我们将深入剖析微服务治理的核心要素,结合具体案例,揭示其在提升系统稳定性、扩展性和敏捷性方面的关键作用,为读者提供一套切实可行的云原生微服务治理指南。 ####
|
4天前
|
消息中间件 缓存 Cloud Native
云原生架构下的性能优化实践与挑战####
随着企业数字化转型的加速,云原生架构以其高度解耦、弹性伸缩和快速迭代的特性,成为现代软件开发的首选模式。本文深入探讨了云原生环境下性能优化的关键策略与面临的主要挑战,通过案例分析,揭示了如何有效利用容器化、微服务、动态调度等技术手段提升应用性能,同时指出了在复杂云环境中确保系统稳定性和高效性的难题,为开发者和架构师提供了实战指南。 ####
18 3
|
4天前
|
运维 Kubernetes Cloud Native
深入理解云原生架构:从理论到实践
【10月更文挑战第38天】本文将引导读者深入探索云原生技术的核心概念,以及如何将这些概念应用于实际的软件开发和运维中。我们将从云原生的基本定义出发,逐步展开其背后的设计哲学、关键技术组件,并以一个具体的代码示例来演示云原生应用的构建过程。无论你是云原生技术的初学者,还是希望深化理解的开发者,这篇文章都将为你提供有价值的见解和实操指南。
|
5天前
|
Cloud Native 持续交付 云计算
云原生技术入门与实践
【10月更文挑战第37天】本文旨在为初学者提供云原生技术的基础知识和实践指南。我们将从云原生的概念出发,探讨其在现代软件开发中的重要性,并介绍相关的核心技术。通过实际的代码示例,我们展示了如何在云平台上部署和管理应用,以及如何利用云原生架构提高系统的可伸缩性、弹性和可靠性。无论你是云原生领域的新手,还是希望深化理解的开发者,这篇文章都将为你打开一扇通往云原生世界的大门。
|
3天前
|
弹性计算 Kubernetes Cloud Native
云原生技术的实践与思考
云原生技术的实践与思考
17 2
|
4天前
|
Kubernetes Cloud Native 持续交付
云原生技术在现代应用架构中的实践与思考
【10月更文挑战第38天】随着云计算的不断成熟和演进,云原生(Cloud-Native)已成为推动企业数字化转型的重要力量。本文从云原生的基本概念出发,深入探讨了其在现代应用架构中的实际应用,并结合代码示例,展示了云原生技术如何优化资源管理、提升系统弹性和加速开发流程。通过分析云原生的优势与面临的挑战,本文旨在为读者提供一份云原生转型的指南和启示。
18 3
|
4天前
|
存储 Cloud Native 持续交付
云原生入门:从理论到实践
【10月更文挑战第38天】云原生技术正在重塑软件开发和运维的面貌。本文将带你走进云原生的世界,理解其核心理念,并探索如何将这些理念应用于实际项目中。我们将一起学习容器化、微服务架构、持续集成与持续部署(CI/CD)等关键概念,并通过代码示例加深理解。无论你是云原生新手还是希望深化知识的开发者,这篇文章都将为你提供宝贵的知识和启示。
15 3
|
4天前
|
运维 Kubernetes Cloud Native
云原生技术在现代应用架构中的实践与挑战####
本文深入探讨了云原生技术的核心概念、关键技术组件及其在实际项目中的应用案例,分析了企业在向云原生转型过程中面临的主要挑战及应对策略。不同于传统摘要的概述性质,本摘要强调通过具体实例揭示云原生技术如何促进应用的灵活性、可扩展性和高效运维,同时指出实践中需注意的技术债务、安全合规等问题,为读者提供一幅云原生技术实践的全景视图。 ####