InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Rails从互联网走向企业

作者 Jeff Xiong 发布于 2007年4月22日

领域
语言 & 开发,
企业架构
主题
企业架构 ,
Ruby on Rails ,
Ruby
标签
RailsConf ,
大企业病 ,
Rails

在过去的两年里,已经有太多的讨论围绕着“用Rails要快多少多少倍”展开。但是,对于复杂的企业级应用来说,开发的效率只是一方面。至少还有其他几个方面是必须关注的。

  1. 非功能性需求,也就是软件的-ilities:性能,并发吞吐量,伸缩性,安全,等等。
  2. 完整的生命周期支持:需求,设计,开发,配置管理,质量保证,部署,维护,升级。软件生命周期的各个环节是否有适当的工具和/或最佳实践来覆盖。
  3. 系统整合。与遗留系统是否能够协同工作。这主要体现在两个方面:(1)消息系统;(2)遗留数据库。

实际上动态语言早已在各种企业IT系统中扮演胶水的角色,一些成熟的组织早已认识到它们并不止是急就章拼凑软件的法宝。动态语言本身的特点使得它们能够相当漂亮地描述各种领域,这正是为何Rails只会在Ruby上出现的原因。来自InfoWorld的文章这样写道:

值得注意的是,PHP、Perl、Python和Ruby等动态语言在企业中扮演着越来越重要的角色。IT管理者们很快地意识到:比起传统的、较为低级的企业主流开发语言,使用这些动态语言能够更快、更轻松地写出易于维护的好代码。

另一篇InfoQ的文章在介绍ChangingThePresent.org的案例时这样写道:

有人说Rails对复杂解决方案的扩展支持能力不够,我不赞成这种说法。和同类技术相比,Rails的生产力是最高的。Rails对我们的开发过程、团队组建和管理都产生了戏剧性的影响。所用技术的生产力越低,迭代周期就越长;团队越大,花在检查和协调上的时间就越多——在Ruby和Java项目管理我都经历过后,更为支持这个观点。使用别的技术,就需要组建更大的团队(比如10到15人),而我们则可以保持团队最小化。

至于前面提到的、企业级应用环境所看重的三个方面。结合ApacheMongrelHAProxy的部署方案已经被证明具有轻松超过任何J2EE应用服务器的性能和吞吐量,无共享架构使其具有完全线性的水平伸缩能力;至于安全性,Unix本身就已经构造了完备而可靠的安全体系。在今年的RailsConf上,我们将看到关于“如何部署高性能企业级Rails应用环境”的产品和最佳实践。

在生命周期方面,我们已经有了CruiseControl.rbCapistrano;我们即将看到Mingle的正式亮相,以及基于这些工具的最佳实践。系统整合或许是目前最不明朗的一个领域:我们有ActiveMessaging,我们有复合主键支持,但是很明显这离着“方便的遗留系统整合”还有相当距离。在未来的一年中,这可能是“企业级Rails”最有看头的一个领域。

总而言之,不难看到,即便是对于企业级超复杂的要求,Ruby和Rails也已经做好了——至少是大部分的——准备。Rails已经像J2EE那样成熟了吗?不,远远没有。但对于那些愿意承担一定风险来提升IT效率的企业而言,是的,Ruby和Rails整装待发。

深度内容

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视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的动态类型语言支持

随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。

Java Remoting远程服务(下)

随着互联网应用的发展,Java分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。