因一个代码拼写错误,17 个生产级数据库被误删、瘫痪 10 小时!

df824c16f2cd58825eaf3bce36b5a4e8.gif

整理 | 禾木木   责编 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

5 月 24 日,微软 Azure DevOps 在巴西南部(SBR)区域内一处 scale-unit(微软 Azure 部署架构中最小的容量单元)设施发生瘫痪,持续了 10 个小时。

6 月 2 日,微软首席软件工程经理 Eric Mattingly 为这次故障出面道歉,并透露了具体原因:一个简单的错误拼写,导致了整整 17 个生产级数据库被删除。 

bda01f1e693fad30295b858aa2a22172.png

3ed3e8114e10afc3625fbbe541202459.png

隐藏”着一条拼写错误

Mattingly 解释道,Azure DevOps 工程师偶尔会对生产级数据库的快照进行保存,以查看报告上的问题或测试性能改进。为清理这些快照数据库,会有专门的后台每天运行,系统会在一段设定的时间后删除旧快照。

在最近的一波 sprint (敏捷开发术语中的迭代开发周期)中,Azure DevOps 工程师执行了一次代码升级,将已弃用的 Microsoft .Azure. Management.* 软件包换成受支持的 Azure.ResourceManager.* NuGet 软件包。

这个操作,连带着大量 pull request 变更请求,会将旧包中的 API 调用替换为新包中的 API 调用——而引发此次事件的拼写错误,就出现在 pull request 内,导致后台快照删除作业删掉了整个服务器。

Mattingly 表示:“这条 pull request 中的快照删除作业中,隐藏着一条拼写错误,它会删除 Azure SQL 数据库调用,并替换成删除托管数据库的 Azure SQL Server 调用。”

按理来说,Azure DevOps 有一系列测试可发现这类问题。但 Mattingly 称,该错误代码只在某些条件下运行,因此没有被现有的测试机制及时发现。 

Mattingly 表示,Azure DevOps 工程师使用安全部署实践(SDP)将 Sprint 222 部署到了 Ring 0(微软内部部署),那里不存在快照数据库,所以删除作业不会执行。但几天后,Azure DevOps 工程师又将其部署至 Ring 1(客户环境),也就是巴西南部的 scale-unit 设施。该环境中有一个比较旧的快照数据库,因此触发这个错误代码,于是它在删除 Azure SQL Server 的同时,还删掉了 scale-unit 设施中的 17 个生产级数据库。 

好在,据 Mattingly 介绍,此次事件并未引发数据丢失。为了防止问题再次发生,Mattingly 称微软已采取了各种修复和重置措施,并向所有受此中断影响的客户道歉。

222ecae59eea562bdea6aa6a985ca5a6.png

为何花费了 10 个小时才全部恢复?

据微软官方介绍,这 17 个生产级数据库被删后 20 分钟不到,其工程师就检测到了中断并立即开始抢修,但依旧花费了 10 个小时才完全恢复。

Mattingly 表示,这其中有几个原因:

▶ 首先,客户无法自己恢复 Azure SQL Server,因此必须由 Azure 团队来处理这项工作,这个过程对许多人来说大约需要一个小时。

▶ 其次,数据库有不同的备份配置,一些数据库被配置为 Zone 冗余备份,另一些数据库被配置为最新的 Geo-zone 冗余备份。协调这种不匹配情况给恢复过程增添了不少时间。

▶ 最后,在数据库开始重新上线后,由于 Web 服务器出现了一系列复杂的问题,即使是数据位于这些数据库中的客户,也无法访问整个 scale-unit 设施。 

这些问题是服务器预热任务引起的,该任务会通过测试调用遍历可用的数据库列表。但恢复过程中的数据库抛出了一个错误,导致预热测试“执行指数级的 backoff 重试“,结果导致正常情况下只需不到 1 秒的预热过程,平均耗时了 90 分钟。

更复杂的是,整个恢复过程是交错进行的,一旦其中一两台服务器重新开始接收客户流量,就会因过载而再次停运。最终,工程师只能阻断所有流向巴西南部 scale-unit 的流量,确保一切准备就绪后,再重新加入负载均衡器并处理流量。 

目前,为防止此次事故再次发生,微软方面已实施各种修复和重新配置。Mattingly 说:“我们再次向所有受到这次故障影响的客户道歉。” 

204bc6701a5ef98bec7369ca95d8c7a8.png

网友:微软只是继续“贴膏药”

尽管如此,但此次微软的道歉并没有得到网友的谅解:

▶ “看来 Azure 变得越来越复杂了,而频繁变化加上日益增加的复杂性,最终只会走上一条路:更多的灾难以及可靠性降低。听起来微软对此事故的解决方案是继续“贴膏药”,但我认为在某个阶段,还是有必要对方法进行更根本的重新思考,避免最终分崩离析。”

甚至因为这个简单的 Bug 导致 10 小时宕机的结果,不少网友也开始讨论“云”的必要性:

▶ “关于云和 DevOps 最可怕的事情是,其实大多数文件都相当简洁,但其中总是有许多神奇的键/值,而实际上它们在代码审查中并没有任何意义。”

▶ “这就是我讨厌云的众多原因之一。十多年来,我一直没有与 IaaS 打交道的乐趣,我的本地内容非常完美,我还成功地抵御了过去十年中那些想要一次又一次将云带回来的人。”

对此,你又有哪些看法呢? 

参考链接:

https://www.theregister.com/2023/06/03/microsoft_azure_outage_brazil/

https://status.dev.azure.com/_event/392143683/post-mortem

推荐阅读:

▶不要拿 ChatGPT 干这 6 件事

▶法律科技创新赛题剧透|点我了解第二届“移动云杯”大赛

▶发布 21 年后,Windows XP 被破解,仅 18KB 即可离线激活

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Turbo Pascal 2.0 发布 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 4 月 17 日,在 1790 年的今天,电学奠基人富兰克林逝世。美国的杰出发明家本杰明富兰克林从 1746 年开始研究电的现象,通过反…

Windows Phone 停运 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 7 月 11 日,在 1976 年的今天,美国公司 Keuffel & Esse 生产了最后一批计算尺,并将其卖给了史密森学会。在人类历史上使…

chatgpt赋能python:Python如何停止程序

Python如何停止程序 Python是一种高级编程语言,被广泛应用于Web开发、数据分析、机器学习等领域。在编写Python程序的过程中,我们时常需要手动停止程序。那么,Python如何停止程序呢?本文将详细介绍Python程序停止的方法和技巧。 …

AIGC狂欢之月

3月1日,OpenAI发布ChatGPT API,为开发者提供先进的语言处理与语音转文本功能。经优化,ChatGPT成本降低90%,惠及API用户。开发者可使用开源Whisper large-v2模型,实现更快、更高效的应用。OpenAI将持续改进模型&#xf…

英文PRESENTATION高手必备的常用表达,终于知道如何像乔布斯一样用灵魂和感情演讲了~

太多了,不过结构还不错,也可以用在中文的演讲中。 转帖一 成功英语演讲的秘诀:开场白、结束语 应对问题 -I will be pleased to answer any questions you may have at the end of the presentation. -Please can you save your questions…

AI人工智能识别技术如何助力构建风险监测预警系统?

人工智能的各个部分——例如视频分析、机器学习和深度学习——已经开始利用物联网生态系统生成的大量数据来区分数据中有价值的信息,然后将其转化为洞察力,达到智能预警和辅助决策的作用。 尤其是在安防监控领域中,人工智能技术让监控摄像头…

信息专业求职个人简历最新版

信息专业求职个人简历最新版1 个人信息 _ 性 别: 男 婚姻状况: 已婚 民 族: 汉族 户 籍: 江苏-宜兴 年 龄: 34 现所在地: 江苏-宜兴 身 高: 175cm 希望地区: 江苏-常州、 江苏-…

写好简历的16个关键点

金九银十正在进行着,有些小伙伴说不知道怎么写好简历。我这边整理了写简历的16个关键点,希望对大家有帮助呀。 1. 基本信息 简历一定写上自己的基本信息。一般基本信息包括姓名、电话、电子邮箱、求职意向、工作年限、年龄、在职状态、学历、头像等这几…

客户端登录提示 :拒绝访问Temp目录解决方法

系统环境搭建好后,在客户端运行,登录提示:拒绝访问Temp目录解决方法, IIS apppool\oaserver没有访问temp目录的权限。 引起原因: 因为服务端目录Temp权限不足 解决方法:把 C:\Windows\Temp 目录设 为IIS…

远程连接出现拒绝访问

排除防火墙的情况下有以上错误提示解决办法如下: 服务器 开始-运行-输入 services.msc,打开计算机的服务,找到 Remote Desktop Services,登陆,选择此账户,输入用户名“网络服务”(注意是网络服务…

“msg“: “没有授权访问,请先登录“

“msg”: “没有授权访问,请先登录” 添加 { key:Authorization value: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MGY2YzViMDlhYTQwZjQwMWJjOTcxM2YiLCJpYXQiOjE2MzUzOTU2MzUsImV4cCI6MTYzNTQ4MjAzNX0.AVk4SG7WEbHL-v8x66dzt61yq1qV_q4GDPX3lpRU0pk }

winscp连接以预置密码进行验证,拒绝访问

以命令行执行winscp连接sftp站点失败,命令格式为: winscp open sftp://用户名:密码IP地址:端口号(22) 很确定密码没问题,而且图形化界面也能成功连接,bing搜索了很多csdn帖子都没解决,问题出在了密码中有特殊字符&a…

Win7:登陆系统提示group policy client服务未能登陆 拒绝访问

故障现象: Win7系统,登陆系统提示group policy client服务未能登陆拒绝访问。解决方案: 1、带领用户开机时,不停点击F8按键,在弹出的”高级启动选项”中使用键盘上的方向箭头中的向下箭头移动白色高亮条,选择”安全模式”&#xf…

怎么实现对登录用户访问权限的拦截

怎么实现对登录用户访问权限的拦截 一. 自定义权限注解 package io.coderyeah.basic.annotation;import java.lang.annotation.*;/*** 自定义注解*/ Target({ElementType.METHOD, ElementType.TYPE}) Documented Retention(RetentionPolicy.RUNTIME) public interface PreAut…

李彦宏一句“车水马龙”,中国AI的一幕天地宽广

“什么叫生成式?比如说,给我画一幅车水马龙的图片。这种东西,过去人们不觉得是人工智能应该做的事,现在可以做了。”5月18日,百度CEO李彦宏在天津举办的第七届世界智能大会上演讲时,说了这么一句话。 不了解…

比ChatGPT还厉害?Auto-GPT迅速走红,无需人类插手自主解决复杂任务,GitHub开源标星5万...

上一篇:16款ChatGPT工具,炸裂收藏! Auto-GPT开源项目地址见文末 ChatGPT 之所以能风靡全球,很大程度上要归功于其简单的功能框架。作为一款 AI 聊天机器人,它唯一的作用就是生成令人信服的自然语言文本、顺畅回应用户的…

学术答辩PPT模板推荐

不管是学生还是老师,应该经常会需要学生答辩的PPT模板,今天给大家推荐PPT家园的学生答辩ppt模板。 学术答辩ppt模板 大气经典的排版画面,拼接的彩色又不会单调,非常适合正式答辩的通用PPT模板。 青春漫画风背景大学毕业答辩PPT…

学术答辩PPT模板分享

130套学术答辩PPT模板分享 链接: https://pan.baidu.com/s/1S7YbRlzOeyqwdc9ay5-DYA 提取码: irxg 动态PPT-49套 静态PPT-34套 答辩PPT-24套 精选动态PPT-21套

本科生毕业论文线上答辩流程(腾讯会议+WPS文字)

一、前言 今天(6月4号)刚刚参加毕业论文的答辩,因为学校不开学,只能线上答辩了。我们学校的答辩是在腾讯会议上进行的,然后我电脑没安装有office,所以用的是国产的WPS文字(你也可以用office&am…

项目路演/课题答辩/毕业论文答辩PPT制作

本次博客分享一个具体的答辩PPT模板,只能以图片的形式展示。由于篇幅,没有全放,有需要的同学可以关注微信公众号找我要。 特别地,感谢冬令营期间各级领导的关心与帮助,感谢我的队友陪我熬过的夜,也谢谢那个她,这是一段十分难忘的经历! PPT演示视频(大屏观看更佳) 基…