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

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

移动域全链路可观测架构和关键技术

image.png作者:执水

image.png出品:大淘宝技术

 

 

本文侧重阐述团队对移动领域全链路技术理念的原创性引入,整篇约1.2万字、阅读需要15分钟,读者将收获移动技术域体验优化的思路转变,以及软件定义体验的沉淀和研发实践。

 

App现有架构挑战

 

2013年开始All in无线到如今,集团移动技术发展十余年,历经几个关键阶段,

 

image.pngimage.png第一阶段,解决大规模业务并发研发的痛点,定义了Atlas(容器化框架, 提供组件解耦、动态性等支持)架构; 第二阶段,建设ACCS(淘宝无线全双工、低延时、高安全的通道服务)长连双工加密网络能力,补齐端到端互 操作移动服务能力追赶行业;

image.png第三阶段,面向业务特性建设Weex、小程序等动态化研发框架,移动技术进入动态化跨平台时期。

 

中后期通过移动小组机制进行各BU拉通和能力共建。自此,移动基础设施基本成型,各个领域各自沉淀若干组做到能力复用,App基本形成上层业务、中间研发框架或容器、基础能力三层的架构。我们团队作为无线端侧基础设施的承建方,过去重点是负责集团移动端的基础能力建设,近年来,团队重点深入淘宝业务场景展开性能优化,通过体验优化项目横向剖析App架构和及相关调用链路,感受到集团App普遍存在如下共性问题:

 

image.png

 

(图1 淘宝App架构挑战)

 

 

 

image.png运维排查效率低下:首先是监控阶段,多数问题无监控或者监控上报后的信息无法支撑更有效的分析,需要依赖日志进行问题排查;其次是没有日志的问题,发生异常时并不会主动上传日志,需要手动捞取,用户不在线更是拉取不到日志;拉取到日志后,还会继续遇到日志读不懂的问题问题;跟服务端有关的链路,还会遇到服务端鹰眼日志只保存5分钟的问题,经过这样一轮下来,基本时间已经过去半天...

 

image.png端到端追踪不完整:一个完整的业务链路,流量会穿越端到端多层,以一次下单为例,通过客户端所触发的网络请求到达服务器之后,会经过若干客户端模块处理、触发N次后端应用调用以及历经移动网络的不稳定性,试想一下,这些调用中有哪些出问题会影响这次下单交易,有哪些步骤会拖慢整个处理流程、请求没返回不清楚是服务端问题还是网络问题,假如各调用全链路性能定义不清,意味着各层问题得不到充分暴露,这些因素都是需要考虑的,加上端侧天然异步调用,导致各阶段度量和全链路打通存在重大挑战,目前现状就是客户端各层没有统一调用规范,并且缺乏拓扑结构,无法还原调用链路,导致端到端无法追踪。

 

image.png优化缺少统一口径:过去因为各研发框架性能口径自闭环,不管是客户端原生技术,还是跨平台技术都是面向技术视角统一采集通用的技术口径,这种情况会天然导致各业务实现和表现差异巨大,通俗说就是不接近用户体感,会导致线上的数据难以反应真实情况及优劣趋势,长久以来,淘宝的体验也一直在劣化,每年基本都要靠运动式方式来搞体验优化,无法常态化保持。

 

image.png移动Paas流程赋能成本:大量的SDK组件输出集团各BU后,基础能力嵌入到不同的App宿主环境后,同样会遇   到上面提到的几类问题,对各BU同学来说,基础设施更是黑盒,如果问题涉及到基础设施,排查过程更加艰辛, 加上没有现有的工具可以自助诊断问题在哪,遇到问题只能过来咨询,各种拉群拉人,导致答疑成本居高不下。

 

以上是从APP结构的角度对当前客户端在运维排查、度量监控、全链路优化等方面的不足进行的一些思考,也是我们后续的发力方向。

 

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

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3天前
|
SpringCloudAlibaba Dubbo 应用服务中间件
【微服务】微服务初步认识 - 微服务技术如何学习 · 认识微服务架构
【微服务】微服务初步认识 - 微服务技术如何学习 · 认识微服务架构
12 0
|
3天前
|
存储 设计模式 架构师
编码之道:从技术细节到系统架构的升华
【5月更文挑战第9天】 在编程的世界里,每一行代码都承载着功能与美学的双重使命。本文将探讨如何从关注技术细节出发,逐步深化对系统架构的理解,并在实践中实现从代码编写者到系统设计师的转变。通过分析具体案例,我们将揭示那些看似平凡的技术感悟如何在复杂系统的构建中发挥关键作用,以及这一过程中对软件开发者的启示。
20 3
|
1天前
|
运维 Oracle 容灾
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
|
3天前
|
负载均衡 持续交付 API
构建高效微服务架构的五大关键技术
【5月更文挑战第13天】在当前软件开发领域,微服务架构已经成为一种流行趋势。本文将探讨构建高效微服务架构的五大关键技术,包括容器化部署、服务发现与注册、API网关、负载均衡以及持续集成与持续部署。这些技术可以帮助开发团队更快速、更可靠地构建和部署微服务应用,提高系统的可扩展性和可维护性。
|
3天前
|
负载均衡 API 数据库
构建高效微服务架构的五大关键技术
【5月更文挑战第4天】 随着云计算和容器化技术的成熟,微服务架构已成为软件开发的主流模式。本文将详细探讨实现高效微服务架构的五个关键技术点:服务拆分策略、API网关设计、服务发现与注册、熔断机制以及分布式事务管理。这些技术点是确保微服务系统可扩展性、灵活性及稳定性的基石,对于后端开发者而言,掌握它们至关重要。文章将提供具体的实施建议和最佳实践,帮助读者构建和维护高性能的微服务系统。
|
3天前
|
设计模式 Cloud Native 算法
拥抱变化:我的技术适应之旅构建未来:云原生架构在企业数字化转型中的关键角色
【4月更文挑战第30天】 在技术的浪潮中,我学会了不仅仅是编码,还有如何与时俱进。本文记录了我从一名初出茅庐的开发者成长为一个能够适应不断变化技术环境的工程师的心路历程。从最初的困惑与挑战到后来的接纳与创新,我意识到,技术能力的提升和心态的转变同样重要。
|
3天前
|
前端开发 JavaScript 安全
【TypeScript技术专栏】TypeScript在微前端架构中的应用
【4月更文挑战第30天】微前端架构通过拆分应用提升开发效率和降低维护成本,TypeScript作为静态类型语言,以其类型安全、代码智能提示和重构支持强化这一架构。在实践中,TypeScript定义公共接口确保跨微前端通信一致性,用于编写微前端以保证代码质量,且能无缝集成到构建流程中。在微前端架构中,TypeScript是保障正确性和可维护性的有力工具。
|
3天前
|
设计模式 供应链 安全
如何在短频快的节奏中做好技术?业务开发必会的架构思维
本文提供一种业务架构设计模式:从业务&技术两个角度提炼出一个基础思维框架,供业务线开发同学参考。
如何在短频快的节奏中做好技术?业务开发必会的架构思维
|
3天前
|
消息中间件 监控 微服务
【专栏】随着技术发展,未来将探索服务网格、容器化和云原生技术,以提升微服务架构的效能
【4月更文挑战第27天】本文探讨了构建高效微服务架构的后端开发最佳实践。微服务以服务独立、去中心化、自治和轻量级通信为核心原则,带来可扩展性、独立性、技术灵活性和团队协作优势。实践中,要注意服务拆分粒度、选择合适的通信协议(如RESTful、RPC、消息队列)、处理数据一致性与分布式事务、实施服务治理和监控,以及确保安全性与权限控制。随着技术发展,未来将探索服务网格、容器化和云原生技术,以提升微服务架构的效能。
|
19小时前
|
Kubernetes API 数据库
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第17天】 随着云计算的普及和容器化技术的成熟,微服务架构已成为企业软件开发的首选模式。该架构通过将大型应用程序拆分为一系列小型、自治的服务来提供灵活性和可扩展性。本文将探讨微服务架构的关键概念,包括服务的细粒度划分、独立部署、以及如何通过容器编排实现高可用性。同时,我们将讨论微服务实施的最佳实践和面临的挑战,为后端开发者提供构建和维护微服务系统的实用指南。