InfoQ

InfoQ

新闻

我的书签

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

该内容已经被标记书签!

标记书签错误,请重试!

FiveRuns:第一个产品级Rails管理套件

作者 Sebastien Auvray 译者 宋玮 发布于 2007年6月6日

领域
架构 & 设计,
企业架构,
语言 & 开发
主题
性能和可伸缩性 ,
Ruby on Rails ,
Ruby ,
SaaS
标签
Ruby on Rails ,
RubyConf

正如以前所说,Rails缺少用于管理和监控应用程序的生命周期的专业套件。随着行业第一个Rails企业管理套件(RM-Install和RM-Manage)的发布,FiveRuns成为首先涉足这一领域的公司之一。该套件以管理Rails应用全生命周期为目的,涵盖了从自动创建及维护一个完整的Rails开发环境,到确保Rails应用在生产中良好运行。

RM-Install是一个免费的、多平台测试过的、为企业准备的Rails堆栈,它能使公司马上着手开发和部署其Rails应用程序。

RM-Manager与FiveRuns企业管理平台无缝地集成在一起,来监控和管理Rails应用内以下框架领域的产品性能:

  • Controller和Action性能——通过分析和统计来帮助识别应用程序时间开销在哪儿
  • ActiveRecord交互——看哪个model被调用的次数最多及哪次交互最慢
  • View性能和分析——关于全局和单个View调用和展示性能的详细信息
  • 缓存有效性——分析及报告片段和页面缓存
  • 数据库连接使用情况——应用的数据库连接使用详细分析
  • 事务分析——详细显示事务概览图(Transaction Profile)和统计数据

随后还有三个附加产品将帮助:Rails应用投入产品使用前期(Pre-production)的性能测试、发布和端到端可视化。监控套件的一个局限是只能作为托管服务(Hosted Service——SaaS)来用,而不能作为单独应用使用。

InfoQ有机会就Rails、RM-Manage和FiveRuns公司本身等问题采访了FiveRuns团队。感谢Joshua Dilworth、Oliver Schmelzle和Olivier Thierry在百忙之中接受采访!

关于RM-Manage,你们说:“Rails中没有Hooks或API,可以被作为收集器来查看它的性能”。Stefan Kaes所提供的BleakHouseRailsBench是怎样的工具呢?

使用RM-Manage,我们开始创建一个解决方案,以允许管理员和开发者在真实的产品环境中监控他们的Rails应用。我们相信我们是第一个提供该解决方案的公司。

为达到这一目标,我们必须创建一个仪器层和通信基础设施来实时搜集所有重要的Rails信息,同时还不能影响产品应用的性能。我们还必须考虑多处理器、多机器上的典型分布式Rails应用的因素(即,跨多服务器的Mongrel包)。我们认为监控你的产品级Rails应用还需要了解你的程序整体运行环境的性能状态,包括操作系统、Web服务器和数据库。这就是为什么RM-Manage是与FiveRuns管理平台直接集成在一起的原因。

我们认为BleakHouse和RailsBench对开发者来说是非常有用的工具。可是它们的关注点不同,用于产品环境就显得不够广泛和典型了。BleakHouse是帮助发现Rails应用内存泄露的,但不能提供其它性能察看功能。而且它显著地减慢了单实例Rails应用的运行速度。RailsBench是帮助针对目标Rails应用创建一个非实际环境下的加载。以允许为特定交易模式下的所有应用程序性能建立基准。但是,它不能直接提供实际产品部署环境下Rails应用的性能察看功能。

你们对最近Twitter团队所提出的用DTrace方法来跟踪CPU使用情况的方式有什么看法?你们认为RM-Manage也能监控像Twitter这样的应用吗?

DTrace是一个不可思议的内核级工具,用来调试低级别的特定类型性能问题。对于Twitter的情况,我们了解到他们把Ruby解释器源码内嵌到了所谓的DTrace探测器中。这使得它们能更好的了解Ruby解释器是如何运转的以及它(Ruby解释器)是怎样影响Rails框架的。

这种低级别的跟踪信息对Ruby解释器的开发者,以及在一定程度上对Rails核心团队来说是有用的。可是,一个典型的Rails应用的开发者将会被DTrace所提供的大量数据所淹没。

我们发现我们的客户想要了解的是许多实际的应用程序信息:哪个Controller执行得最慢?哪个Action被调用得最多?哪个ActiveRecord类对数据库造成了最多负载?

这些恰恰是RM-Manage的优势且RM-Manage提供了所有必要的信息——通过一个灵活的、基于Web的界面呈现给用户。DTrace日志文件不能解决上述问题。

你们怎样去监视系统?你们正在用弱对象空间(Weak ObjectSpace)吗?你们使用被改良过的RubyVM吗?你们能监控JROR(JRuby on Rails)吗?

RM-Manage仪器层被打包成Rails插件(plugin),而且100%用Ruby编写的。它不需要被改良的Ruby解释器或使用 ObjectSpace。由于该层是用Ruby编写的,因此也可以跑在像JRuby这样的其它Ruby实现上(前提是它们的解释器实现了所有 Ruby1.8.6的功能)。但我们的仪器层还没有在JRuby上测试过。

为什么RM-Manage只能作为SaaS(托管服务)使用?

对我们来说,SaaS分发模式和认购定价(Subscription Pricing)是系统管理的方向。FiveRuns管理平台提供了广泛的监控能力:覆盖到了操作系统、应用服务器、Web服务器和数据库。对我们的客户来说易用性且基于web是很重要的。而且这也能使我们很快与其他竞争产品区分开。

你们有把它作为一个独立应用卖出去或开源的计划吗?

该Rails插件只对我们的智能客户端可用,而智能客户端又依次被我们的企业管理平台使用。该智能客户端Rails插件使得Rails应用性能信息和可用信息得以搜集,并最终显示在RM-Manager应用上。现在还没有开源仪器层(封装为Rails插件)的计划。

在波特兰的RailsConf上,FiveRuns在Rails社区展示了他们的东西,并由CEO Steven Smith发表演说(“企业不是四个字母组成的单词”),他们还打出了引人注目的标题“如果V代表烦恼:用于视图瘦身的模式”。Fiveruns有14个职员从事Rails和Rico。他们的短期目标包括增加更详细的对Rails栈其它部分的监控,例如Mongre和PostgreSQL。长期目标,他们正在进化出一个全面的Rails管理套件。

查看英文原文:FiveRuns: First Production Rails Management Suite

译者 宋玮 有多年软件开发经验,长期担任技术管理和项目管理工作,一直关心开源软件的发展动态以及软件过程和敏捷开发的实践探索。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪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

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。