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

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
可观测监控 Prometheus 版,每月50GB免费额度
可观测链路 OpenTelemetry 版,每月50GB免费额度
简介: 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项目强强联合,持续释放技术红利。
目录
相关文章
|
6天前
|
弹性计算 Kubernetes Cloud Native
云原生架构下的微服务设计原则与实践####
本文深入探讨了在云原生环境中,微服务架构的设计原则、关键技术及实践案例。通过剖析传统单体架构面临的挑战,引出微服务作为解决方案的优势,并详细阐述了微服务设计的几大核心原则:单一职责、独立部署、弹性伸缩和服务自治。文章还介绍了容器化技术、Kubernetes等云原生工具如何助力微服务的高效实施,并通过一个实际项目案例,展示了从服务拆分到持续集成/持续部署(CI/CD)流程的完整实现路径,为读者提供了宝贵的实践经验和启发。 ####
|
7天前
|
Kubernetes 负载均衡 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第27天】Kubernetes(简称K8s)是云原生应用的核心容器编排平台,提供自动化、扩展和管理容器化应用的能力。本文介绍Kubernetes的基本概念、安装配置、核心组件(如Pod和Deployment)、服务发现与负载均衡、网络配置及安全性挑战,帮助读者理解和实践Kubernetes在容器编排中的应用。
29 4
|
7天前
|
Kubernetes Cloud Native API
云原生架构下微服务治理的深度探索与实践####
本文旨在深入剖析云原生环境下微服务治理的核心要素与最佳实践,通过实际案例分析,揭示高效、稳定的微服务架构设计原则及实施策略。在快速迭代的云计算领域,微服务架构以其高度解耦、灵活扩展的特性成为众多企业的首选。然而,伴随而来的服务间通信、故障隔离、配置管理等挑战亦不容忽视。本研究聚焦于云原生技术栈如何赋能微服务治理,涵盖容器编排(如Kubernetes)、服务网格(如Istio/Envoy)、API网关、分布式追踪系统等关键技术组件的应用与优化,为读者提供一套系统性的解决方案框架,助力企业在云端构建更加健壮、可维护的服务生态。 ####
|
7天前
|
Kubernetes 监控 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第26天】随着云计算技术的发展,容器化成为现代应用部署的核心趋势。Kubernetes(K8s)作为容器编排领域的佼佼者,以其强大的可扩展性和自动化能力,为开发者提供了高效管理和部署容器化应用的平台。本文将详细介绍Kubernetes的基本概念、核心组件、实践过程及面临的挑战,帮助读者更好地理解和应用这一技术。
30 3
|
7天前
|
监控 安全 Cloud Native
云原生安全:Istio在微服务架构中的安全策略与实践
【10月更文挑战第26天】随着云计算的发展,云原生架构成为企业数字化转型的关键。微服务作为其核心组件,虽具备灵活性和可扩展性,但也带来安全挑战。Istio作为开源服务网格,通过双向TLS加密、细粒度访问控制和强大的审计监控功能,有效保障微服务间的通信安全,成为云原生安全的重要工具。
25 2
|
7天前
|
弹性计算 监控 Cloud Native
云原生架构下的性能优化实践与策略####
在数字化转型加速的今天,云原生技术以其弹性、敏捷和高效的特点成为企业IT架构转型的首选。本文深入探讨了云原生架构的核心理念,通过具体案例分析,揭示了性能优化的关键路径与策略,为开发者和企业提供了可操作的实践指南。 ####
|
10天前
|
敏捷开发 Cloud Native 持续交付
云原生技术在现代企业中的应用与实践
【10月更文挑战第23天】本文将深入探讨云原生技术在现代企业中的广泛应用,并结合具体案例分析其对企业数字化转型的推动作用。我们将从云原生技术的基本原理出发,逐步揭示其在提高业务敏捷性、降低成本和增强系统可靠性方面的优势。同时,文章还将分享一系列成功实施云原生技术的企业案例,为读者提供实践中的参考和启示。最后,我们将讨论云原生技术面临的挑战及未来的发展趋势,为企业在这一领域的进一步探索提供指导。
|
6天前
|
Cloud Native 安全 持续交付
云原生技术在现代软件开发中的应用与挑战####
本文深入探讨了云原生技术在现代软件开发中的广泛应用及其面临的主要挑战,旨在为开发者和企业提供实用的指导和策略。云原生技术通过其独特的架构和方法论,极大地提升了软件的可扩展性、弹性和敏捷性。然而,随着技术的不断演进,如何有效应对其在安全性、复杂性和成本控制等方面的挑战,成为了业界关注的焦点。本文将详细阐述云原生技术的核心概念、实际应用案例,并针对当前面临的主要挑战提出相应的解决策略。 ####
|
7天前
|
缓存 资源调度 Cloud Native
云原生架构下的性能优化实践与策略####
【10月更文挑战第26天】 本文深入探讨了云原生环境下性能优化的核心原则与实战技巧,旨在为开发者和企业提供一套系统性的方法,以应对日益复杂的微服务架构挑战。通过剖析真实案例,揭示在动态扩展、资源管理、以及服务间通信等方面的常见瓶颈,并提出针对性的优化策略,助力企业在云端环境中实现更高效、更稳定的应用部署。 ####
16 0
|
18天前
|
运维 Cloud Native 持续交付
云原生架构的演进与实践####
【10月更文挑战第16天】 云原生,这一概念自提出以来,便以其独特的魅力和无限的可能性,引领着现代软件开发与部署的新浪潮。本文旨在探讨云原生架构的核心理念、关键技术及其在实际项目中的应用实践,揭示其如何帮助企业实现更高效、更灵活、更可靠的IT系统构建与管理。通过深入剖析容器化、微服务、持续集成/持续部署(CI/CD)等核心技术,结合具体案例,本文将展现云原生架构如何赋能企业数字化转型,推动业务创新与发展。 ####
118 47