BpFile(id=216, bpId=129, name=微服务应用问题定位及故障演练, author=null, keyword=微服务,故障演练,容灾演练,问题追踪,全链路排查,应用高可用, description=微服务应用通过ARMS监控发现节点及容器故障,在日常中可以通过AHAS演练及时发现问题及针对性防护。, position=null, ossUrl=bp-VYDLDJ7G2DB4PNC7.pdf, tags=null, level=null, tagList=null, products=null, productList=null, hotspot=null, oneClick=0, createTime=null, modifiedTime=null, timeConsuming=null, status=1, pdfDescription=
场景描述
用户微服务架构应用基于阿里云 ACK 部署, 通
过 ARMS 监控发现微服务应用的容错能力是否
健壮, 容器编排配置是否合理, 以及节点故障引
发的问题等, 方案通过 AHAS 故障注入模拟生
产环境产生的故障, 通过 ARMS 及时发现问题、
定位问题, 并结合 ARMS 的告警功能快速发现
并解决问题。
发现调用下游一个服务实例出现异常。
发现业务 Pod 故障, 验证业务的稳定性。
发现调用数据库延迟故障, 验证 Pod 的水
平扩容能力。
解决问题
1. 定位并解决微服务应用的容错能力。
2. 定位并解决微服务应用编排合理性。
3. 发现故障并验证系统故障的告警时效性。
产品列表
应用高可用服务 AHAS
性能测试 PTS
应用实时监控服务 ARMS
容器服务 kubernetes 版
负载均衡 SLB
专有网络 VPC
日志服务 SLS
, templateId=null, freetry=null, visitTime=null, visitCount=null, video_url=null, buttonName=null, buttonUrl=null, targetId=null, partner=null, partnerUrl=null, partnerLogo=null, cooperation=null, cooperationList=null)
1微服务应用问题定位及故障演练 最佳实践
场景描述
用户微服务架构应用基于阿里云ACK部署,通
过ARMS监控发现微服务应用的容错能力是否
健壮,容器编排配置是否合理,以及节点故障引
发的问题等,方案通过AHAS故障注入模拟生
产环境产生的故障,通过ARMS及时发现问题、
定位问题,并结合ARMS的告警功能快速发现
并解决问题。
发现调用下游一个服务实例出现异常。
发现业务Pod故障,验证业务的稳定性。
发现调用数据库延迟故障,验证Pod的水
平扩容能力。
解决问题
1. 定位并解决微服务应用的容错能力。
2. 定位并解决微服务应用编排合理性。
3. 发现故障并验证系统故障的告警时效性。
产品列表
应用高可用服务AHAS
性能测试PTS
应用实时监控服务ARMS
容器服务kubernetes版
负载均衡SLB
专有网络VPC
日志服务SLS
2云服务器ECS(产品名称) 文档模板(手册名称)/文档版本信息
阿里云
云上运维实践
微服务应用问题定位及故障演练
文档版本:20200227
文档版本:20150122(发布日期) 2
3微服务应用问题定位及故障演练 文档版本信息
文档版本信息
文本信息
属性 内容
文档名称 微服务应用问题定位及故障演练
文档编号 129
文档版本 V1.2
版本日期 2020-02-27
文档状态 外部发布
制作人 弦望
审阅人 九诚、宋宇
文档变更记录
版本编号 日期 作者 审核人 说明
V1.0 2020-01-10 弦望、明誉、吴昊、 九诚、宋宇 创建
乔夫、荣天、周围、
吉运
V1.1 2020-01-13 筱晖 - 文档优化
V1.2 2020-02-27 弦望 迭代新的故障
演练控制台
文档版本:20200227 I
4微服务应用问题定位及故障演练 前言
前言
名词解释
VPC:VirtualPrivateCloud,简称VPC。基于阿里云创建的自定义私有网络, 不
同的专有网络之间二层逻辑隔离,可以在自己创建的专有网络内创建和管理云产
品实例,比如ECS、负载均衡、RDS等。在创建前,您需要结合具体业务,规划
VPC和交换机的数量及网段等。
详见:https://www.aliyun.com/product/vpc
SLB:ServerLoadBalancer,简称SLB。多台云服务器进行流量分发的负载均衡
服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升
应用系统的可用性。
详见:https://www.aliyun.com/product/slb
AHAS:应用高可用服务()是一款专注于提
高应用高可用能力的云工具产品,提供应用架构自动探测,故障注入式高可用能
力评测和一键流控降级等功能,可以快速低成本的提升应用可用性。
详见:https://www.aliyun.com/product/ahas
PTS:PerformanceTestingService是面向所有技术背景人员的云化测试工具。
有别于传统工具的繁复,PTS以互联网化的交互,提供性能测试、API调试和监
测等多种能力。自研和适配开源的功能都可以轻松模拟任意体量的用户访问业务
的场景,任务随时发起,免去繁琐的搭建和维护成本。更是紧密结合监控、流控
等兄弟产品提供一站式高可用能力,高效检验和管理业务性能。
详见:https://www.aliyun.com/product/rds/pts
ARMS:应用实时监控服务 (ApplicationReal-TimeMonitoringService, 简称
ARMS)是一款应用性能管理产品,包含前端监控,应用监控和Prometheus监控
三大子产品,涵盖了浏览器,小程序,APP,分布式应用和容器环境等性能管理,
能帮助你实现全栈式的性能监控和端到端的全链路追踪诊断,让应用运维从未如
此轻松高效。
详见:https://www.aliyun.com/product/arms
ACK容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理
能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网
文档版本:20200227 III
5微服务应用问题定位及故障演练 前言
络和安全能力,打造云端最佳容器化应用运行环境。
详见:https://www.aliyun.com/product/kubernetes
日志服务(LOG):LogService,简称LOG/原SLS是针对实时数据一站式服务,在
阿里集团经历大量大数据场景锤炼而成,提供日志类数据采集、消费、投递及查
询分析功能,全面提升海量日志处理/分析能力,服务智能研发/运维/运营/安全等
场景。
详见:https://www.aliyun.com/product/sls
文档版本:20200227 IV
6微服务应用问题定位及故障演练 目录
目录
..................................................................................................................................................................
文档版本信息 I
法律声明.........................................................................................................................................................................II
前言................................................................................................................................................................................III
................................................................................................................................................................................
目录 V
最佳实践概述................................................................................................................................................................1
........................................................................................................................................................................
前置条件 3
1. SpringCloud应用部署ACK..............................................................................................................................4
1.1. SpringCloud框架介绍........................................................................................................................4
................................................................................................................................
1.2. PiggyMetrics简介 4
1.3. PiggyMetrics架构................................................................................................................................6
................................................................................................................................
1.4. PiggyMetrics部署 7
2. AHAS部署.............................................................................................................................................................8
2.1. AHAS简介.............................................................................................................................................8
.............................................................................................................................
2.2. ACK接入ahaspilot 8
2.3. ACK接入ahas流控组件..................................................................................................................14
..........................................................................................................................................................
3. ARMS部署 17
3.1. ARMS简介..........................................................................................................................................17
3.2. ACK接入ARMS组件.......................................................................................................................17
........................................................................................................................
3.3. 开启ARMS应用监控 20
4. 问题定位及故障模拟..........................................................................................................................................24
......................................................................................................................................
4.1. 相关准备工作 24
4.2. 节点CPU负载过高故障定位...........................................................................................................28
4.3. 下游服务异常造成上游服务响应慢问题定位.................................................................................46
....................................................................................................................................
附录:ingress可视化仪表盘 62
文档版本:20200227 V
7微服务应用问题定位及故障演练 最佳实践概述
最佳实践概述
概述
用户微服务架构应用基于阿里云ACK部署,通过ARMS监控发现微服务应用的容错
能力是否健壮,容器编排配置是否合理,以及节点故障引发的问题等,方案通过AHAS
故障注入模拟生产环境产生的故障,通过ARMS及时发现问题、定位问题,并结合
ARMS的告警功能快速发现并解决问题。
本方案继承:
《 SpringCloud 应 用 托 管 到 ACK 服 务 》 最 佳 实 践
(https://www.aliyun.com/acts/best-practice/preview?id=52148)
适用场景
本方案适用于:微服务架构应用场景下问题定位及故障演练,通过线上系统故障演练
保障系统的合理性、稳定性和健壮性。
发现并验证微服务应用的容错能力。
发现并验证微服务应用编排合理性。
发现故障并验证系统故障的告警时效性。
方案架构
Springcloud应用部署在ACK上通过ARMS进行问题定位,通过AHAS故障演练注
入故障模拟生成环境各种故障,通过PTS模拟业务流量,详细架构如下:
文档版本:20200227 1
8微服务应用问题定位及故障演练 最佳实践概述
说明:
1. SpringCloud微服务架构应用部署在阿里云的ACK上,配合ACR实现应用更新
部署。
2. 后端数据存储在MongoDB。
3. 使用ARMS进行链路监控,同时对业务进行监控报警,使用AHAS注入故障,验
证报警及时性。
4. 使用PTS进行多轮压测,结合ARAMS消除故障隐患。
5. 使用AHAS做精准QPS评估和容器资源编排合理性评估等。
文档版本:20200227 2