带你读《2022技术人的百宝黑皮书》——移动域全链路可观测架构和关键技术(4)

简介: 带你读《2022技术人的百宝黑皮书》——移动域全链路可观测架构和关键技术(4)

带你读《2022技术人的百宝黑皮书》——移动域全链路可观测架构和关键技术(4)https://developer.aliyun.com/article/1340966?groupCode=taobaotech


移动端opentracing可观测架构

全链路构成

 

 

image.png

(图5 端到端情况、详情场景分层图)

 

端到端现有链路长,端侧存在各类研发框架和能力,虽然后端调用链路明确,但从全链路视角看,并没有与端侧打通。以用户浏览详情动线为例,一次首屏打开,会触发奥创、MTOP(无线网关)、DX三个模块不同的调用时  序,不同的模块有各自的处理过程,不同阶段有不同的耗时和状态(成功、失败等);接着继续看滑动,可以看到模块的调用时序组合又不一样,因此不同场景下可以由若干要素随机组合,需要根据用户实际场景,划分若干维度来定义全链路:

 

image.png场景定义:一次用户操作为一个场景,如点击、滑动都是单独的场景,场景也可以是多个单个场景的组合。

image.png能力分层:不同场景,有业务类,框架类、容器类、请求类的调用,可以对每个领域进行分层。

image.png阶段定义:不同分层有各自的阶段。如框架类有4个本地阶段,而请求类可以包含后端服务端处理阶段。

image.png用户动线:一次动线由若干场景组成。

全链路,就是把复杂的大调用分解为有限个结构化的小调用,并且可以衍生出各种case:

 

image.png「单场景+单阶段」的组合全链路

image.png「单场景+若干分层+若干阶段」组合的全链路

image.png「若干场景+若干分层+若干阶段」组合的全链路


 

Falco-基于OpenTracing模型

 

全链路为了支持Logs + Metrics + Tracing 行业标准,引入分布式调用规范opentracing协议,在上述的客户端架构上进行二次建模(后续简称为Falco)。OpenTracing 规范是 Falco 的模型基础,以下不再列举,完整可参考OpenTracing设计规范,https://opentracing.io/docs/overview/。Falco定义了端侧领域的调用链追踪模型,主要表结构如下:

 

 

 

image.png

 

(图6 Falco数据表模型)

 

image.pngimage.pngspan公共头:黄色部分,对应OpenTracing规范的Span基础属性。                                   scene:对应OpenTracing的baggage部分,会从根span往下透传,存放业务场景,命名规则为「业务标识_    行为」。比如详情首屏为ProductDetail_FirstScreen、详情刷新为ProductDetail_Refresh。

image.pngimage.pngimage.pngimage.pnglayer: 对应OpenTracing的Tags部分,定义了层的概念,目前划分为业务层、容器层和能力层。处理业务逻辑的模块归属业务层,命名为business;提供视图容器归属容器&框架层,如DX、Weex都是,命名为frame- workContainer;仅提供一个原子能力的模块,归属能力层,命名为ability,如mtop、picture,层可应用于对同    层同能力的不同模块进行横向性能对比。                                                   stages:对应OpenTracing的Tags部分,表示一次模块调用包含的阶段。每一层基于领域模型划分了关键阶  段,目的是让同层的不同模块具备一致的对比口径,如DX和TNode对比,可以从预处理耗时、解析耗时、渲染 耗时衡量彼此优劣。比如预处理阶段名为preProcessStart,也可以自定义。                    module:对应OpenTracing的Tags部分,更多的是逻辑模块。比如     DX、mtop、图片库、网络库。Logs:对应OpenTracing的Logs部分,日志仅记录到TLog,不输出到UT埋点。

 

带你读《2022技术人的百宝黑皮书》——移动域全链路可观测架构和关键技术(5)https://developer.aliyun.com/article/1340964?groupCode=taobaotech

相关文章
|
3天前
|
存储 设计模式 架构师
编码之道:从技术细节到系统架构的升华
【5月更文挑战第9天】 在编程的世界里,每一行代码都承载着功能与美学的双重使命。本文将探讨如何从关注技术细节出发,逐步深化对系统架构的理解,并在实践中实现从代码编写者到系统设计师的转变。通过分析具体案例,我们将揭示那些看似平凡的技术感悟如何在复杂系统的构建中发挥关键作用,以及这一过程中对软件开发者的启示。
13 3
|
8天前
|
负载均衡 API 数据库
构建高效微服务架构的五大关键技术
【5月更文挑战第4天】 随着云计算和容器化技术的成熟,微服务架构已成为软件开发的主流模式。本文将详细探讨实现高效微服务架构的五个关键技术点:服务拆分策略、API网关设计、服务发现与注册、熔断机制以及分布式事务管理。这些技术点是确保微服务系统可扩展性、灵活性及稳定性的基石,对于后端开发者而言,掌握它们至关重要。文章将提供具体的实施建议和最佳实践,帮助读者构建和维护高性能的微服务系统。
|
12天前
|
设计模式 Cloud Native 算法
拥抱变化:我的技术适应之旅构建未来:云原生架构在企业数字化转型中的关键角色
【4月更文挑战第30天】 在技术的浪潮中,我学会了不仅仅是编码,还有如何与时俱进。本文记录了我从一名初出茅庐的开发者成长为一个能够适应不断变化技术环境的工程师的心路历程。从最初的困惑与挑战到后来的接纳与创新,我意识到,技术能力的提升和心态的转变同样重要。
|
12天前
|
前端开发 JavaScript 安全
【TypeScript技术专栏】TypeScript在微前端架构中的应用
【4月更文挑战第30天】微前端架构通过拆分应用提升开发效率和降低维护成本,TypeScript作为静态类型语言,以其类型安全、代码智能提示和重构支持强化这一架构。在实践中,TypeScript定义公共接口确保跨微前端通信一致性,用于编写微前端以保证代码质量,且能无缝集成到构建流程中。在微前端架构中,TypeScript是保障正确性和可维护性的有力工具。
|
14天前
|
设计模式 供应链 安全
如何在短频快的节奏中做好技术?业务开发必会的架构思维
本文提供一种业务架构设计模式:从业务&技术两个角度提炼出一个基础思维框架,供业务线开发同学参考。
如何在短频快的节奏中做好技术?业务开发必会的架构思维
|
15天前
|
消息中间件 监控 微服务
【专栏】随着技术发展,未来将探索服务网格、容器化和云原生技术,以提升微服务架构的效能
【4月更文挑战第27天】本文探讨了构建高效微服务架构的后端开发最佳实践。微服务以服务独立、去中心化、自治和轻量级通信为核心原则,带来可扩展性、独立性、技术灵活性和团队协作优势。实践中,要注意服务拆分粒度、选择合适的通信协议(如RESTful、RPC、消息队列)、处理数据一致性与分布式事务、实施服务治理和监控,以及确保安全性与权限控制。随着技术发展,未来将探索服务网格、容器化和云原生技术,以提升微服务架构的效能。
|
18天前
|
Cloud Native Devops 持续交付
构建未来:云原生技术在现代IT架构中的演进与实践
【4月更文挑战第24天】 随着企业数字化转型的深入,云原生技术正成为推动创新和敏捷性的关键技术。本文聚焦于云原生技术的发展历程及其在现代IT架构中的应用,探讨了如何利用容器化、微服务、DevOps和持续集成/持续部署(CI/CD)等核心概念来优化资源利用率,提高系统弹性,并加速产品上市时间。通过分析多个行业案例,文章揭示了云原生实践对企业竞争力的显著影响,并提出了面向未来的IT架构战略建议。
|
28天前
|
供应链 安全 大数据
基于B/S架构的云计算技术区域健康云HIS系统源码 SaaS多医院模式
该系统通过区域云HIS的方式,按照信息系统三级等保相关要求统一部署在总院信息中心,通过政务外网和各基层卫生院互通。基层医生打开浏览器即可访问系统。整套系统统一管理统一维护,加强系统安全防护能力,全力保障医疗卫生大数据安全。
24 5
|
29天前
|
Kubernetes 负载均衡 持续交付
探索现代微服务架构下的容器化技术
【4月更文挑战第13天】 在当今软件开发领域,微服务架构和容器化技术已成为推动云原生应用发展的关键因素。本文将深入探讨微服务与容器化结合的优势、面临的挑战以及实践中的解决方案。我们将通过具体案例分析,揭示如何利用容器化技术优化微服务部署、扩展和管理,同时保证系统的高可用性和弹性。文章的目的在于为开发者和技术决策者提供一种系统化的方法来构建和维护高效的微服务环境。