InfoQ

新闻

Rails从互联网走向企业

作者 Jeff Xiong 发布于 2007年4月22日 下午7时35分

社区
Ruby
主题
Ruby on Rails,
企业架构
标签
大企业病,
Rails,
RailsConf

在过去的两年里,已经有太多的讨论围绕着“用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整装待发。

没有回复

回复

独家内容

专访开源项目Amoeba架构师陈思儒

DBA notes站长冯大辉(Fenng)代表InfoQ中文站采访了分布式数据库Proxy开源项目Amoeba的架构师和主要开发者陈思儒,内容包括Amoeba项目的起因、功能及其愿景等。

使用JSF、Ajax和Seam开发Portlets(2/3)

作为三期系列文章的第二部分,本文延续了上一期内容,介绍了RichFaces,包括如何把RichFaces集成到之前提到的示例应用中、如何部署RichFaces porlet和RichFaces的多种特性和功能。

Jeff Barr谈论Amazon Web服务

Amazon Web Services(AWS)的传道者Jeff Barr讨论了SimpleDB、S3、EC2、SQS、云计算、Amazon的不同服务如何与应用交互、AWS的起源、SimpleDB和微软SQL Server Data Services、AWS cloud的全球化、三月份的AWS停机。

用Erlang实现领域特定语言

Erlang的并发模型很有名,它的健壮性也很有名。但其他方面呢?在这篇文章里,Dennis Byrne演示了如何用Erlang建立内部DSL。

基于Rails的企业级应用剖析

本视频主要以FreeWheel为例,对一个基于Rails的企业级应用进行了剖析。其中包括:FreeWheel的架构、部署、数据库的问题、REST API、敏捷开发过程、如何去写测试以及持续集成等等。

JavaFX技术预览

JavaFX显示了Sun的Java系列产品市场方向的一个重大转变。随着1.0版的即将发布,InfoQ以JavaFX预览版为参考,与Sun高级工程师Joshua Marinacci探讨了即将发布的1.0正式版。

剖析短迭代

敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。