我对Windows Azure支持的第一次体验


在不稳定的状态下使用最新的技术也有其自身的缺陷,如不注意备份,这两个因素加上使用强力药方,导致我昨天误掉了我的博客数据库服务器,浪费了几个小时来恢复我的关键数据。

你可能知道,我最近moved my blog to Windows Azure它有自己的麻烦来转换我的数据和更新我的博客文章中的各种内部引用。这实际上是测试驱动Windows Azure的第一步,以便在接下来的几个月中启动和托管几个关键服务,所以我一直在玩Windows Azure,并尝试在它上测试一些东西。昨天晚上,当我用了一些药方并且非常头晕的时候,我创建了一个测试数据库,当我打算删除这个数据库的时候,我犯了一个非常严重的错误,删除了托管我博客数据库的整个数据库服务器以及其他测试数据库。

我通常有一个备份我的所有数据,并用于存储备份我的博客数据库在过去的定期基础上,但自从我移动到Windows Azure,没有一个内置的机制来实现这一点,我必须使用一些工具,如Windows Azure Migration Wizard或者SQL Azure Backup by Red Gate不幸的是,在过去的几个星期里,我忙得分心,无法完成这一手工过程,也无法备份我的数据。

丢失数据后,我创建了一个支持票证Microsoft Azure Support几分钟后,一位支持专家(显然是来自一家印度公司,微软已经将其支持外包给了这家公司)打电话给我,询问更多细节,同时告诉我他们有可能无法恢复我的数据。在通过电子邮件交谈,回答了一些问题,又打了一个电话之后,他们不得不换班,以便有一个新的人跟进我。通过电子邮件回答一些问题,我没有收到任何回应,直到今天早上,当我接到另一个电话告诉我,他们已经开始着手解决这个问题,我没有听到任何新的消息,直到几分钟前,当我通过电话和电子邮件通知我,他们将着手解决这个问题,但这是一个不支持的情况。恢复过程只能在营业时间内启动,需要6-8小时才能完成。而且底线是,最终无法保证恢复我的数据。现在已经超过24小时了,因为我的数据丢失已经发生,我打开了支持票。虽然最初的响应时间很快,但我还没有看到行动上的太大进展,而且似乎微软的支持过程中存在着官僚作风。

抛开其他的一切,我开了一张支持票,最起码的期望就是在合理的时间内得到一定的回应。不幸的是,我还没有收到一个明确的结果,从微软的支持,以知道我是否可以有希望得到我的数据回来或没有。对于云托管解决方案来说,这是一个灾难性的失败。我很幸运,我没有在Windows Azure上托管业务,否则我可能会在过去的24小时内遭受巨大的金钱损失。

幸运的是,在数据丢失发生的同时,我迅速进入Google cache,检索了我在过去几周发布的博客文章的内容,然后将它们添加到本地备份数据库中,我从以前就一直保留着这些内容,并重新部署了网站,使其能够正常运行。在此过程中,我丢失了一些注释,trackback和post view统计信息,当您有较大的数据丢失时,这些信息是最不需要担心的。然而,这只有像我这样的博客才有可能,而且我很幸运,我在过去的两周里没有太多的帖子发表,我能够找到一个最近的备份。

虽然整个问题并不是很大(尤其是因为我可以恢复我的帖子),但这次不幸的事件给了我一些教训。首先,我应该避免在生病的时候工作,只有放松才能好起来。工作和做一些让事情变得更糟的事情是没有意义的。其次,无论是否提供了一个好的机制,我都应该格外小心备份,尽管正如我下面所写的,在某种程度上责备微软是合理的。第三,成为使用最新技术的先锋通常不是一个好主意,因为不仅是这次,而且以前很多次,我都经历过同样的问题,并且浪费了很多时间在与不稳定的技术角力上。有时候我觉得自己太傻了,以至于Alpha,Beta和Release候选构建都是专门为我设计的,让我浪费时间和精力!

第四,我应该重新考虑一下在Windows Azure上启动和托管一些具有关键需求的服务的计划。抛开数据丢失不谈,在过去的几周里,我意识到Windows Azure对于一个关键系统来说还不够稳定。人为错误总是存在的,但对于像微软这样的大公司来说,最起码的期望是,在向客户收取昂贵的云托管解决方案费用之后,能够为客户提供数据备份。假设我有一个在Windows Azure上运行的非常大的站点,它有一个巨大的数据库。我可以写一个软件来下载我的每一分钟的数据吗?显然不是,而且很明显,备份/还原选项是客户的基本期望之一。我认为,关于云托管的一个关键点是,让常规用户在不花很多钱和精力去管理硬件的情况下,就能得到一个企业服务的好处。如果我需要运行第三台服务器,并为定期备份我的数据的软件付费,我并没有通过进入云获得太多好处。

总而言之,我将等待微软给我一个关于我的数据库服务器状态的明确答复,如果他们能恢复它,我将把我的数据与当前数据库同步以重新部署它。我希望发生这种情况,因为我已经在数据中应用了一些手动修改来解决一些问题,如果我丢失了我的数据,我将需要重做这些问题。