小说倚天屠龙记中少林寺的渡厄、渡难、渡劫三位大师的金刚伏魔圈曾经让不可一世的明教教主张无忌也讨不到半分好处。在应用性能领域,也有一个金刚伏魔圈,那就是由ARMS、AHAS、PTS三个阿里云服务打造的应用性能核心防御圈。
三个服务中只有ARMS的知名度相对高一些,原因可能是ARMS所对应的APM(应用性能管理)领域已经有了大量的成熟商业产品和公共云服务可供选择,ARMS经常被作为一个对标产品被拿来对比和选择,而PTS所对应的性能测试和AHAS所对应的应用高可用服务则缺乏可以直接对标比较的公共云服务,因此有必要先让我们来认识一下这三个服务:
应用监控服务ARMS(Application Real-Time Monitoring Service)、是一款应用性能管理产品,由前端监控、应用监控、Prometheus监控三大部分组成,能够对浏览器、小程序、移动APP、分布式应用和容器环境进行即广泛又深入的性能监控。
应用高可用服务(Application High Availability Service)、是一款专注于提高应用及业务高可用能力的公共云服务,提供包括应用架构探测感知、故障注入式高可用能力评测、流控降级高可用防护三大核心能力。
架构感知能够分析和采集操作系统和服务接口的调用关系,能够以服务器、容器、进程三个维度来展示应用的架构。
故障注入功能结合了阿里云内部的混沌工程实践,提供了丰富的故障模拟场景,能够提升分布式系统的容错性和可恢复性。
流量控制降级模块支持各种主流Java框架的零代码接入,能够实时监控框架的QPS,线程数、响应时间、异常数等指标,并有选择地截断对这些框架的访问,从而保护应用的可用性。此外,利用AHAS提供的SDK,还可以采取更细粒度的代码级限流降级防护措施。
性能测试PTS(Performance Testing Service)、是一款云化的性能压测工具,提供性能测试、API调试和监测等多种能力,ARMS兼容开源JMeter脚本和参数文件。PTS对应用的“访问”由分布在各地的阿里云压测节点发出,因此可以更真实的对应用和服务器接口进行“轰炸”来检测应用和接口的全链路承压能力。
这就像信息安全领域的防御——感知——渗透测试——攻防演练体系,通过AHAS、ARMS、PTS三个服务可以打造应用性能的核心防御圈:
- AHAS的职责是“防御和演练”,AHAS能够对应用进行限流/降级等高可用防护,也能够主动的注入故障来对系统的容错和自愈能力进行故障演练。
- ARMAS的职责是“感知”,ARMS能够对应用的前端/后端进行广泛和深入的监控,让管理者对应用的实时状态了然于胸。
- PTS的职责是对系统进行“攻击”,通过PTS对应用服务和接口进行定期的压测来让系统的能力上限被预先量化,让管理者做到心中有数。