云原生网关的可观测性体系实践

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
应用实时监控服务ARMS - 应用监控,每月50GB免费额度
可观测监控 Prometheus 版,每月50GB免费额度
简介: 云原生网关是阿里云微服务引擎(MSE)下的一款托管类型网关产品,其将传统的流量网关与微服务网关进行了整合,本文将讲述如何基于云原生网关去搭建网关场景的可观测性体系。

概述


可观测性一词来源于控制理论,是指系统可以由其外部输出推断其其内部状态的程度,随着IT行业几十年的发展,it系统的监控,告警,问题排查等领域的逐渐成熟,it行业也将其抽象形成了一整套可观测性工程体系;目前可观测性已不仅仅是一种具体的工具或者技术,它更偏向是一种理念,已成为复杂分布式系统成功管理的关键组成部分,并对系统在运行时提供对其理解、探查以及调度的能力。

云原生网关是阿里云微服务引擎(MSE)下的一款托管类型网关产品,其将传统的流量网关与微服务网关进行了整合,本文将讲述如何基于云原生网关去搭建网关场景的可观测性体系。


网关场景可观测性建设的难点


网关作为业务流量的入口,其可观测性建设与整体业务的稳定性息息相关,同时由于网关的用户使用场景与功能较多,且网络环境也较为复杂,这对网关可观测性建设也带来了很多的难点。下面就针对其中的主要难点分别加以说明。


关注网关可观测性的角色众多

可观测性的核心在于通过观测数据、满足不同角色、对于系统状态的理解需求,网关作为流量入口,业务、研发、SRE等角色都会关注网关的状态,需要在深入理解不同角色需求的前提下才能够完善网关的可观测性体系。如下图,简单描述了整体可观测数据简单的生命周期,观测数据通过 App 生成,经过中间处理环节后进行存储,然后提供查询服务。观测数据服务于不同类型的人群,如产品的用户、业务、研发、SRE,不同的人群通过不同的形态来使用这些数据。

image.png

可观测性的基本生命周期


埋点不够精确,统计消耗大

点位不够准。埋点不难,难的是如何判断哪些数据是符合使用场景的。这就需要设计者有丰富的从业经验,或者在上线的过程中,不断迭代打磨。

统计采集代价高。可观测性的实现,很多时候往往是时间、空间、颗粒度三者之间的权衡。统计的时间粒度太密会造成存储容量的膨胀,统计的时间粒度太粗则不利于定位问题。这都为可观测性的实现带来了难题。


网络环境复杂,  问题排查难度大

在流量网关场景下,由于公网网络环境复杂,网关流量巨大,偶发问题排查难度巨大。

云原生网关可观测性实践


当前业界在可观测性能力建设方面通用的三大支柱:日志事件(Logging),分布式链路追踪(Tracing)以及指标监控(Metrics)。

image.png

指标(Metrics),是一段时间内记录的各个维度的量化信息,用来观察系统的某些状态和趋势;

日志(Logs),是对程序运行过程中产生的一些离散事件的记录;

链路追踪(Traces),是对一次请求从接收到处理完毕整个生命周期内的调用链路的记录;

云原生网关基于此三大支柱建设了云原生网关基础的可观测性能力。


确定网关核心指标,构建可观测性基础

核心指标即能准确描述系统内部运行状况的指标,在云原生网关场景,核心指标即为qps,rt,成功率等能够准确描述网关此时运行状况的指标。云原生网关同时集成了prometheus 与 sls,用户既可以通过网关的访问日志的etl处理获取更加精细准确的数据,也可以通过prometheus获取网关的实时监控。

image.png

基于访问日志进行etl处理后的仪表盘


针对统计采集消耗大的问题,云原生网关将部分采集消耗大的指标使用etl处理访问日志来减少采集消耗,将更需要实时性的统计指标采用程序内埋点的方式来保证实时性。

image.png

云原生网关的grafana大盘


针对不同角色对网关可观测性的不同需求,云原生网关提供了不同维度的数据表现,对于需要进一步精细分析的企业用户,也可以通过sls进一步进行数据加工。


划分系统边界,快速定位问题

网关通常请求量庞大,同时在微服务场景下,调用链路错综复杂,在这样的条件下想确认某一条请求的失败原因是一件困难的事情,针对这一场景,云原生网关对接了开箱即用的ARMS分布式链路追踪服务,同时也支持将trace数据投递到用户自建的skywalking,避免云产品锁定。

image.png

xtrace问题排查


对于未接入链路追踪的用户,云原生网关提供日志明细的详细解释,将请求失败的原因可视化为具体的图表,帮助用户确认问题边界,减少问题排查时的时间,

image.png

失败请求错误原因明细


风险管理定时巡查风险
云原生网关综合用户实例,规格,性能等数据,会给出目前实例存在的风险,并给出改善建议,极大程度上提高了允原生网关实例维护的自动化程度,降低客户使用成本。

image.png

风险管理的自动风险筛查


对云原生网关可观测性的未来规划


目前云原生网关构建了基本的可观测性体系,可视化、监控等能力已经都相对完善。用户可以基于目前的可观测体系来快速发现,定位问题。

image.png

配合业界的发展方向,接下来云原生网关在可观测领域主要有如下规划

  • 就可观测性的三大数据支柱来说,为了解决部署上的跨平台方案冗杂以及数据不互通问题,Metrics、Logs、Traces大一统的可观测性采集框架发展是大势所趋,支持opentelemetry等统一的可观测性框架是接下来的首要工作
  • 在根因分析方面我们也在关注行业最先进算法的动态,持续的探索进行智能根因分析的实践。


相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
10天前
|
运维 Cloud Native 持续交付
云原生架构的演进与实践####
【10月更文挑战第16天】 云原生,这一概念自提出以来,便以其独特的魅力和无限的可能性,引领着现代软件开发与部署的新浪潮。本文旨在探讨云原生架构的核心理念、关键技术及其在实际项目中的应用实践,揭示其如何帮助企业实现更高效、更灵活、更可靠的IT系统构建与管理。通过深入剖析容器化、微服务、持续集成/持续部署(CI/CD)等核心技术,结合具体案例,本文将展现云原生架构如何赋能企业数字化转型,推动业务创新与发展。 ####
109 47
|
3天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
4天前
|
监控 Cloud Native Java
云原生架构下微服务治理策略与实践####
【10月更文挑战第20天】 本文深入探讨了云原生环境下微服务架构的治理策略,通过分析当前技术趋势与挑战,提出了一系列高效、可扩展的微服务治理最佳实践方案。不同于传统摘要概述内容要点,本部分直接聚焦于治理核心——如何在动态多变的分布式系统中实现服务的自动发现、配置管理、流量控制及故障恢复,旨在为开发者提供一套系统性的方法论,助力企业在云端构建更加健壮、灵活的应用程序。 ####
44 10
|
4天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。
|
4天前
|
运维 Cloud Native 持续交付
云原生架构下的微服务设计原则与实践####
【10月更文挑战第20天】 本文深入探讨了云原生环境中微服务设计的几大核心原则,包括服务的细粒度划分、无状态性、独立部署、自动化管理及容错机制。通过分析这些原则背后的技术逻辑与业务价值,结合具体案例,展示了如何在现代云平台上实现高效、灵活且可扩展的微服务架构,以应对快速变化的市场需求和技术挑战。 ####
23 7
|
2天前
|
敏捷开发 Cloud Native 持续交付
云原生技术在现代企业中的应用与实践
【10月更文挑战第23天】本文将深入探讨云原生技术在现代企业中的广泛应用,并结合具体案例分析其对企业数字化转型的推动作用。我们将从云原生技术的基本原理出发,逐步揭示其在提高业务敏捷性、降低成本和增强系统可靠性方面的优势。同时,文章还将分享一系列成功实施云原生技术的企业案例,为读者提供实践中的参考和启示。最后,我们将讨论云原生技术面临的挑战及未来的发展趋势,为企业在这一领域的进一步探索提供指导。
|
3天前
|
监控 Cloud Native 测试技术
云原生架构下的性能优化与实践####
【10月更文挑战第21天】 本文深入探讨了在云原生环境下,如何通过一系列技术手段和最佳实践来提升应用性能。文章首先概述了云原生架构的基本原则与优势,随后详细分析了影响性能的关键因素,包括容器编排、微服务设计、持续集成/持续部署(CI/CD)流程以及监控与日志管理。针对这些因素,文中不仅介绍了具体的优化策略,如资源请求与限制的合理配置、服务间通信的高效实现、自动化测试与部署的优化,还结合案例分析,展示了如何在实际项目中有效实施这些策略以显著提升系统响应速度和处理能力。此外,文章还强调了性能测试的重要性,并提供了几种常用的性能测试工具和方法。最后,总结了云原生性能优化的未来趋势,为开发者和架构师
9 2
|
4天前
|
运维 Cloud Native API
云原生时代下的微服务架构实践
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术正以前所未有的速度重塑软件开发和运维的模式。微服务架构作为云原生的重要组成部分,其设计哲学、技术栈选择以及与传统单体应用的根本区别成为了现代软件工程讨论的焦点。本文将深入探讨微服务架构的核心概念,通过实际案例分析其在云平台下的应用,并分享在实施过程中的经验教训,旨在为读者提供一套清晰的微服务架构实践指南。
|
5天前
|
Cloud Native 持续交付 开发者
云原生技术在现代软件开发中的实践与挑战####
本文探讨了云原生技术在现代软件开发中的应用,重点分析了其核心组件如容器化、微服务架构、持续集成/持续部署(CI/CD)以及无服务器计算的优势与面临的挑战。通过实际案例,阐述了如何有效实施云原生策略以提升系统的可扩展性、可靠性和开发效率。同时,文章也指出了在向云原生转型过程中常见的技术障碍和解决策略,为开发者和企业提供了宝贵的实践经验分享。 ####
|
6天前
|
Cloud Native 安全 Devops
云原生技术在现代软件开发中的实践与挑战####
本文探讨了云原生技术在现代软件开发中的应用,深入分析了其核心概念、优势以及面临的挑战。通过实际案例,展示了云原生架构如何提升应用的灵活性和可扩展性,同时指出了企业在实施过程中需要注意的关键问题。本文旨在为开发者和企业提供有价值的参考,帮助他们更好地理解和应用云原生技术。 ####