4月8日下午,腾讯云突然发生服务故障,表现为接口响应报错、内部服务错误、网页显示504错误等。

504错误代表的是网关超时(Gateway timeout),也就是服务器作为网关或代理没有及时从上游服务器收到请求。

当天傍晚,腾讯云回复称,官网控制台相关服务出现异常,正在紧急修复,部分地区已恢复,其他地区也正在继续抢修中。

腾讯云突发故障 87分钟波及1957个客户!官方公开内幕  第1张

现在,腾讯云官方公布了对此次故障的复盘及情况说明。

根据腾讯云的说法,4月8日15点23分,腾讯云团队收到告警信息,云API服务处于异常状态,随即在腾讯云工单、售后服务群、微博等渠道开始大量出现腾讯云控制台登录不上的客户反馈。

经过故障定位发现,客户登录不上控制台正是云API异常所导致。

云API是云上统一的开放接口集合,客户可以通过API以编程方式管理和操控云端资源,云控制台通过组合云API提供交互式的网页功能。

故障发生后,依赖云API提供产品能力的部分公有云服务,也因为云API的异常出现了无法使用的情况,比如云函数、文字识别、微服务平台、音频内容安全、验证码等。

此次故障一共持续了近87分钟,期间共有1957个客户报障。

腾讯云突发故障 87分钟波及1957个客户!官方公开内幕  第2张

从客户的视角来看,云服务大概可以分为数据面和控制面,其中数据面承载客户自身的业务,控制面负责操作云上不同产品。

此次发生故障的控制台和云API,是对控制面的影响。

腾讯云突发故障 87分钟波及1957个客户!官方公开内幕  第3张

通俗来讲,如果把云服务类比为酒店,控制台相当于酒店的前台,一旦发生故障就会导致入住、续住等管理能力不可用,但已入住的客房不受影响。

这次故障中,客户已经配置好的服务器等IaaS资源,包括已经部署运行的业务,没有受到云API异常的影响。其他以非云API方式提供服务的PaaS、SaaS服务,也都正常服务。

腾讯云突发故障 87分钟波及1957个客户!官方公开内幕  第4张
4月8日当天腾讯云全产品进出流量趋势图,可以看到不受影响

但是,使用API提供的服务类产品受到不同程度的影响,比如腾讯云存储服务调用当天有明显下滑。

腾讯云突发故障 87分钟波及1957个客户!官方公开内幕  第5张
4月8日当天腾讯云存储服务调用数据趋势图,可以看到存储服务调用有一个明显的波动

本次故障处理过程如下:

15:23,监测到故障,立即执行服务的恢复,同时进行原因的排查;

15:47,发现通过回滚版本没能完全恢复服务,进一步定位问题;

15:57,定位出故障根因是配置数据出现错误,紧急设计数据修复方案;

16:02,对全地域进行数据修复工作,API服务逐地域恢复中;

16:05,观测到除上海外的地域API服务均已恢复,进一步定位上海地域的恢复问题;

16:25,定位到上海的技术组件存在API循环依赖问题,决定通过流量调度至其他地域来恢复;

16:45,观测到上海地域恢复了,此时API和依赖API的PaaS服务彻底恢复,但控制台流量剧增,按九倍容量进行了扩容;

16:50,请求量逐渐恢复到正常水平,业务稳定运行,控制台服务全部恢复;

17:45,持续观察一小时,未发现问题,按预案处理过程完毕。

腾讯云表示,故障的原因是云API服务新版本向前兼容性考虑不够,以及配置数据灰度机制不足。

本次API升级过程中,由于新版本的接口协议发生了变化,在后台发布新版本之后,对于旧版本前端传来的数据处理逻辑异常,导致生成了一条错误的配置数据,而灰度机制不足导致异常数据快速扩散到了全网地域,造成整体API使用异常。

发生故障后,按照标准回滚方案将服务后台和配置数据同时回滚到旧版本,并重启API后台服务,但此时因为承载API服务的容器平台也依赖API服务才能提供调度能力,即发生了循环依赖,导致服务无法自动拉起。

通过运维手工启动方式才使API服务重启,完成整个故障恢复。

近年来,国内各家云服务多次发生故障:

2024年4月9日支付宝崩溃,2023年12月3日腾讯视频崩溃,2023年11月27日滴滴崩溃,2023年11月12日阿里云和阿里系服务集体崩溃,2023年3月5日B站崩溃……

腾讯云突发故障 87分钟波及1957个客户!官方公开内幕  第6张