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

本文涉及的产品
性能测试 PTS,5000VUM额度
简介:


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建设和互联网架构都有较为深入的理解,有着扎实的理论基础和丰富的实战经验,多次作为总架构师协助大型传统企业打造业务中台项目,为企业实现“互联网+”转型提供了科学的发展方向和强有力的技术支持,项目涉及政府、制造业、金融、交通、媒体等多个领域。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
打赏
0
0
0
0
73533
分享
相关文章
文生图架构设计原来如此简单之社区与共享机制
工作流共享是文生图应用社区建设的核心功能,它使用户能够分享创作经验和技巧,形成知识共享生态。工作流序列化与存储设计需要解决复杂工作流的高效表示问题。
65 10
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
文生图架构设计原来如此简单之分布式服务
想象一下,当成千上万的用户同时要求AI画图,如何公平高效地处理这些请求?文生图/图生图大模型的架构设计看似复杂,实则遵循简单而有效的原则:合理排队、分工明确、防患未然。
95 14
文生图架构设计原来如此简单之分布式服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
431 69
从单体到微服务:如何借助 Spring Cloud 实现架构转型
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
510 1
分布式系统架构3:服务容错
分布式系统因其复杂性,故障几乎是必然的。那么如何让系统在不可避免的故障中依然保持稳定?本文详细介绍了分布式架构中7种核心的服务容错策略,包括故障转移、快速失败、安全失败等,以及它们在实际业务场景中的应用。无论是支付场景的快速失败,还是日志采集的安全失败,每种策略都有自己的适用领域和优缺点。此外,文章还为技术面试提供了解题思路,助你在关键时刻脱颖而出。掌握这些策略,不仅能提升系统健壮性,还能让你的技术栈更上一层楼!快来深入学习,走向架构师之路吧!
115 11
云原生技术在现代IT架构中的转型力量####
本文深入剖析了云原生技术的精髓,探讨其在现代IT架构转型中的关键作用与实践路径。通过具体案例分析,展示了云原生如何赋能企业实现更高效的资源利用、更快的迭代速度以及更强的系统稳定性,为读者提供了一套可借鉴的实施框架与策略。 ####
83 20
云原生之旅:从传统架构到容器化服务的演变
随着技术的快速发展,云计算已经从简单的虚拟化服务演进到了更加灵活和高效的云原生时代。本文将带你了解云原生的概念、优势以及如何通过容器化技术实现应用的快速部署和扩展。我们将以一个简单的Python Web应用为例,展示如何利用Docker容器进行打包和部署,进而探索Kubernetes如何管理这些容器,确保服务的高可用性和弹性伸缩。
云计算的转型之路:探索云原生架构的崛起与实践####
随着企业数字化转型加速,云原生架构以其高效性、灵活性和可扩展性成为现代IT基础设施的核心。本文深入探讨了云原生技术的关键要素,包括容器化、微服务、持续集成/持续部署(CI/CD)及无服务器架构等,并通过案例分析展示了这些技术如何助力企业实现敏捷开发、快速迭代和资源优化。通过剖析典型企业的转型经历,揭示云原生架构在应对市场变化、提升业务竞争力方面的巨大潜力。 ####
93 0
微服务架构中,如何确保服务之间的数据一致性?
微服务架构中,如何确保服务之间的数据一致性?
110 2
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等