作者|哲良、八风、泽彬
出品|阿里巴巴新零售淘系技术部

诺亚(Noah) 自适应流控解决方案 基于自动控制算法,解决了人工限流配置疏漏或过时的痛点,大幅提升应用抵抗流量冲击的能力。在刚过去的双11中,诺亚(Noah)保障了大量业务应用系统,有超过 15K 的容器大规模部署;稳定性上最高可提升 20 倍于业务负载流量的上限 QPS ;最高可提升 100% 的资源利用率;同时优化了体验与效率。提升淘系(及更多BU)的稳定性底盘,成为应用稳定性保障的核心能力,推动了业界在大型分布式在线业务系统的高可用/稳定性保障的进展。

背景

随着业务的不断发展,应用数量、拓扑依赖与复杂性都在持续增长,流量模型的有效预测也变得更加困难。系统与流量的不确定性都会导致系统容量评估疏漏或评估过时。这些情况在双11、春晚等大型复杂活动中会更加的突显。

面向流量的「意义」

流量会受到业务的影响而发生强变化的,这种变化是不确定的且在频繁发生的。

应对这种不确定性需要基础架构有可靠的、自适应的方式,能够

实时接受与感知变化

作出保护响应来抵御变化,自适应的、柔性的实施系统/架构

然后是弹性,针对基础资源做实时调节

这样才能具备有效的抵抗力、适应力,活着是前提,有了这个前提,才有机会将基础资源驱动起来(弹性),而业务无需耗费心力去关注这种不确定性带来的业务可用性风险。

关于高可用的重新思考

业界在讨论高可用时,主要说的是资源失效的对应方式,比如通过应用集群、主备、热切换等应对单机失效;通过单元化架构、异地多活等应对单机房/地域失效。

从上面对资源失效的问题与对策可以看出,高可用所要解决的核心问题是保证服务不挂,准确的说是要大大降低服务挂掉的概率。

到了今天我们的应用架构,我们的可用性痛点问题是什么呢?对于你自己开发的应用,或听到某某服务挂了时,你会担心或者想到什么?在可用性方面,相信更多的回答会是『服务压跨了』,典型的是问题场景是『大流量、突发流量』下,比如:直播场景中主播一声吼,后端流量飙升;社交媒体场景中明星官宣结婚,带来热点流量暴涨;电商运营场景中,秒杀活动大流量脉冲;互动玩法场景中持续不断发布互动活动,一个新的活动导致系统整体可支撑的QPS可能下降很多。这些场景与问题在日常应用开发和服务保障过程中,应该是深有痛点吧 :)

在应用架构上,业界对面向流量的可用性,不如像面向资源一样得到充分的关注、有着丰富成熟的思路和广泛有效的实践,我们有意于改变 面向流量的可用性 这个主题的现状,更多的直面问题、探索思路、实践推进。

传统方案有什么问题?

面向流量的可用性现有的应对方式是静态限流。

传统的针对 QPS 限制的静态限流方法的问题:

  • 流量/请求

依赖 请求模型的准确评估,即测试流量的请求大小与实际需保持一致。
热点流量,如热点用户被频繁访问/爆冷商品等。运营导致用户动线走了较重的逻辑分支。

依赖 来的流量的准确预估。
但我们要承认,流量一定无法准确被评估,系统会被摸死(即拒绝操作导致的过载)。

  • 业务代码逻辑

依赖 测试之后系统自身和其下游依赖的逻辑不变,性能需保持一致。
但是业务总是在演进,除非全网封网,否则限流阈值一上线就已经过时了。

  • 资源

依赖 各台机器性能完全一致且稳定不变。

机器型号不同,处理能力是不可能做到完全一致的。

虚拟化/容器化之间有影响,你无法控制你的邻居会做什么。

  • 流程

依赖 事先人工准确执行了评估过程
但人总是靠不住的,只要人工来执行就一定会疏漏、出错。

另外对于长尾应用/非核心应用,支持力度没有保障,人力资源总是有限的。

传统方法无法解决人工评估过时导致的流量与容量不一致的问题,我们需要一种能够实时评估系统容量,并就地对流量进行控制的解决方案。

诺亚(Noah)自适应流控

面对系统稳定性问题,诺亚(Noah) 自适应流控解决方案采用不同于业界传统的针对QPS限制的静态限流方法,首次以自动控制算法为核心手段,提供自适应流控解决方案,解决了限流配置过时的痛点,大幅提升应用抵抗流量冲击的能力,极度简化了相关配置工作,同时在系统资源利用率、用户体验、运维效率等方面均有大幅优化提升。

诺亚(Noah)自适应流控解决方案

在绝大部分情况下,CPU利用率作为资源供给的主要信号是最为直接的。诺亚(Noah) 自适应流控解决方案即是以自动控制CPU资源为核心方法的,其具备了一下3点优势:

在系统稳定性控制效果方面表现为精准和有效的控制,并具备很强的可解释性。

没有提前的人工评估,便没有提前评估的过时与人工评估的疏漏和错误。

应用场景更为广泛,不受异步场景约束,可同时使用于同步和异步场景。

诺亚(Noah) 自适应流控解决方案能够实时自动评估 QPS ,在技术方案上使用自适应性来解决业务流量的不确定性。

业务落地

作为淘宝应用架构升级(代号Tango:Taobao Architecture Next GeneratiOn)在稳定性上的核心产品,诺亚(Noah)在刚刚过去的双11大促过程中,保障大量业务应用系统,有超过15K的容器大规模部署(涉及淘宝、天猫、聚划算、盒马、猫超、优酷等等众多业务)。提升系统稳定性、提升资源利用率、优化体验与效率,提升了淘系(及更多BU)的稳定性底盘,成为应用稳定性保障的核心能力,推动了业界在大型分布式在线业务系统的高可用/稳定性保障的进展。

诺亚(Noah) 自适应流控解决方案目前已上线超过9个月,在线上实战和全链路压测中,诺亚保护了大促会场、直播、导购等等核心业务场景;应用系统在出现容量缺失30%或近20倍超大流量脉冲场景下仍保持稳定运行。

诺亚(Noah)自适应流控的效果收益:

  • 可用性提升

压垮QPS上限,最高可提升 20倍 于业务负载流量。

在大流量压力下降后,1秒 快速恢复服务。

大流量压力下,仅需直接扩容机器 一步即可,无需紧急调整限流。

  • 用户体验的优化

应用在高负载情况下,服务成功率最高可提升 2.7倍,同时响应时间维持正常水平不劣化。

  • 成本的优化

资源利用率最高可提升 100%(去除为了稳定性/不确定性而留的资源冗余)

  • 效率提升

全链路压测/性能压测更顺畅。无需人工限流阈值设置,避免人工评估错误导致系统被压垮后需要大量调整时间。

自适应流控的实际控制效果:在流量飙升/大流量压力时,CPU稳定控制在阈值,且服务RT正常

诺亚后续的发展

目前诺亚(Noah) 自适应流控解决方案保障了大量业务应用系统,提升稳定性、提升资源利用率、优化体验与效率,提升淘系(及更多BU)的稳定性底盘,成为应用稳定性保障的核心能力,推动了业界在大型分布式在线业务系统的高可用/稳定性保障的进展。

对未来更体系化建设的几点展望:

  • 自适应能力由限流拓展到隔离/熔断等更多稳定性能力,如

自适应线程资源隔离

自适应服务比例

自适应服务熔断

  • 由单机的自适应限流拓展到链路级,尤其是客户端流量入口接入层

与接入层协同,让入口流量与应用的处理容量自适应匹配

确定性地保障面向流量的高可用

  • 自适应控制流量拓展到自适应伸缩容

流量控制与处理资源控制(伸缩容)协同

无论是流量的控制还是资源的控制,都是为了让处理流量与资源容量匹配

  • 保障系统不过载,提升稳定性与业务请求的成功率

原文链接
本文为云栖社区原创内容,未经允许不得转载。

淘宝如何保障业务稳定性——诺亚(Noah)自适应流控相关推荐

  1. 手机淘宝轻店业务 Serverless 研发模式升级实践

    简介:随着 Serverless 在业界各云平台落地,阿里内部 Serverless 研发平台.各种研发模式也在业务中逐步落地,如火如荼.在此契机下,淘系团队启动了轻店 Serverless 研发模式 ...

  2. tinyurl淘宝短链接业务

    ##淘宝短链接如何设计? 体验淘宝短链接业务场景 场景1:淘宝短信 你们应该收到淘宝的短信 [天猫]有优惠啦!黄皮金煌芒果(水仙芒)带箱10斤49.8元! 核薄无丝很甜喔!购买: c.tb.cn/c. ...

  3. 手机淘宝短视频业务「哇哦视频」迁移上 FaaS 笔记公开

    导读:2019 年,在阿里巴巴集团内部技术论坛上对于 Serverless 和 FaaS 的讨论非常火热. 限时福利:张磊.李响等人撰写的 <CNCF X 阿里巴巴云原生技术公开课> 限时 ...

  4. 淘宝客户端高性能高稳定性施用框架的构架

    看到淘宝如此强大的客户端,我不禁想你淘宝客户端的张毅(江湖名号:陶钧)在ADC中对于淘宝框架剖析讲解: 议程包含三大点: 淘宝 Android客户端开发的特点和挑战 HOW TO: TaoBao Cl ...

  5. 淘宝直播小窗如何开启?怎么免费引流?

    我们在看淘宝直播的时候,有时候会需要回复信息,或是用手机打开别的软件,干别的事情.这时候就需要把直播间调整为小窗口.那淘宝直播小窗如何开启? 1.进入手机点击[系统设置]. 2.进入设置界面点击[应用 ...

  6. 淘宝天猫商家运营,直通车+超级推荐推广引流,快速引爆店铺流量

    一.直通车 新品推广阶段 1.测款 测款阶段最重要的是观察宝贝的点击率,另外还要留意宝贝的收藏和加购,如果商家想了解具体的收藏加购人数,可以通过V兔的指数换算,把指数换算成具体数值. 2.提升权重 权 ...

  7. 淘宝API接口,交易,退款退货,物流数据获取,erp系统对接交易订单

    taobao.trade.get 获取单笔交易的部分信息 公共请求参数: 名称 类型 必须 描述 method String 是 API接口名称,例如:taobao.trade.get app_key ...

  8. 淘宝团队是如何进行稳定性测试的?

    稳定性测试有哪些好用的方法和工具? 安卓绿色联盟的稳定性标准是如何制定的? 淘宝团队如何进行稳定性测试? 阿里巴巴高级测试开发专家梁剑钊为你解读. 梁剑钊 阿里巴巴高级测试开发专家 有10年以上质量保 ...

  9. 淘宝无货源与亚马逊无货源模式谁更好做?

    这段时间很多做电商的朋友都在问我一个问题--亚马逊无货源模式好做吗?而这样的问题大多来自国内淘宝.京东.拼多多或是其他电商平台的一些卖家,他们对于无货源模式都或多或少的接触过一些,虽然算不上成熟,但整 ...

最新文章

  1. LaxTex-----参考文献中同名作者被默认缺省的问题
  2. SpringBoot中请求映射的原理(源码)
  3. AjaxPro对象参数传递
  4. 数据结构与算法专题——第十题 输入法跳不过的坎-伸展树
  5. VMware10出现VMware Workstation 不可恢复错误: (vmx)
  6. eclipse下创建Maven项目
  7. python matplotlib画散点图_python matplotlib库绘制散点图例题解析
  8. java 高级网络编程_java高级网络编程—客户端与服务器
  9. 严格单调递增与非严格之间的转换
  10. python是什么意思-python是什么意思
  11. PowerDesigner--comment和name互相复制
  12. 201521123058 软工阅读第二次作业
  13. 150929-拖延高于懒-HTML(End)
  14. java数据结构——抽象数据类型
  15. 怎么学单片机,怎么入门
  16. 如何用云计算提高员工工作效率
  17. 牛客IOI周赛17-普及组 数列统计(组合数)
  18. c语言 函数计算0869,c语言编程- 微积分程序
  19. jme-再现虎式坦克
  20. 【多目标优化】2. 非支配排序遗传算法 —(NSGA、NSGA-II)

热门文章

  1. pytorch 指定卡1_在pytorch中指定显卡
  2. 二陈丸配什么吃不上火_宝妈一个人带孩子是什么感觉?前三种场景,不知道是怎么熬过来的...
  3. 新手如何学习C语言/C++,教你一年时间是拿到年薪50万
  4. python音乐下载器交互界面_基于Python实现下载网易音乐代码实例
  5. 中缀表达式转后缀表达式两位数_再见,正则表达式!
  6. 大工14秋《计算机应用基础》在线测试2,2017大工《计算机应用基础》在线测试2答案.doc...
  7. 福建高职计算机知识点,2013福建高职单招 计算机类专业 知识试题
  8. 两条边延长角会有什么变化_田园易经:什么样的风水环境会影响人的健康?
  9. 100个数学家如何集体越狱??
  10. 2021年自然语言处理(NLP)算法学习路线!