构建的可伸缩性和达到的性能:一个虚拟座谈会
这个由业界主要专家们参加的座谈会探究了在使应用程序具备尽可能好的伸缩性及性能的过程中所面临的挑战和思考过程。
- Architecture, Java, .NET, Ruby,
作者 Sebastien Auvray译者 宋玮 发布于 2007年6月6日 下午9时0分
正如以前所说,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所提供的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
这个由业界主要专家们参加的座谈会探究了在使应用程序具备尽可能好的伸缩性及性能的过程中所面临的挑战和思考过程。
本视频主要对OpenSocial进行了分析,并对实现的方式进行了介绍。其中包括:OpenSocial的开发经验、Container Provider的技术准备、平台的构成要素、具体的规范、以及对未来的展望。
Memcached在大型网站被应用得越来越广泛,但是Java客户端并不多,本文作者基于现有的开源客户端进行了封装优化,并翔实记录了这一过程。
在他们文章的第二部分,作者探讨了动态业务应用的架构并介绍了资源容器的概念。他们示范了如何在JEE之上构建这个架构,以及它如何影响实现生产力。
ClickOnce让WinForms应用程序的部署轻而易举。David Cooksey演示了如何在ASP.NET中编写一个HttpHandler来实现对ClickOnce部署的版本细分。
本文是Productive Java with Ruby系列文章的第二篇,通过上一篇的介绍,我想大家对如何利用Ruby进行单元测试有了一个基本的了解,从这里开始,我将和大家一起讨论一些利用Ruby进行单元测试时的高级话题。
《应用SOA》是由四位一流SOA专家合著关于SOA的新书,其主旨是帮助你成功地实施SOA。尤其是,这本书将帮助你把你的SOA项目与企业架构、IT治理、核心数据和BPM项目结合起来。
没有回复
回复