应用云平台的可用性——从新浪SAE看云平台设计
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Jeff Xiong 发布于 2007年4月26日
近日InfoQ中文站对XRuby项目的开发者郑晔进行了一次采访。郑晔介绍了XRuby项目的基本情况和发展方向。解释器和编译器,在前端部分都是相同的编译器前端技术有测试数据表明,XRuby的性能超过了Ruby1.8.5版本。在最近进行的一次性能评测中,XRuby由于尚不支持YAML而没有参加,JRuby与Ruby1.8.5之间还存在较大的性能差距。,包括词法分析、语法分析、建立语法树等等,主要的差别在于执行 的方式不同。解释器是直接执行一个其内部的可执行结构 ,比如Ruby现在的实现就是中间生成一个树,这棵树就是Rub y内部的可执行结构,然后执行这棵树,而编译器是生成目标平台的 可执行代码,比如我们常见的编译器生成对应平台的可执行文件 。由此可见,二者的执行方式并不是在同一个级别上执行的 ,一个是平台之上利用软件构建的执行引擎,一个是利用平台 (硬件或虚拟机)执行,所以,性能上会有一些差别。
简单说来,XRuby生成的代码直接运行在JVM上,而JRuby在JVM上构建了一个执行引擎来执行程序,而且是Ruby现在实现得不那么好的那个执行引擎。所以,XRuby目前在性能上可以领先JRuby许多。
较早前InfoQ的另一篇报道详细介绍了XRuby与JRuby的技术差异。
Ruby解释器 使用笔记本电池 耗时 ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-linux] 31.0 +/ 3.1 ruby 1.9.0 (2007-04-18 patchlevel 0) [i686-linux] 31.1 +/ 3.27 ruby 1.8.5 (2007-04-23 rev 3539) [i386-jruby0.9.9] 67.5 +/ 7.15 使用外接电源 ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-linux] 12.0 +/ 1.2 ruby 1.9.0 (2007-04-18 patchlevel 0) [i686-linux] 12.4 +/ 1.8 ruby 1.8.5 (2007-04-23 rev 3539) [i386-jruby0.9.9] 33.3 +/ 6.83
因为JVM平台本身并不支持动态语言的特性,所以,在XRuby在谈及XRuby项目的发展时,郑晔说道:(包括JRuby)需要用Java代码构建出一个动态语言支撑的 结构,也就是我们所说的Runtime。现在这个Runtime 是我实现的,基本上是按照C Ruby的结构进行实现,因为我之前翻译了《Ruby Hacking Guide》,对C Ruby的动态语言Runtime有一定的了解。其实,支持这些特性本身难度并不大,但是需要大量的时间和精力来做这件事情,这也是XRuby最为欠缺的资源。
XRuby在某些方面进行的一些工作,会比较有趣,比如正在开发的Antlr V3前端和调试器等等。这些方面对于在JVM上实现动态语言是一个比较有益的探索。XRuby本身起步时,考虑得更多的是乐趣,参与者都是因为乐趣加入其中的。所以,我想说,XRuby的一个很大的优点就是它还年轻,其中有很多可以做的有趣事情。继JRuby的开发者Ola Bini之后,郑晔也加入了ThoughtWorks公司。XRuby这个“有趣的”Ruby实现未来会怎样,我们拭目以待。
短时间之内,我们不敢奢望有人可以把XRuby用于实际的项目。现阶段,我们只是希望赢得更多的关注,吸引更多的人加入到XRuby的开发中来,这样,可以尽快实现XRuby的目标。
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪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分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。
2 条回复
关注此讨论 回复