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


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

诺亚(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)的稳定性底盘,成为应用稳定性保障的核心能力,推动了业界在大型分布式在线业务系统的高可用/稳定性保障的进展。

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

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

自适应线程资源隔离

自适应服务比例

自适应服务熔断

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

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

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

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

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

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

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


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

倒计时1天 | 张钹院士领衔,AI开发者大会20大论坛全攻略!

2020年7月3—4日,由 CSDN 主办的第三届 AI 开发者大会(AI ProCon 2020)(大会官网:https://aiprocon.csdn.net/)将以线上直播的形式与大家相见。本次大会历时2天,一次性设立6大主题、20大精彩分论…

使用html5+的plus调起相机拍照,使用canvas压缩图片,转成base64传到后台

html代码&#xff1a; <div class"form-com door"><label for"">门头照&#xff1a;</label><a href"javascript:void(0);" onclick"getImage(1)"><img id"img1" class"img" src&quo…

1亿人点赞的晚会,如何做技术沉淀?

阿里妹导读&#xff1a;今年是双11的第11年&#xff0c;猫晚的第5年。今年的天猫双11狂欢夜(简称“猫晚”)有超200个国家和地区通过优酷APP观看猫晚直播。5144万人通过猫晚公益直播间观看明星卖农货&#xff0c;网友在淘宝直播间点赞1亿次&#xff0c;海外艺人参与的节目超过了…

K8s 集群节点在线率达到 99.9% 以上,扩容效率提升 50%,我们做了这 3 个深度改造

导读&#xff1a;2019 年阿里巴巴核心系统 100% 以云原生方式上云&#xff0c;完美地支撑了 双11 大促。这次上云的姿势很不一般&#xff0c;不仅是拥抱了 Kubernetes&#xff0c;而且还以拥抱 Kubernetes 为契机进行了一系列对运维体系的深度改造。 Kubernetes 作为云原生的最…

IDC:移动云进入云运营服务市场前五!

据IDC最新发布的《中国云运营服务市场跟踪&#xff0c;2019H2》显示&#xff0c;2019年下半年中国云运营服务市场规模达到107亿&#xff0c;同比增长27.9%。其中&#xff0c;移动云在全国云运营服务市场份额中占比4.9%&#xff0c;排名进入前五。什么是云运营市场服务&#xff…

三级联动

引入插件的css和js代码&#xff1a; <link href"./css/LArea.css" rel"stylesheet" > <script src"./js/LAreaData1.js"></script> <script src"./js/LArea.js"></script> html代码&#xff1a; <…

Attribute “singleton” must be declared for element type “bean”.

文章目录一、分析定位1.异常现象2.分析定位二、解决方案2.1.找坐标2.3. 找jar包2.3. 打开jar包2.4. 找目录2.5. 编辑xfire.xml2.6. 编辑xfireXmlBeans.xml一、分析定位 1.异常现象 Attribute “singleton” must be declared for element type “bean”. 2.分析定位 因为&a…

高德JS依赖分析工程及关键原理

一、背景 高德 App 进行 Bundle 化后&#xff0c;由于业务的复杂性&#xff0c;Bundle 的数量非常多。而这带来了一个新的问题——Bundle 之间的依赖关系错综复杂&#xff0c;需要进行管控&#xff0c;使 Bundle 之间的依赖保持在架构设计之下。 并且&#xff0c;为了保证 Bu…

为了这个技术,操作系统把 CPU 害惨了!

来源 | 编程技术宇宙责编 | Carol封图 | CSDN 下载自视觉中国内存访问瓶颈我是CPU一号车间的阿Q&#xff0c;前一阵子我们厂里发生了一件大喜事&#xff0c;老板拉到了一笔投资&#xff0c;准备扩大生产规模。不过老板挺抠门的&#xff0c;拉到了投资也不给我们涨点工资&#x…

一个周内上线50个增长策略,竟然能这么高效!

导读&#xff1a;年初的一个晨会上&#xff0c;用户增长负责人湘翁问我说&#xff1a;一个周内上线50个增长策略&#xff0c;技术兄弟们能做到么&#xff1f; 在闲鱼用户增长业务上的实验 闲鱼的用户增长业务具有如下现状&#xff1a; 闲鱼的卖家都是普通小卖家&#xff0c;而…

cannot convert value of type ‘org.codehaus.xfire.spring.editors.ServiceFactoryEditor

文章目录一、分析定位1.异常现象2. 分析定位二、解决方案2.1.找坐标2.3. 找jar包2.3. 打开jar包2.4. 找目录2.5. 编辑customEditors.xml一、分析定位 1.异常现象 cannot convert value of type ‘org.codehaus.xfire.spring.editors.ServiceFactoryEditor 2. 分析定位 原因…

网商银行首席架构师余锋:网商银行的每一笔贷款都是AI贷款

11月28日&#xff0c;在2019年度观察家金融峰会上&#xff0c;网商银行首席架构师余锋表示&#xff0c;网商银行在人工智能领域一直在探索新的应用方向&#xff0c;目前网商银行的每一笔贷款都是AI贷款。 网商银行是国内首家运行在云上的银行&#xff0c;没有线下网点&#xf…

解密 云HBase时序引擎OpenTSDB 优化技术

逝者如斯夫&#xff0c;不舍昼夜。 —— 孔子 时间如流水&#xff0c;一去不复返。自古不乏对时间流逝的感慨&#xff0c;而现代已经有很多技术记录流逝的过去。我们可以拍照&#xff0c;可以录像&#xff0c;当然还可…

官宣!CSDN 重磅发布「AI开源贡献奖Top5」「AI新锐公司奖Top10」「AI优秀案例奖Top30」三大榜单...

2020 年无疑是特殊的一年&#xff0c;AI 在开年的这场“战疫”中表现出惊人的力量。站在“新十年”的起点上&#xff0c;CSDN发起【百万人学AI】评选活动。我们继续聚焦AI的技术落地&#xff0c;关注开源和新生的力量。作为CSDN第三届AI评选活动&#xff0c;本次活动受到数百家…

SpringBoot2 整合 XFIRE 服务端和客户端

文章目录一、集成XFIRE1. 版本选型2. 导入依赖3. 注入XFireSpringServlet4. 创建一个xml文件5. 使用ImportResource注入xml6. 创建WebService接口6. 创建实现类7. 添加配置类8. 工具类二、XFIRE 发布服务2.1. 运行项目2.2. 异常解决2.3. 测试验证三、XFIRE客户端开源源码.一、集…

css3动画过渡按钮

css(css代码是网上找的)和html代码&#xff1a; .mui-switch {width: 52px;height: 31px;position: relative;border: 1px solid #dfdfdf;background-color: #fdfdfd;box-shadow: #dfdfdf 0 0 0 0 inset;border-radius: 20px;border-top-left-radius: 20px;border-top-right-ra…

阿里云上万个 Kubernetes 集群大规模管理实践

内容简介&#xff1a; 阿里云容器服务从2015年上线后&#xff0c;一路伴随并支撑双十一发展。在2019年的双十一中&#xff0c;容器服务ACK除了支撑集团内部核心系统容器化上云和阿里云的云产品本身&#xff0c;也将阿里多年的大规模容器技术以产品化的能力输出给众多围绕双十一…

SpringBoot2 整合 AXIS 服务端和客户端

文章目录一、服务端1. 版本选型2.导入依赖3. SERVLET4. 接口5.实现类6. 配置工厂7.启动类8. WEB-INF目录18. WEB-INF目录29. /目录19. /目录210. wsdd11. 测试验证二、客户端开源源码.一、服务端 1. 版本选型 阿健/框架版本spring-boot2.5.4axis1.4axis-jaxrpc1.4commons-dis…

地理文本处理技术在高德的演进(下)

在【上篇】里&#xff0c;我们介绍了地理文本处理技术在高德的整体演进&#xff0c;选取了几个通用query分析的点进行了介绍。下篇中&#xff0c;我们会选取几个地图搜索文本处理中特有的文本分析技术做出分析&#xff0c;包括城市分析&#xff0c;wherewhat分析&#xff0c;路…