一个代码拼写错误,导致微软 Azure DevOps 服务在巴西停摆十小时
CTOnews.com 6 月 4 日消息,由于一个简单的代码错误,微软 Azure DevOps 在南巴西地区的服务中断了约十个小时。CTOnews.com注意到,微软的软件工程经理 Eric Mattingly 在周五为这次中断道歉,并揭示了事故的原因:一个拼写错误导致了十七个生产数据库被删除。
Azure DevOps 提供一组集成的服务和工具,用于管理软件项目,从规划和开发到测试和部署。Mattingly 解释说,Azure DevOps 的工程师有时会对生产数据库进行快照(Snapshot),以便调查报告的问题或测试性能改进。他们依赖于一个每天运行的后台系统,该系统会在一定时间后删除旧的快照。近日 Azure DevOps 的工程师进行了一次代码升级,用支持的 Azure.ResourceManager.* NuGet 包替换了已弃用的 Microsoft.Azure.Managment.* 包。这导致了一个大型的拉取请求,其中更换了旧包和新包中的 API 调用。
拼写错误就发生在这个拉取请求中,它将删除快照数据库的调用换成了删除托管数据库的 Azure SQL Server 的调用。Azure DevOps 有专门的测试来发现这样的问题,但 Mattingly 说,由于错误的代码只在某些条件下运行,因此现有的测试覆盖不到。
几天后,软件更改被部署到南巴西规模单元(特定角色的服务器集群)的客户环境。该环境有一个老的快照数据库,触发了这个错误,导致后台任务删除了"整个 Azure SQL Server 和所有十七个生产数据库"。
所有数据都已经恢复,但花了十多个小时。Mattingly 说,有几个原因造成这种情况。其中之一是,由于客户无法自己恢复 Azure SQL Server ,必须由值班的 Azure 工程师来处理,这个过程大约需要一个小时。另一个原因是,数据库有不同的备份配置:有些配置为区域冗余备份,有些配置为更新的地理区域冗余备份,解决这种不匹配增加了很长的恢复时间。
为了防止问题再次发生,Mattingly 称微软已经采取了各种修复和重新配置措施,并再次向所有受此中断影响的客户道歉。
相关文章
- 25 周年纪念作,情怀拉满但诚意欠缺:《勇者斗恶龙 怪物仙境 3》
- 联想拯救者 Y700 2023 平板推送 ZUI 15.0.723 系统灰度测试:新增“USB 网络共享”,优化底部小白条
- Streacom 推出 SG10 高端被动散热机箱:可解热 600W,1300 美元
- 3D 角色扮演策略游戏《少女前线 2:追放》公测开启,安卓、iOS、PC 多端互通
- 新能源车市:价格战开局,价值战结束
- 雪天这样拍,照片更为味道
- Cybertruck:未来物种重新定义汽车
- 2022 年我国未成年网民规模突破 1.93 亿,普及率达 97.2%
- 上映 7 天,《名侦探柯南:黑铁的鱼影》内地票房破亿、豆瓣 6.6 分
- 小岛工作室推出《死亡搁浅》联名手机手柄,预计明年发售