为提高应用高可用性,可以结合使用 PTS 与 AHAS 。首先使用 PTS 压测评估系统瓶颈,然后使用 AHAS 以系统瓶颈指标为阈值设置流控、降级、系统或隔离规则,保障系统稳定性。

背景信息

随着应用系统的频繁迭代,保障应用系统的稳定性越来越重要。主要原因如下:

  • 随着应用上云的普及,单机架构向分布式架构演进,系统之间的依赖关系、调用链路变的十分复杂。
  • 业务发展带来的服务端迭代越来越快,在性能管理上很难有足够的投入,经常会产生未知的隐患导致性能的大幅下降。

行业痛点:

  • 对系统提供服务的能力不清楚,不知道如何进行压测,写脚本门槛太高。
  • 压测工具维护很麻烦,压测流量不稳定,施压能力有限。
  • 业务接口没有流量保护,瞬间流量超过上限就会压垮系统。
  • 下游依赖服务不稳定,经常调用超时影响核心接口,影响系统稳定性。
  • 非关键业务调用占用太多资源,核心业务的稳定性。

解决方案

借助于阿里巴巴内部多年高可用体系沉淀下来的经验,结合使用性能测试 PTS应用高可用服务 AHAS,即可从压测、流量防护两个维度协助保障应用的稳定性。PTS是具备强大分布式压测能力的 SaaS 压测平台,可模拟海量用户的真实业务场景,全方位验证业务站点的性能、容量和稳定性。AHAS则以流量为切入点,从流量控制、熔断降级、热点防护和系统保护等多个维度来帮助保障服务的稳定性,同时提供秒级的流量监控分析功能。

产品优势

功能强大

  • 全 SaaS 化形态,无需额外安装和部署。
  • 无需安装的云端录制器,更适合移动端 APP 场景。
  • 数据工厂功能,0 编码实现压测的 API/URL 的请求参数格式化。
  • 复杂场景的全可视化编排,支持登录态共享、参数传递、业务断言,同时可扩展的指令功能支持多形态的思考时间、流量蓄洪等。
  • 独创的 RPS /并发多压测模式。
  • 流量支持动态秒级调整,百万 QPS 亦可瞬时脉冲。
  • 强大的报表功能,将压测客户端的实时数据做多维度细分展示和统计,同时自动生成报告供查阅和导出。
  • 压测 API/场景均可调试,压测过程提供日志明细查询。

流量真实

  • 流量来源于全国上百城市覆盖各运营商(可拓展至海外),真实模拟最终用户的流量来源,相应的报表、数据更接近用户真实体感。
  • 施压能力无上限,最高支持千万 RPS 的压测流量。

专业的防护手段

  • 入口流量控制:按照服务容量进行流量控制,常用于应用入口。例如 Gateway、前端应用、服务提供方等。
  • 热点隔离:将热点和普通流量隔离出来,避免无效热点抢占正常流量的容量。
  • 对依赖方隔离、降级:对应用和应用之间、应用内部采用隔离、降级手段,将不稳定的依赖的对应用的影响减至最小,从而保证应用的稳定性。
  • 系统防护:AHAS 应用防护可以根据系统的能力(例如 Load、CPU 使用率等)来动态调节入口的流量,保证系统稳定性。

丰富的流量监控

  • 秒级流量分析功能,实时推送动态规则。
  • 流量大盘编排,清晰查看核心业务场景。

灵活的接入方式

提供 SDK、Java Agent 以及容器接入等多种方式,低侵入快速使用。

经典案例

PTS 和 AHAS 组成的压测流控方案,不仅在阿里内部淘宝、天猫等电商领域有着广泛的应用,在互联网金融、在线教育、游戏、直播行业和其他大型政央企行业也有着大量的实践。

在新冠疫情防护中,PTS 和 AHAS 一体化的压测和防护为全国各地区的健康码提供了强有力的支撑。通过 PTS 平台对支付宝健康码服务进行压测,测出系统对外核心接口的服务能力以及相应的系统水位。同时使用 AHAS 根据压测结果中不同接口和系统指标配置限流、隔离以及系统保护等规则,在最短的时间内接入应用并持续提供防护,保障系统稳定性。

使用方法

  1. 开通服务并购买资源包。
  2. 容量评估
    1. 使用 PTS 快速构建高仿真业务压测并发起压测,详情请参见如何在一分钟内发起压测?

      压测过程中可以在场景详情页签中查看各 API 的压测信息。例如本示例中选课提交 API 出现非 2xx 错误 12/s。

      容量评估1
    2. 在 PTS 控制台观察压测发起侧(客户侧)及服务侧(云监控)的端到端全监控,详情请参见查看监控详情,了解压测下的业务表现和各核心系统的性能水位情况。容量评估2
  3. 设置流控、降级、系统和隔离规则
    1. 将应用接入 AHAS,详情请参见接入应用概述
    2. 根据所压测接口的 RT 响应情况、系统负载以及当前压测的请求量为接口配置流控、降级、系统和隔离规则。
      • 配置流控规则:流控规则一般用于入口流量的防护,避免突发流量超过系统所能承受的最大值而压垮系统。流控规则
      • 配置降级规则:对于系统中存在的弱依赖服务,为了避免依赖的下游服务不可用拖累整个系统,可以在调用方设置降级规则。降级规则
      • 配置系统规则:为系统设置整体防护规则,对于CPU、Load 等指标超过设定的阈值时触发系统限流,保障系统整体的可用性。系统规则
      • 配置隔离规则:对于线程资源消耗比较多的接口,可以创建隔离规则,避免该接口在并发量大的情况下占用过多系统资源导致线程池满等问题。隔离规则
  4. 配置流量大盘,详情请参见创建流量大盘
    通过监控详情提供的多方位监控指标,动态调整接口的规则阈值并实时推送。流量大盘

相关文档