云原生可观测性实践

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
云原生网关 MSE Higress,422元/月
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 云原生架构给可观测性带来了新挑战,在微服务和容器化的背景下,如何快速定位并解决应用出现的问题?本次直播将会从基本的原理开始介绍,结合实际场景来讲述如何借助ARMS/Tracing Analysis来排查常规问题,在上述产品赋能下,让您诊断问题变得更轻松!由阿里巴巴开发工程师垆皓为大家带来这次直播分享。

声明:本文根据阿里云开发者社群直播整理而来。
讲师:垆皓

本次分享主要围绕以下四个方面展开:
1、可观测性
2、基本原理
3、产品介绍
4、实战演示

一、可观测性

首先我们从监控谈起:监控主要解决应用在线上运行遇到的一些问题,如图所示:
image.png

在云原生背景下,由单机服务变为分布式服务之后给监控带来的挑战:
image.png

在传统的单应用只关注单机应用的状态,各应用之间的依赖性不是很复杂;在微服务架构下,客户端的请求先通过网关转发给之后对应的具体的应用,每个应用完成不同的功能,各应用的依赖性变的很复杂,这样就会导致问题的排查以及故障的定位难度也会变的很复杂。

接下来看容器化的部署:
image.png

K8S的对于运维的发布带来了许多方便之处,但实际上也引入了一些问题:比如某一个应用pod的resourse限制设置的存在不合理之处,导致整个应用的状态非正常状态。

这样的话,在K8S的状态之下,监控不但要关注应用的状态,同时也要关注整体所依赖的底层资源的状态。

比如:一个pod在某一个load中运行,受其他pod的影响,发生了漂移,那么就要关注发生漂移的原因。

二、基本原理

那么到底什么是云原生的可观测性?
image.png

在云原生的大背景下,可观测性是依赖于之前介绍的三种数据,在依赖的基础之上获取更多、更复杂的数据,不仅仅收集某个应用的Traces数据,而且会收集许多数据:包括主机,应用以及K8S等相关数据,再由这些指标数据相互关联来发现一些问题。Trace数据之前可能是某一类应用调用的堆栈,现在可能变成上下游窜的几百个应用,之后通过某一次调用把相互涉及到的几百个应用都串联起来,事件数据可能就会引入一些类似于K8s的pod生命周期的事件或者一些别的事件。

可观测系统基于Metrics、Traces、Logs这三种数据构造,不仅可以获得应用的每个接口执行效率,也可以获得底层资源,比如K8S的底层资源的运行状态,从某一个前端到它的后端开始处理,处理完成之后到转发、应用,整个链路都需要完整的被追踪,相当于可观测性对比与传统的监控来说,可观测性更强调的是分布式系统发生的所有事件都能够被观测,给出合理的解释。

如果可观测系统出现问题之后,该如何解决?

image.png

目前来说,最出名的方法是普罗米修斯,普罗米修斯侧重于Metrics数据的系统。

它是通过API暴露Metrics指标,被暴露的指标通过普罗米修斯去拉的方式写入到一个数据库,在数据库处理分析之后通过一个大盘展示。

接下来来看对于Tracing数据的解决方案:
image.png

OpenTracing解决方案是一种标准,它定义了整个Trace,比如过来一个请求,我们该如何记录它?记录这个请求的哪些属性?然后把这个请求往下串联起来,把它的相关数据,比如请求的标识,通过什么方式往下传,传下去的时候包括数据的格式,它的数据库的目标地址是什么,此时可以往这个请求上加一个“ke”和“y6”的值,打上标签,通过上述操作,记录了请求的相关数据。这样的话形成了统一的一个Tracing的规范,在云原生的背景下OpenTracing的解决方案是一个比较流行的解决方案。

三、产品介绍

image.png

1.ARMS ARMS是一款应用性能监控的工具,涵盖了前端监控、应用监控和普罗米修斯的各类子产品,涵盖了从浏览器端到小程序端、手机APP、和KYS容器环境的监控,可以将全栈式的请求串联起来,方便了问题的排查。

2.前端监控 前端监控可以把请求发出到后面处理全部串联起来。

3.APP监控 提供了安卓和ios端的相关情况。

4.业务监控 :如图所示
image.png

某一个请求进入,做标记为商品购买,继续下传到应用B,这个标记可以持续下传,这样相当于给整个链路打上了标记,可以统计某类请求对应的数目,响应时间等,通过业务的寓意的耗时是不是比其他的耗时长,可以做出更精准的判断。

image.png

image.png

四、实战演示

image.png

左图:核心在于某次请求进入之后,生成一个Trace Id,继续调用,发送一个ATP请求,在ATP请求把TraceId带上,这样的话下游应用在收到解析ATP之后也会把TraceId的在整个链路都记录上。在整个分布式应用中把TraceId会沿着调用一直传下去,调用的相关数据记录下来,就可以把所有的链路串起来。

右图:整个Trace的生成方式。调用不是同步的,是分开的。:整个Trace的生成方式。调用不是顺序调用,某一个调用请求完成之
后,下一个应用就继续开始。调用不是同步的,是分开的。这样的话需要我们用TraceId将其串联起来。

本文由社区志愿者整理而成,设区内容志愿者火热招募中,有好礼相赠哦。欢迎加入!戳我了解详情加入!

相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
|
1月前
|
Cloud Native 持续交付 开发者
云原生技术在现代企业中的应用与实践####
本文深入探讨了云原生技术的核心概念及其在现代企业IT架构转型中的关键作用,通过具体案例分析展示了云原生如何促进企业的敏捷开发、高效运维及成本优化。不同于传统摘要仅概述内容,本部分旨在激发读者对云原生领域的兴趣,强调其在加速数字化转型过程中的不可或缺性,为后续详细论述奠定基础。 ####
|
1月前
|
Cloud Native 安全 Java
铭师堂的云原生升级实践
铭师堂完整经历了云计算应用的四个关键阶段:从”启动上云”到”全量上云”,再到”全栈用云”,最终达到”精益用云”。通过 MSE 云原生网关的落地,为我们的组织带来了诸多收益,SLA 提升至100%,财务成本降低67%,算力成本降低75%,每次请求 RT 减少5ms。
铭师堂的云原生升级实践
|
29天前
|
存储 人工智能 调度
容器服务:智算时代云原生操作系统及月之暗面Kimi、深势科技实践分享
容器技术已经发展成为云计算操作系统的关键组成部分,向下高效调度多样化异构算力,向上提供统一编程接口,支持多样化工作负载。阿里云容器服务在2024年巴黎奥运会中提供了稳定高效的云上支持,实现了子弹时间特效等创新应用。此外,容器技术还带来了弹性、普惠的计算能力升级,如每分钟创建1万Pod和秒级CPU资源热变配,以及针对大数据与AI应用的弹性临时盘和跨可用区云盘等高性能存储解决方案。智能运维方面,推出了即时弹性节点池、智能应用弹性策略和可信赖集群托管运维等功能,进一步简化了集群管理和优化了资源利用率。
|
1月前
|
Cloud Native
邀您参加云原生高可用技术沙龙丨云上高可用体系构建:从理论到实践
云原生高可用技术专场,邀您从理论到实践一起交流,探索云上高可用体系构建!
|
1月前
|
Cloud Native 安全 Java
杭州铭师堂的云原生升级实践
在短短 2-3 年间,杭州铭师堂完整经历了云计算应用的四个关键阶段:从“启动上云”到“全量上云”,再到“全栈用云”,最终达到“精益用云”。也从云计算的第一次浪潮,迈过了第二次浪潮,顺利的进入到了 第三次浪潮 AI + 云。
137 13
|
1月前
|
Kubernetes Cloud Native API
云原生入门:从理论到实践的探索之旅
本文旨在为初学者提供一个关于云原生技术的全面介绍,包括其定义、核心原则、关键技术组件以及如何将这些概念应用于实际项目中。我们将通过一个简易的代码示例,展示如何在云原生环境下部署一个简单的应用,从而帮助读者更好地理解云原生技术的实践意义和应用价值。
|
30天前
|
运维 监控 Cloud Native
云原生之运维监控实践:使用 taosKeeper 与 TDinsight 实现对 时序数据库TDengine 服务的监测告警
在数字化转型的过程中,监控与告警功能的优化对保障系统的稳定运行至关重要。本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品之一,详细介绍了如何利用 TDengine、taosKeeper 和 TDinsight 实现对 TDengine 服务的状态监控与告警功能。作者通过容器化安装 TDengine 和 Grafana,演示了如何配置 Grafana 数据源、导入 TDinsight 仪表板、以及如何设置告警规则和通知策略。欢迎大家阅读。
55 0
|
1月前
|
运维 Cloud Native 开发者
云原生技术入门与实践
在云计算的浪潮中,云原生技术以其独特的优势和魅力吸引了越来越多的开发者和企业。本文将从云原生技术的基本概念、核心组件以及实际应用三个方面进行详细介绍,帮助读者更好地理解和掌握这一新兴技术。同时,文章还将分享一些实际案例和经验教训,让读者能够更深入地了解云原生技术的应用场景和发展趋势。
63 5
|
1月前
|
Cloud Native API 持续交付
云原生架构下的微服务治理策略与实践####
本文旨在探讨云原生环境下微服务架构的治理策略,通过分析当前面临的挑战,提出一系列实用的解决方案。我们将深入讨论如何利用容器化、服务网格(Service Mesh)等先进技术手段,提升微服务系统的可管理性、可扩展性和容错能力。此外,还将分享一些来自一线项目的经验教训,帮助读者更好地理解和应用这些理论到实际工作中去。 ####
60 0
|
2月前
|
Cloud Native 持续交付 云计算
云计算的转型之路:探索云原生架构的崛起与实践####
随着企业数字化转型加速,云原生架构以其高效性、灵活性和可扩展性成为现代IT基础设施的核心。本文深入探讨了云原生技术的关键要素,包括容器化、微服务、持续集成/持续部署(CI/CD)及无服务器架构等,并通过案例分析展示了这些技术如何助力企业实现敏捷开发、快速迭代和资源优化。通过剖析典型企业的转型经历,揭示云原生架构在应对市场变化、提升业务竞争力方面的巨大潜力。 ####
57 0