2024年4月8日腾讯云故障复盘及情况说明

news2025/5/25 21:51:02

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

经过故障定位发现,客户登录不上控制台正是由云API异常所导致。云API是云上统一的开放接口集合,客户可以通过API以编程方式管理和操控云端资源,云控制台通过组合云API提供交互式的网页功能。

腾讯云最新活动及领券入口:https://txy.ink/new/

故障发生后,依赖云API提供产品能力的部分公有云服务,也因为云API的异常出现了无法使用的情况,比如云函数、文字识别、微服务平台、音频内容安全、验证码等。此次故障一共持续了近87分钟,期间共有1957个客户报障。
 
从客户的视角来看,云服务大概可以分为数据面和控制面,数据面承载客户自身的业务,控制面负责操作云上不同产品。比如目前使用最广泛的IaaS服务基本上都是以直接面向数据面为主,控制面仅在客户购买或需要对资源层面进行调整操作时会涉及。此次发生故障的控制台和云API是对控制面的影响。

通俗来讲,如果把云服务类比为酒店,控制台相当于酒店的前台,是一个统一的服务入口。一旦酒店前台发生故障,会导致入住、续住等管理能力不可用,但已入住的客房不受影响。
 
这次故障中客户已经配置好的服务器等IaaS资源,包括已经部署运行的业务,没有受到云API异常的影响。其他以非云 API 方式提供服务的PaaS和SaaS服务,处于正常服务的状态。从数据上也验证了这一点。如图1显示,当天全产品进出流量趋势没有明显变化。

图 1:腾讯云全产品进出流量趋势图

但是,用API提供的服务类产品(需要“酒店前台服务“)有不同程度的影响,比如腾讯云存储服务调用当天有明显下滑。期间售后团队协助部分客户做了业务容灾预案的实施,将受影响服务做调度以快速恢复客户的业务服务。从图2可以看出,当天存储服务调用有一个明显的波动。

图 2:存储服务调用数据趋势图

问题复盘

整个处理过程如下:

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

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

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

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

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

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

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

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

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

故障的原因是云API服务新版本向前兼容性考虑不够和配置数据灰度机制不足的问题。
 
本次API升级过程中,由于新版本的接口协议发生了变化,在后台发布新版本之后对于旧版本前端传来的数据处理逻辑异常,导致生成了一条错误的配置数据,由于灰度机制不足导致异常数据快速扩散到了全网地域,造成整体API使用异常。
 
发生故障后,按照标准回滚方案将服务后台和配置数据同时回滚到旧版本,并重启API后台服务,但此时因为承载API服务的容器平台也依赖API服务才能提供调度能力,即发生了循环依赖,导致服务无法自动拉起。通过运维手工启动方式才使API服务重启,完成整个故障恢复。

改进措施

综合盘点这次故障,最根本的原因是在版本变更过程中,没有有效执行沙箱验证和预案演练,暴露了在变更管理上的不足,接下来将从以下几个方面快速进行改进和完善,以减少故障的影响范围和影响时长。
 
第一,提升系统韧性

1、定期执行预定的变更策略模拟演练,确保在真实故障发生时,能够迅速切换到恢复模式,最小化服务中断时间。

2、优化服务部署架构,通过分层架构、代码审查和监控等手段, 避免API服务中潜在的循环依赖问题。

3、提供API服务逃生通道,当故障发生时,可供调用方快速切换。

第二,强化变更管理与保护措施

1、完善自动化测试用例库,在系统变更前通过沙箱环境对变更内容进行严格验证。

2、实施灰度发布策略,逐步推广新功能或配置更改,按集群、可用区、地域逐步生效,以便在发现问题时能够迅速回滚。

3、引入异常自动熔断机制,当检测到系统异常时,能够立即中断变更过程。

第三,增强故障响应与沟通能力

1、对故障处理流程进行全面升级,确保实时更新故障处理进度和预计恢复时间点,提升故障报告发布效率。

2、在对外发布的故障通知中,清晰阐述受影响的业务范围、故障根因及预计修复时长,保持透明度。

3、优化腾讯云健康状态看板(StatusPage)的信息展示逻辑,解除对云API等云服务的依赖,通过引入缓存和容灾机制,确保即使在云服务出现故障时,能准确、及时地传递故障信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1593225.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

commit 信息风格迥异、难以阅读,如何规范?

大家好!最近很长时间没有更新了,由于加入新团队新的项目组参与新的工作,导致博客创造搁置了一段时间,今天来记录一下我最近学习到的规范。 怎么写出符合 Angular 规范的 Commit Message 呢? 这是我们团队规定的规范。…

【免安装的MATLAB--MATLAB online】

目录: 前言账号的注册图片处理的示例准备图片脚本函数 总结 前言 在计算机、数学等相关专业中,或多或少都会与MATLAB产生藕断丝连的联系,如果你需要使用MATLAB,但是又不想要安装到自己的电脑上(它实在是太大了啊&#…

如何防止软件过度封装和抽象?

一、合适的软件架构 构建可读性强、高内聚、低耦合的软件架构是软件工程中的重要原则,这有助于提高代码的维护性、扩展性和复用性。以下是一些实践方法: 1. **模块化设计**:将系统划分为一系列职责单一、功能明确的模块或组件,每…

【新版】系统架构设计师 - 知识点 - 面向对象开发方法

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 知识点 - 面向对象开发方法面向对象开发方法面向对象的分析需求模型分析模型 面向对象的设计 用例模型关系、UML事务关系、类的关系 架构 - 知识点 - 面向对象开发方法 面向对象开发方法 分析阶段…

深度学习体系结构——CNN, RNN, GAN, Transformers, Encoder-Decoder Architectures算法原理与应用

1. 卷积神经网络 卷积神经网络(CNN)是一种特别适用于处理具有网格结构的数据,如图像和视频的人工神经网络。可以将其视作一个由多层过滤器构成的系统,这些过滤器能够处理图像并从中提取出有助于进行预测的有意义特征。 设想你手…

springboot数字化智慧城市管理系统源码

目录 ​系统开发环境 系统功能模块 系统特点 1、智慧城管移动端 2、案件受理 3、AI视频智识别分析 系统应用价值 1、提升案件办理效率 2、提升监管效能 3、提升行政执法水平 4、推进行政执法创新 智慧城管综合执法办案系统功能 现场移动执法 一般程序案件的网上办…

“Plandex:AI编程引擎革新,高效应对复杂任务“

Plandex Plandex 是一个开源的、基于终端的AI编程引擎,用于处理复杂任务。它通过长期运行的代理来完成跨越多个文件和多个步骤的任务,将大型任务分解为更小的子任务,然后逐个实现,直到完成整个工作。这有助于用户处理待办事项、处…

Mapmost Alpha:开启三维城市场景创作新纪元

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

:app debug:armeabi-v7a failed to configure C/C++

报错信息 由于刚换电脑不久,新建native c工程时,出现报错如下: :app debug:armeabi-v7a failed to configure C/C null java.lang.NullPointerExceptionat com.android.build.gradle.tasks.CmakeQueryMetadataGenerator.getProcessBuilder(…

Linux:环境基础开发工具使用

文章目录 前言1.Linux下的软件安装1.1 什么是软件包1.2 如何安装软件1.3 如何卸载软件 2.vim2.1 vim的基本概念2.2 vim的基本操作2.3 vim正常模式命令集2.4 vim末行模式命令集2.5 vim的操作总结 3.Linux下的编译器:gcc3.1 gcc的使用3.2 gcc是如何工作的3.2.1 预处理…

Axure实现导航栏的展开与收缩

Axure实现导航栏的展开与收缩 一、概要介绍二、设计思路三、Axure制作导航栏四、技术细节五、小结 一、概要介绍 使用场景一般是B端后台系统需要以导航栏的展开与收缩实现原型的动态交互,主要使用区域是左边或者顶部的导航栏展开与收缩,同一级导航下的小…

【Linux实践室】Linux高级用户管理实战指南:用户所属组变更操作详解

🌈个人主页:聆风吟_ 🔥系列专栏:Linux实践室、网络奇遇记 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️任务描述二. ⛳️相关知识2.1 🔔Linux查看用户所属组2.1.1 👻使…

Java虚拟机——HotSpot 垃圾收集器

HotSpot 虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,虽然我们要对各个收集器进行比较,但并非为了挑选出一个最好的收集器。我们选择的只是对具体应用最合适的收集器。 新生代垃圾收集器 Serial 垃圾收集器(单线程&…

数据仓库—维度建模—维度表设计

维度表 维度表(Dimension Table)是数据仓库中描述业务过程中各种维度信息的表,用于提供上下文和描述性信息,以丰富事实数据的分析 维度表是维度建模的灵魂所在,在维度表设计中碰到的问题(比如维度变化、维度层次、维度一致性、维度整合和拆分等)都会直接关系到维度建模…

华为海思数字芯片设计笔试第二套

1.声明 下面的题目作答都是自己认为正确的答案,并非官方答案,如果有不同的意见,可以评论区交流。 这些题目也是笔者从各个地方收集的,感觉有些题目答案并不正确,所以在个别题目会给出自己的见解,欢迎大家讨…

计算机网络----第十三天

DNS协议和文件传输协议 DNS: 含义:用于域名和IP地址的互相解析 DNS域名: 背景:通过IP地址访问目标主机,不便于记忆 域名的树形层次化结构: ①根域 ②顶级域:主机所处的国家/区域&#xf…

mac 配置前端开发环境brew,git,nvm,nrm

我的电脑是mac 3 pro 一、配置Homebrew 打开终端,执行指令 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"查看版本 brew -v 安装nvm brew install nvm 再执行 brew reinstall nvm 我这边安装好了…

elasticSearch从零整合springboot项目实操

type会被弃用 ,就是说之后的elasticSearch中只会存在 索引(indices) 和 一行(document) 和字段(fields) elasticSearch 和solr的区别最大的就是 es对应的 是 json的格式 。 solr有xml和josn等…

2024mathorcup妈妈杯C题数学建模无水印高质量论文新鲜出炉

以下展示部分正文内容:完整内容见文末名片 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140 字(可选) 添加图片…

全新付费进群系统源码 带定位完整版 附教程

搭建教程 Nginx1.2 PHP5.6-7.2均可 最好是7.2 第一步上传文件程序到网站根目录解压 第二步导入数据库(dkewl.sql) 第三步修改/config/database.php里面的数据库地址 第四步修改/config/extra/ip.php里面的域名 第四步设置伪静态thinkphp 总后台账…