应用云平台的可用性——从新浪SAE看云平台设计
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Alex Popescu and Ryan Slobojan 译者 池建强 发布于 2010年5月30日
近期我们升级了自创立InfoQ.com以来一直使用的后台数据库。然而,一切并没有完全按照计划进行,虽然我们已经完成了大部分工作的顺利迁移,并解决了在迁移过程中遇到的一些意料之外的问题。这篇文章主要是讨论我们的计划是什么,哪些有效,哪些无效,以及如何检测错误并从这些错误中恢复。
本次升级的规划还是很复杂的,横跨了几个月。由于我们的硬件在2006年系统上线以来就没有升级过,所以我们现有的数据库服务器基本上是在满负荷运作,而且这已经开始导致网站在性能上出现一些问题,特别是在执行一些定期的报表任务的时候。另外,对于InfoQ来说,这次升级提供了一个很好的契机,我们把数据库从单一的主MySQL数据库迁移到了主/从MySQL配置,这样可以更好地支持故障热切,运行报表和数据备份,从而避免用户在访问网站时受到这些进程的性能影响。
迁移计划包括如下步骤:
同时还决定的事情包括,在两个新的从属服务器上安装MySQL5.1,这可以节省后续的MySQL升级时间。我们的研究表明可以成功实现从MySQL5.0的主服务器到MySQL5.1的从属服务器的同步,所以,通过在从属服务器上使用MySQL5.1,我们就可以在把第一个从属服务器切换成新的主服务器同时,实现MySQL5.1的升级
其他可能的选项之一(主要是考虑避免停机)是在主服务器执行mysqldump并将数据转移到从属服务器上,而不是停掉主服务器之后再进行文件复制——不过,高应用级别服务器需求排除了这一可能性,因为在主数据库服务器上执行备份任务将对服务器造成巨大的负载压力,最终会形成事实上的停机,因为我们可以预料到站点会变的有多慢。
第一个挑战是找到一个很好的时间来进行升级——开发团队在罗马尼亚,ISP在密苏里州,运营团队在温哥华和美国俄勒冈州。最终我们选择了太平洋时间周五晚上(欧洲的周六早晨),这是因为这个时间点InfoQ.com的访问量相对平缓,还有一个好处就是运营团队晚上开始,开发团队早晨开始(罗马尼亚和温哥华有10小时的时差)。一旦时间确定,第一步也就完成了。
第二步,最初预计停机时间是2小时,主要工作就是通过以太网把两台服务器连接起来。然而由于遇到一些网络问题,最终用了5个多小时才完成。这也告诉了我们重要的一点:如果你认为独立的数据中心不会发生网络问题,那么你就大错特错了。
在此之后,步骤3到6都进行得非常顺利,没有遇到其他问题。2月26日我们实现了新的主数据库的切换,在一轮基本的测试完成之后,我们感到所有的事情似乎都比较正常。网站的响应速度快了很多,这是一个非常好的工作成果,我们对总体进程也感到很满意。
然而,如果故事就此结束,那么这将是一篇很无聊的文章 :)
系统迁移之后的几天,首先引起我们注意的是评论系统出现了一些问题。尤其是新的评论似乎被添加到网站上了,但是很快,几分钟之后这些评论就消失了,给用户造成的印象是这些评论被删除了。最终我们吃惊的发现,造成这一结果的原因是由于我们激活了数据库服务器的主/从复制功能,但Jive论坛目前使用的数据版本仍然是没有评论的。解决这一问题的办法是把事务的隔离级别从READ_UNCOMMITTED改为REPEATABLE_READ(这是因为在复制环境中采用READ_UNCOMMITTED隔离级别会抛出错误),修改后评论可以被再次创建了。
但是,这并没有最终解决所有问题。虽然我们的初步测试表明添加评论已经可以正常工作了,但一两天之后我们又开始发现一些非常奇怪的数据一致性问题:特别是,我们注意到在数据库迁移之后创建的文章评论似乎被随意的合并到网站上的现有会话中。通过深入发掘,我们发现Jive对它使用的唯一ID进行了复位,以保持对主题的跟踪,同时在日志中不显示任何错误或警告信息,基于这样一个分析结果,我们可能覆盖或损坏了现有(尽管是旧的)论坛主题,影响范围应该是计数器从16000左右复位为0之后。造成这个问题的罪魁祸首是我们为MySQL选择了基于行的复制策略,一旦知道了是这个问题我们就能够解决它,并对被错误分配到论坛主题的评论进行数据清洗。
在这次升级的过程中,我们有几个额外的收获:
一如往常,我们很想听到您的任何反馈,您可以通过以下的一个或多个反馈渠道为我们提供反馈信息:
查看英文原文:Upgrading InfoQ.com's Database: Mostly Smooth, A Couple of Bumps
译者 池建强 池建强,多年软件从业经验,先后在洪恩软件和用友集团任职。目前在瑞友科技IT应用研究院任副院长。
ThoughtWorks首席咨询师Fabio分享分布式协作经验
Netflix高级软件工程师Jason揭秘Cassandra应用
RT
升级系统没必要这么大张旗鼓吧,貌似全世界的人民都被惊动了。
刘姥姥进贾府。
相当没经验啊。
升级系统没必要这么大张旗鼓吧,貌似全世界的人民都被惊动了。
低调
刘姥姥进贾府。
相当没经验啊。
第二次不就有了
主要是分享升级过程中的经验,不是宣言”升级系统“这个事情,低调低调。
infoq书生气十足哦,编辑毕竟不是第一线开发。
门外看infoq,觉得传播手段即技术能力是制约发展的最大障碍。
虽然内容很不错。
csdn虽然不咋地,但是不会存在访问障碍。
应该说InfoQ编辑没有不从事第一线开发的吧
infoq书生气十足哦,编辑毕竟不是第一线开发。
呵呵,怎么看出书生气十足呢?
池建强,12年软件从业经验,先后在洪恩软件和用友集团任职。
居然当起了翻译员,而且翻译的这个东东本身的价值实在不敢恭维.
这位朋友觉得翻译很没技术含量么,还是其他什么原因?不知是否读过国外的一些文学名著,如果都是读的英文原版,小弟自然佩服?或是自己对照着原文翻译一下,然后将译文贴在这里供大家鉴赏,何如?
参与社区活动、共享知识而已,中国软件业缺乏的就是共享、开放和参与精神
我们公司正在从MySQL转向Cassandra, 借鉴下经验.
好吧,你翻译了好的文章时记得告诉我们。
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。
淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011。
2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。
12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011。
篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011。
本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。
随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。
随着互联网应用的发展,Java分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。
15 条回复
关注此讨论 回复