探索阿里巴巴如何打造共享服务中台的稳定性——走进《企业IT架构转型之道》系列3

简介:


image

前面两篇介绍了共享服务中台的业务价值以及建设原则,本篇内容将主要介绍当服务中台支撑越来越多业务场景后,在打造平台稳定性能力方面所探索出的一系列创新技术以及成果。整个稳定性体系包含的内容非常广,机房布线、网络通信、硬件部署、应用架构、数据容灾等都与稳定性相关,这里我们提到的稳定性主要指从共享服务中台的角度,实现了对中台应用架构以及平台自身的精细化管控以及保障,主要措施包括容量压测和评估、全链路压测、流量的限流和降级以及业务一致性平台。


容量压测和评估

想了解一个平台的容量,在传统的常规性能测试以及系统容量评估时,一般是通过需求分析得出压测的业务场景以及不同场景在压测中的比例关系,或者是凭经验对业务进行分析而得出经验型的测试模型,再通过测试工具进行模拟压测,以此来判断该系统的最大负载。

然而该经验型的测试方法不仅测试场景简单,并且测试结果大部分依赖测试人员的水平,当业务频繁变化时导致多场景模拟成本巨大甚至无法完整的评估。为了更加精准的了解平台容量,科学利用服务器资源,阿里巴巴技术团队经过多年的实施与验证总结出了一套在分布式应用架构下应用系统容量测试与评估的自动化平台。

应用系统容量预测包括容量压测以及容量分析预测两部分:容量压测通过将线上真实的流量引流到压测目标机器上,并不会对本系统及下游系统带来额外的流量,也不需要准备测试数据、压测系统,利用HSF服务框架对于服务路由权重的支持,通过对服务路由权重的逐步增加达到逐步增加某服务单机请求数量的目的,以此来验证单机服务实例所能提供的最大QPS处理值;容量规划平台则是利用服务的单机QPS数据,结合多年来沉淀的算法,对各种服务器机型处理能力的差异化分析,来更加准确的预测大促活动需要部署的服务器资源,提升平台精细化管控能力的同时也大大的节省了资源成本。


全链路压测平台

全链路压测是阿里全系统在每个环节都参加的双11实战演习,双11活动09年开始举办,但实际上在2013年前,无人能确保平台全链路的高可靠性,容量压测以及规则仅仅是针对单个应用进行评估,以及后面即将提到的限流、降级等措施重点在于对平台的稳定性保障,为了彻底解决这个难题,从2013年开始,阿里巴巴开始了称为全链路压测的工作,并很快成为集团大促备战最重要的武器,在历年的全链路压测过程中,提前暴露了诸多环节存在的问题。

全链路压测平台通过应用系统改造使线上环境可以同时处理正常流量和测试流量,获得真实的线上实际承载能力数据。进行全链路压测,涉及范围非常广泛包括网络、应用、数据库以及安全等都需要改造,下面简单介绍该平台:

  1. 基础数据抽取——为了模拟尽可能真实,全链路压测以线上数据为数据源进行采样、过滤和脱敏,数据量与线上数据保持同一个数量级并在数据库上进行区间隔离;
  2. 链路与模型构造——链路代表要压测的范围,链路的访问量级、链路的参数集合以及基础数据的特性一起构造了压测的模型;
  3. 链路验证——在全链路压测平台建设过程中,验证环节耗费了项目组大量的时间和精力,电子商务业务特性复杂,下订单以及支付等上百条链路,每一条链路都需要在平台上进行验证,目前链路验证已经集成到平台当中,能够自动化完成对压测链路的验证;
  4. 业务系统改造——在业务系统针对压测流量进行改造,比如为了支持压测链路的重复执行、下游写流量的拦截、防止污染BI报表和线上推荐算法等场景;
  5. 数据平台——全链路压测的基地;
  6. 流量平台——全链路压测的CPU,主要由全链路压测操控中心以及压测引擎两大部件构成;
  7. 影子表——为了不污染线上的正常数据,在同一个数据库实例上对数据库表建同样结构的影子表来进行数据隔离;
  8. 中间件改造——全链路压测需要所有中间件的协议都支持对压测流量的识别,使得压测标识能够随着调用传递下去,使得下游的应用、基础中间件和存储都能够识别压测流量;
  9. 安全机制——安全机制分为两层:第一层是安全的监控和防护,建立非法流量的监控机制、防止数据错乱;第二层是对压测流量的安全过滤,针对压测流量放松安全过滤,使得压测流量不被判别为攻击流量。


流量的限流和降级

限流的作用相当于保险丝,当过载的时候掐掉一些流量,让系统有能力集中资源以较快的速度处理平台能力范围内的客户。比如某次活动,预计100万人的流量结果涌来千万用户,容易使得后端的服务器直接满负荷运算最终造成整个平台无法响应,限流之后仅让100万用户进入后端的处理流程,给被阻拦的用户返回限流页面,限流页面可以与活动页面保持一致在一定程度上减低用户的失落体验。

阿里巴巴通过在Nginx上实现的扩展组件TMD(Taobao Missile Defense)实现了接入层限流的主要工作,主要通过域名类限流、cookie限流、黑名单等一些安全策略来实现。对于服务层的限流控制,主要通过限流平台Sentinel控制,Sentinel平台是对资源调用的控制平台,主要涵盖了授权、限流、降级、调用统计监控四大模块。同时Sentinel平台还提供降级功能,除了通过代码中修改服务调用逻辑的值外,也可以通过Sentinel控制台提供的降级规则的配置来开启服务的降级模式。


业务一致性平台

业务与数据不一致的问题原因非常复杂,远程服务调用失败、数据库保存失败、MQ消息发送失败或者程序设计自身的问题都会导致业务数据异常。为了解决这个问题,实时业务审计BCP(Business Check Platform)应运而生,BCP平台并不仅限于交易类业务,也适合其他对业务稳定性要求比较高的领域,通过事件模式,把业务数据变化触发的消息转换为相应业务类型的事件,放入到事件执行队列进行规则检查。
BCP平台主要实现了4个目标,第一:高实时性地发现业务脏数据或错误逻辑;第二:让各应用快速接入BCP平台;第三:整合订正工具,形成规范的脏数据订正流程;第四:实现了对新业务上线的实时监控。BCP平台让整个平台稳定性能力从技术维度延伸到了业务维度,是平台稳定性体系中一个非常重要的拼图。

内容摘录于《企业IT架构转型之道》,限于篇幅原因,本篇有关流量调度以及业务开关环节未做介绍,有兴趣的读者可以阅读阿里巴巴中间件首席架构师钟华著作的《企业IT架构转型之道》一书,此系列就此结束,前两篇的文章链接如下,欢迎一起探讨:
阿里巴巴中台架构的建设原则——走进《企业IT架构转型之道》系列2
阿里巴巴中台架构的业务价值思考——走进《企业IT架构转型之道》系列1

作者:钟华(古谦)
阿里巴巴中间件首席架构师,15年中间件领域行业经验。对传统企业IT建设和互联网架构都有较为深入的理解,有着扎实的理论基础和丰富的实战经验,多次作为总架构师协助大型传统企业打造业务中台项目,为企业实现“互联网+”转型提供了科学的发展方向和强有力的技术支持,项目涉及政府、制造业、金融、交通、媒体等多个领域。

相关文章
|
4月前
|
存储 缓存 安全
某鱼电商接口架构深度剖析:从稳定性到高性能的技术密码
某鱼电商接口架构揭秘:分层解耦、安全加固、性能优化三维设计,实现200ms内响应、故障率低于0.1%。详解三层架构、多引擎存储、异步发布、WebSocket通信与全链路防护,助力开发者突破电商接口“三难”困境。
|
6月前
|
机器学习/深度学习 人工智能 监控
大型动作模型LAM:让企业重复任务实现80%效率提升的AI技术架构与实现方案
大型动作模型(LAMs)作为人工智能新架构,融合神经网络与符号逻辑,实现企业重复任务的自动化处理。通过神经符号集成、动作执行管道、模式学习、任务分解等核心技术,系统可高效解析用户意图并执行复杂操作,显著提升企业运营效率并降低人工成本。其自适应学习能力与上下文感知机制,使自动化流程更智能、灵活,为企业数字化转型提供坚实支撑。
446 0
大型动作模型LAM:让企业重复任务实现80%效率提升的AI技术架构与实现方案
|
6月前
|
人工智能 数据可视化 算法
企业想做数智化,数据仓库架构你得先搞懂!
在数智化浪潮下,数据驱动已成为企业竞争力的核心。然而,许多企业在转型过程中忽视了数据仓库这一关键基础。本文深入解析数据仓库的重要性,厘清其与数据库的区别,详解ODS、DWD、DWS、ADS分层逻辑,并提供从0到1搭建数据仓库的五步实战方法,助力企业夯实数智化底座,实现数据治理与业务协同的真正落地。
企业想做数智化,数据仓库架构你得先搞懂!
|
8月前
|
存储 运维 Java
官宣 | Fluss 0.7 发布公告:稳定性与架构升级
Fluss 0.7 版本正式发布!历经 3 个月开发,完成 250+ 次代码提交,聚焦稳定性、架构升级、性能优化与安全性。新增湖流一体弹性无状态服务、流式分区裁剪功能,大幅提升系统可靠性和查询效率。同时推出 Fluss Java Client 和 DataStream Connector,支持企业级安全认证与鉴权机制。未来将在 Apache 孵化器中继续迭代,探索多模态数据场景,欢迎开发者加入共建!
816 8
官宣 | Fluss 0.7 发布公告:稳定性与架构升级
|
6月前
|
存储 弹性计算 运维
AI 时代下阿里云基础设施的稳定性架构揭秘
十五年磨一剑,稳定性为何是今天的“命门”?
|
7月前
|
消息中间件 负载均衡 中间件
⚡ 构建真正的高性能即时通讯服务:基于 Netty 集群的架构设计与实现
本文介绍了如何基于 Netty 构建分布式即时通讯集群。随着用户量增长,单体架构面临性能瓶颈,文章对比了三种集群方案:Nginx 负载均衡、注册中心服务发现与基于 ZooKeeper 的消息路由架构。最终选择第三种方案,通过 ZooKeeper 实现服务注册发现与消息路由,并结合 RabbitMQ 支持跨服务器消息广播。文中还详细讲解了 ZooKeeper 搭建、Netty 集群改造、动态端口分配、服务注册、负载均衡及消息广播的实现,构建了一个高可用、可水平扩展的即时通讯系统。
851 0
|
4月前
|
运维 Prometheus 监控
别再“亡羊补牢”了!——聊聊如何优化企业的IT运维监控架构
别再“亡羊补牢”了!——聊聊如何优化企业的IT运维监控架构
211 8
|
7月前
|
文字识别 运维 监控
架构解密|一步步打造高可用的 JOCR OCR 识别服务
本文深入解析了JOCR OCR识别服务的高可用架构设计,涵盖从用户上传、智能调度、核心识别到容错监控的完整链路,助力打造高性能、低成本的工业级OCR服务。
332 0
架构解密|一步步打造高可用的 JOCR OCR 识别服务
|
7月前
|
人工智能 自然语言处理 供应链
AI时代企业难以明确大模型价值,AI产品经理如何绘制一张‘看得懂、讲得通、落得下’的AI产品架构图解决这一问题?
本文产品专家系统阐述了AI产品经理如何绘制高效实用的AI产品架构图。从明确企业六大职能切入,通过三层架构设计实现技术到业务的精准转译。重点解析了各职能模块的AI应用场景、通用场景及核心底层能力,并强调建立"需求-反馈"闭环机制。AI产品专家三桥君为AI产品经理提供了将大模型能力转化为商业价值的系统方法论,助力企业实现AI技术的业务落地与价值最大化。
382 0
|
10月前
|
人工智能 供应链 调度