BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Windows Azure中断调查

| 作者 Jeff Martin 关注 16 他的粉丝 ,译者 曹如进 关注 0 他的粉丝 发布于 2012年3月19日. 估计阅读时间: 4 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

近日,微软Azure云计算平台部分服务发生中断,起因是一个闰年bug。Azure服务器和软件时间刚过2月29日UST时间00:00,服务故障便拉开了序幕。日期变化暴露代码中存在缺陷——闰年没有被正确处理好。随后附加服务器的部署,让整个Windows Azure云平台陷入了级联错误。

那么什么是导致失败的根本原因呢?Laing解释说,应用程序虚拟机使用传输证书与托管操作系统之间进行安全通信。传输证书创建后的持续时间仅被设计成一年。原有的缺陷代码在创建失效日期时,采用的方法是将当前日期的年份字段加1,结果2012年2月29日创建的传输证书失效期被定为一个不存在的日期——2013年2月29日。该错误阻止了新的传输证书的创建,并成为了此次事件的导火索。

Laing总结了微软采取的针对预防、检测、响应及恢复方面的几个步骤。此外,微软对于“所有使用Windows Azure计算、访问控制、服务总线与缓存”的用户,不管是否受到此次事件影响,都将提供33%的费用返还。

Windows Azure Service Dashboard

Windows Azure服务仪表板 

Windows Azure中断时间线(以下所有时间均为美国太平洋时间)

2012-02-28 16:00  错误最开始发生在2012年2月29日00:00。新的虚拟机无法生成正确证书,结果自行终止。25分钟过后,托管操作系统重新启动虚拟机创建过程,但结果仍然失败。整个过程需要3次重启尝试,每次相距25分钟。

2012-02-28 17:15  在错误发生整整75分钟之后,误差阈值达至上限,失效集群通知首要响应人员“受影响的系统无法恢复”。

2012-02-28 18:38  响应团队初步确定问题出在日期/事件bug上。

2012-02-28 18:55  基于团队对问题的评估,也为了防止用户造成额外的损害,微软禁用了全球范围内所有集群的服务管理功能。

2012-02-28 22:00  响应团队为更新代码创建测试及上线计划。

2012-02-28 23:20  代码更新完毕。

2012-02-29 01:50  响应团队完成上线测试,将更新代码后的应用程序部署到测试集群中。

2012-02-29 02:11   团队完成对生产集群的补丁部署,同时开始向所有集群部署补丁。

2012-02-29 02:47  原有bug发生时,有7个集群在刚好处于部分更新状态。这7个集群收到的单独更新在部署之前并没有测试,结果又引入了另外一个bug,继而导致网络连接失效。

2012-02-29 03:30  为这7个单独的集群创建修订后的补丁,并在部署前进行了测试。修订版本计划在05:40安装。

2012-02-29 05:23  微软宣布大部分客户的服务管理功能已经恢复(除了那单独的7个集群以外)。

2012-02-29 05:40  7个单独的集群接受更新以恢复网络功能。

2012-02-29 08:00  7个单独集群大部分可以运作。少数个别服务器由于各种不同的中断问题还存在错误,微软员工当天继续工作以进行修补。

2012-03-01 02:15  所有集群服务全部功恢复正常。

查看英文原文:http://www.infoq.com/news/2012/03/azure_outage

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT