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

正如以前所说,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)和统计数据
FiveRuns:第一个产品级Rails管理套件_第1张图片

随后还有三个附加产品将帮助: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所提供的BleakHouse或RailsBench是怎样的工具呢?

使用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

你可能感兴趣的:(FiveRuns:第一个产品级Rails管理套件)