20

淘系面向业务价值的精细化流量管控实战

 3 years ago
source link: https://mp.weixin.qq.com/s?__biz=MzAxNDEwNjk5OQ%3D%3D&%3Bmid=2650413218&%3Bidx=1&%3Bsn=f4e7cc7313926f32a4268fbd63a3d4de
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

UBVzemq.gif!mobile

克尼(Marconi)精细化流量管控解决方案 延续 诺亚(Noah)自适应流控 在系统资源过载保护等面向系统高可用稳定性上的成熟广泛经验,进一步向精细化的业务流量管控演进。通过精细化的流量管控手段,保障业务高价值的服务请求,提升服务交付的业务价值。

本文将从背景问题、实战效果、设计思路与解法三个方面介绍马克尼(Marconi)在2020双11中,保障了淘系(淘宝、天猫等)核心业务平台(如 首页、会场、直播、互动、我的淘宝 等),多架构层次(从接入网关到业务应用集群/容器)管控业务流量并提升服务业务效果,给予用户顺滑的体验;提升了淘系(及阿里巴巴集团更多的BU)的稳定性底盘,成为应用稳定性保障的核心能力,推动了业界在大型分布式在线业务系统的高可用/稳定性保障进展。为今年双11创新纪录提供保障!

背景

总交易额达4982亿元,订单创建峰值58.3万笔/秒,今年双11再创新纪录!这背后离不开阿里巴巴淘系技术部,新场景、新架构中不断创新与攻克难题的淘系技术人,离不开保障业务创新的流量管控解决方案。

随着淘系业务系统演进,沉淀了大量公共能力的业务平台(即平台型应用),如直播、权益、大促会场、互动、聊天消息、导购(招选搭投)、首页等等,支撑其上的众多的业务场景或流量来源方(如不同App、投放),形成了 横向平台+垂直业务的架构模式。各个业务平台会需要支撑大型的业务流量(峰值会数十万QPS甚至百万QPS)。

业务平台模式解决了诸多难题,比如解决了业务能力重复建设引起的交付效率低的问题,便于沉淀且利于创新;面向终端用户提供一致的体验等等。同时也带来了新的问题/诉求:

  1. 面向业务价值的精细化业务流量管控(如限流/服务分级/隔离)

  2. 业务平台自建网关的系统稳定性与成本问题

  3. 突发大流量的稳定性保障

这些问题须一套公共的解决方案来面向业务价值对业务流量实施精细化管控。下面对这些问题/诉求做展开说明。

▐   面向业务价值的精细化业务流量管控

平台型应用的业务场景的复杂,自身提供的服务多,同时流量来源渠道多,不同场景渠道的流量所带来的业务效果和收益会有非常大的差别,需要面向业务价值的精细化管控。

比如我们从历年双11大促中抽象出的一些通用场景:

  • 业务平台的不同服务,针对核心服务和非核心服务需要精细化管控

    • 这也是大家常碰到的场景,针对不同服务进行管控,比如限流。但能否进一步,在充分使用资源的情况下才进行限流,而不是静态的提前划分资源(如使用固定限流值),导致在非核心服务流量少、占用资源低的情况下,核心服务无法充分使用资源而导致核心业务的损失。

    • 期望的是核心服务能尽力提供服务,即在发生流控时,应该先完全限制非核心服务的流量,让资源充分让给核心服务使用。

  • 业务平台流量的不同来源渠道,对于业务的价值是不一样的,统一的流控操作,做不到业务价值最大化

    • 当低价值渠道的流量过大,则统一流控,有可能会挤掉高价值渠道的流量,使得高价值渠道的流量被丢弃

  • 同一来源渠道的同一服务,也需要精细化的管控。如在客户端有业务数据缓存和无业务数据缓存的情况下:

    • 在有业务数据缓存的场景下,用户的体验和业务效果可以有较好的保障;而在客户端无业务数据缓存的场景下,如果进行流控,会降低用户体验,影响业务效果

也就是说,上面这些业务场景流量都存在业务价值的差异化。

业务平台需要针对这些业务价值差异化的请求流量做精细化管控,精细化制定限流/服务分级/隔离的策略,来进一步提升业务效果和收益。

▐   业务平台自建网关系统稳定性与成本问题

业务平台支撑其上的众多的垂直业务场景,不同业务场景期望隔离相互之间的问题影响(如集群资源过载、需求流程影响、开发测试发布效率),平台型应用会演进出上层业务的隔离租户架构。为了租户隔离的流量调度,业务平台会自建业务网关。

这些业务平台的 『自建』 网关存在问题:

  • 系统稳定性:

    • 对于业务平台,业务网关与隔离调度是非业务功能性需求,不是考虑的重点不会大投入;并且网关本身的复杂性。

    • 业务平台的自建网关常常成为了业务平台的稳定性风险,各个业务平台的这些自建网关出现问题屡见不鲜。

  • 开发与运维的成本:

    • 对于相同的隔离调度能力,多个业务平台各自实现与维护的解决方案是重复。

    • 各个业务平台需要付出成本自己 开发与维护 自建网关。

业务希望能够隔离,但自建网关带来了系统的稳定性隐患,以及多份的开发和运维成本。希望能够有统一的前置网关横向的解决隔离问题。

▐   突发大流量的稳定性保障

直播、大促会场、首页等业务平台QPS都有数十万QPS甚至百万业务QPS;并且可能突发数倍甚至数十倍大流量,对这样突发流量的防御是个难题。而统一接入网关构筑一道稳定的大坝(千万级QPS容量)并由专业的基础服务团队支撑,前置到接入层的限流能够有效应对这样的突发流量。

双11高可用实战

针对上述的问题, 马克尼(Marconi) 面向业务价值的精细化流量管控解决方案,提供了相应的能力:从统一接入网关的精细化前置流控能力、路由隔离能力到应用容器的按业务服务优先级进行服务分级流控能力,为平台与业务系统提供全面保护。

在今年双11中,不仅解决了上述的平台型应用过去存在的诸多问题,各个系统表现平稳用户体验顺滑,达成了预期的效果;同时作为通用解决方案,也有很多紧密结合业务场景的创新用法。

  • 在流量分发场景中,将 有缓存的回退请求 作为一个流量划分精细化管控,最大化保障了用户的体验和业务价值(精细化限流)

  • 在各类平台/业务对于按照业务优先级做服务分级流控使用方面,业务以 各自灵活划分方式 来对自身服务进行分级流控(自适应服务分级)

    • 如 直播、互动、我的淘宝、淘金币 进一步提升了用户体验和业务价值

    • 其中淘系某个核心服务集群,在高压场景下成功率提升2.5%(单容器最大提升17.8%)

  • 在大促会场场景中,根据 业务线 做路由隔离,保障了业务稳定性,提升了业务接入效率 (精细化路由)

    • 通过前置网关精细化路由隔离能力,将集群隔离出独立支撑不同业务会场的分组。

    • 分组可由各业务方自行运维流量与资源,大促会场业务接入效率有50%的提升。

  • 在大促会场场景中,平台将 主会场页面群 作为一个流量划分,做流控(精细化限流)

    • 会场的流量来源多,引流来源页面群的流量受控,就不再会挤占手淘主要来源的可用资源,也就不会发生不预期的限流。

    • 其中某几个渠道来源比其他来源的流量成交转化要高,确保了系统整体稳定、保证了高转化会场页面请求的可用性。

    • 另外,会场使用的限流能力直接前置到统一接入网关,今年在稳定性保障方面投入的人员较去年节省100+人日。

解决方案在实战中,各个平台/业务可以根据自身的诉求使用全部能力或部分能力的组合,比如:

jAzUz2q.png!mobile

按照流量来源/请求类型 来做精细化前置限流

IjqYni.png!mobile

使用网关层的前置限流+路由能力,以及容器层的自适应流控

riqMvqR.png!mobile

多个APP来源使用网关层的前置限流,容器层的自适应限流+服务分级流控

设计思路

为了能够解决上述问题,总体思路是建立一组通用能力并与业务契合。使平台与业务能够根据各自的特点,以业务领域的维度灵动的组织流量并进行管控,最终达到系统稳定、业务效果与收益提升、用户体验顺滑的目标。

在这里引入三个基本概念:

  • 业务标识

  • 管控粒度

  • 控制能力

通过业务平台请求上携带的业务标识,基础服务提供精细化的管控粒度,以管控业务平台上任意粒度的业务请求流量。

▐   业务标识

业务标识是请求/流量的属性,从业务平台划分流量的方式来看,通常涉及几种类型。

  • 来源标识。或称为调用方标识、用户方标识,用于区分业务请求的不同来源。比如大促会场的页面标识。

  • 业务平台标识。即是业务平台类型,用于区分处理业务请求的不同业务平台。比如大促会场、手淘首页、直播等。

  • 业务运行属性标识。比如手机淘宝首页的请求类型。

业务标识本身是已存在的,并在各个业务中有自己的业务标识结构。这里通过一个一致的、灵活的方式将请求上的各类业务标识解析提取,以便按照业务标识的灵动组合来对请求流量进行任意定制化的划分。

▐   管控粒度

有了业务标识之后,业务平台可以通过业务标识配置、定义出管控粒度。一个管控粒度即一组请求流量的划分单元,针对这一单元进行精细化的管控。

管控粒度包含了一个表达式组件和一组有业务语意的配置信息。每一个业务平台下面都可以定义独立与其他平台,有于自身业务紧密相关的管控粒度。在网关接入层面对海量请求流量,会进行流量的识别,看流量属于那一个/一组管控粒度范围。

引入业务标识与管控粒度,比传统的API网关使用API名、参数来做限流的方式,更能贴合业务,可个性化定制,满足各种业务诉求。

▐   控制能力

有了管控粒度及其划分出的精细化流量之后,可以在管控粒度(精细化流量)上挂载需要的一组控制能力,以完成业务所需的精细化管控的诉求,比如:

  • 手机淘宝首页按请求类型进行精细化的网关前置限流。

  • 大促会场按会场页面标识进行精细化的网关前置限流。

  • 大促会场等平台型业务按接入的业务进行流量路由调度。

  • 直播、互动、淘金币、我的淘宝等业务需按业务定制优先级进行分级流控。

解决方案

结合前文针对平台型业务的问题、解决问题的设计思路,马克尼(Marconi)提供了一套精细化流量管控解决方案。

  • 不以传统API名称或参数这类偏技术的视角做流控和路由,而是以大小可灵动调节的管控粒度来贴合业务做精细化流控、路由隔离、服务分级,满足各类平台与业务的个性化流量管控诉求。

  • 多架构层次(从接入网关到业务应用集群/容器)管控业务流量并提升业务服务效果。

▐   整体架构

Z73iiu3.png!mobile

马克尼(Marconi)精细化流量管控解决方案

业务标识是请求/流量的属性,每一个请求都可以根据标识划分到不同的管控粒度进行管理。通过管控粒度划分出精细化的流量之后,以管控粒度ID为上下文,可以串联起所需的一组控制能力:

  • 网关前置流控能力(管控粒度更加精细化):

    • 解决 面向业务价值的精细化业务流量管控、突发大流量的稳定性保障。

  • 网关路由隔离能力(资源的物理集群隔离):

    • 解决 面向业务价值的精细化业务流量管控、业务平台自建网关的系统稳定性与成本问题。

  • 容器自适应流控能力(容器粒度的负载调节能力):

    • 解决 由流量变化、业务逻辑迭代、人工评估流程中各种不确定性引发的问题/故障。

  • 容器服务分级能力(容器内服务粒度自适应隔离):

    • 解决 面向业务价值的精细化业务流量管控、突发大流量的稳定性保障。

最终,实现业务请求流量的精细化管控诉求,达成业务服务高质量输出的目标。

限流与隔离通过接入层网关做前置处理,能够更精细化、更高效、更强劲的对背后的业务系统进行保护。

网关前置流控能力在业务流量超过阈值后,快速失败,不让请求在系统链路中如幽灵般的游荡最后才超时失败;

网关常常能承载非常高的流量冲击,是单业务系统请求处理能力的成千上万倍,如同大坝一般。

▐   服务分级

诺亚(Noah)自适应流控 面向系统主要的CPU资源,基于反馈控制算法,进行自适应系统负载调节。过去一年经过了各类大促考验,非常成熟。而今年在能力上也大力挖掘,面向业务服务等级作出差异化的分级流控(自适应隔离),使得业务系统在面对大流量时,在保障系统稳定性的前提下,服务效果收益有最佳表现。

BFbyIfE.png!mobile

服务分级保护方案效果

▐   业务效果

马克尼(Marconi)在稳定性、成本、效率以及体验均有突出表现,特别业务效果与收益方面有显著提升。

  • 精细化前置限流:

    • 会场使用的限流能力直接前置到统一接入网关,今年在稳定性保障方面投入的人员较去年节省100+人日。

    • 接入层网关构筑的大坝能防御成千上万倍于业务负载流量(如 由于前端Bug放大请求打了900WQPS的异常流量,而业务本身仅10WQPS量级的流量预估),前置流控保护业务应用未被冲垮,再配合自适应流控能力能提供 绝对防御能力。

  • 精细化路由隔离:

    • 会场平台的业务接入效率提升50%。

    • 平台型业务将不同业务/场景的流量进行物理资源隔离/分流,避免某个业务/场景出现问题引发整个平台集群整体故障。

  • 服务分级:

    • 直播平台主要服务(直播间、查看宝贝口袋列表)的集群成功率提升2.5%(单容器最大提升17.8%)。

    • 可避免单个问题服务占满系统资源导致应用全局服务出现问题(如下游接口出RT 增加、写日志过多出问题、甚至其他未知的阻塞/延时增加问题)。

马克尼(Marconi) 在2020双11中,保障淘系(淘宝、天猫等)核心业务平台 (如 首页、会场、直播、互动、我的淘宝 等) 的稳定性,多架构层次(接入网关,从业务应用集群到容器层面)管控业务流量并提升业务服务效果,给予用户顺滑的体验;提升了淘系(及阿里巴巴集团更多的BU)的稳定性底盘,成为应用稳定性保障的核心能力;推动了业界在大型分布式在线业务系统的高可用/稳定性保障进展;为今年双11创新纪录提供保障!

淘系架构团队

欢迎加入淘系架构团队,团队成员大牛云集,有阿里移动中间件的创始人员、Dubbo核心成员、更有一群热爱技术,期望用技术推动业务的小伙伴。

淘系架构团队,推进淘系(淘宝、天猫等)架构升级,致力于为淘系、整个集团提供基础核心能力、产品与解决方案:

  • 业务高可用的解决方案与核心能力(精细化流量管控Marconi平台: 为业务提供自适应流控、隔离与熔断的柔性高可用解决方案,站点高可用: 故障自愈、多机房与异地容灾与快速切流恢复)

  • 新一代的业务研发模式FaaS(一站式函数研发Gaia平台)

  • 下一代网络协议QUIC实现与落地

  • 移动中间件(API网关MTop、接入层AServer、消息/推送、配置中心等等)

期待一起参与加入淘系基础平台的建设~

简历投递至:postbox::哲良 [email protected] (淘系架构-基础架构Leader)

✿    拓展阅读

qEJRNzN.png!mobile

QvQFnmV.png!mobile

RBb67vm.png!mobile

作者| 李鼎(哲良)、许泽彬(泽彬)、熊政(八风) 

编辑| 橙子君

出品| 阿里巴巴新零售淘系技术

veE3IrM.jpg!mobile

uyQNNnZ.png!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK