New Relic升级RPM,改善了协作和集成性能

在对开发者的协作化和集成化工作进行了漫长的改进之后,New Relic终于发布了RPM 1.2。

RPM 1.2引入了一些新特性,能够很好地处理当前让Ruby on Rails开发者比较头痛的地方。InfoQ在最近的一个会议上遇见了New Relic的CEO Lewis Cirne,借此机会,我们能够得到第一手的关于这些特性的信息。Lewis和我们一起讨论了这些特性,并且解释了这些特性将会如何在开发团队中使用。

当被问到名为“部署分析和追踪”的新特性是什么,以及为什么它对开发者来说是一个重要更新时,Lewis说道:

当开发者在应用程序中加入新的代码的时候,他们会在一个临时的环境中测试,然后当代码合格可以发布的时候,再使用例如Capistrano这样的部署工 具,将代码部署到产品中。部署是应用程序的生命周期中关系到性能和稳定性最重要的时间段之一。新的特性或者改变可能会引入未预见的性能问题。RPM现在以 如下方式支持这种关键的部署过程:首先,我们标记出每个部署的时间,在适当的时候提醒开发者应该在这个时间发布一个应用程序的最新版本,他们能够在每个图 中直观地看到版本部署前后性能的对比。其次,我们在一个存档文件中保存每个应用程序的所有关键的性能指示器,团队能够从中看到在版本的升级过程中性能的改 进情况。

开发者能够从这类工具中获取的信息显然是非常重要的,其详细程度决定了这个工具是否有用,Lewis告诉我们哪些我们可以期待:

对于应用程序每个部署的新版本,自从部署之时,RPM就保存了部署的名称、时间、负责人以及CPU平均占用情况、内存使用情况、应用程序反应时间、吞吐 量、数据库更新回应以及每分钟错误数。这个特性使得团队能够追踪器进程。同样能够帮助团队快速认识到他们发布的版本是否存在重大问题。使用RPM的深究功 能,用户可以在一个非常细的粒度上追踪问题──特定的SQL查询,特定的控制器行为等。

Lewis同样也告诉我们RPM集成了其他的开发交流工具的特性,包括那些我们经常使用的交流工具:

一个开发者团队会在工作中使用大量的工具来编码、测试、部署、设定工作优先级和交流。但是当团队快速开发以及面临截止日期的压力的时候,在不同的工具之间 转换是一件非常让人不爽的事情。这种情况经常需要在工具之间进行大量的剪切和粘贴。用户在使用RPM集成这些常用工具的时候,将不会面临这样的问题。 Twitter经常被团队用来进行交流,新的RPM支持当检测到应用程序中出现问题或者新的部署已经完成的时候,发送信息(tweet)到团队的账户。 Tweet包括RPM中的相关页面链接。Campfire是另外一个设计用来快速发布消息的工具。RPM同样能够发送事故警告以及部署通知到 Campfire帐户。Lighthouse是一个错误标签系统。在RPM的错误页面中,我们已经创建了一个链接,叫做“在Lighthouse上创建一 个标签”。点击这个链接,所有的错误数据都会发送到Lighthouse,并且一个问题标签会被自动创建。Capistrano是一个在Ruby on Rails社区非常流行的部署工具。RPM能够自动检测到应用程序的新部署,并且从Capistrano获取关于这次部署的信息,例如本次部署的负责人, 更新信息以及其他在出错时的有用数据。

Lewis继续谈论了新的性能数据API的前景以及第三方开放人员的机会:

事实上我们已经看到了一些关于此API的有趣的应用。这个API主要功能为如下两点──它自动从另外一个应用程序中创建一个New Relic RPM帐号,并且允许最高等级的性能数据转入其他的程序或者环境中。我们这个API的第一个大规模应用是RightScale,云管理工具的领导厂商。他 们将API函数和他们的云管理控制台集成在一起。所以现在可以通过云管理解决方案来监控部署在类似于Amazon EC2的云上的Rails应用程序。我们有一些其他的顾客和合作伙伴也在努力集成我们的API。有一个集成程序是将应用程序的数据在浏览器的状态栏上显 示。现在也有两个另外的云样例。我们现在举办了一个API的应用竞赛,鼓励我们的顾客更加创新地将我们的API集成进去。

RPM1.2的一个新特性是笔记的思想,使得团队成员能够更加方便快捷地交流。它是这样一种功能:

笔记是一个非常激动人心的特性,它被设计用来更好更丰富地在团队内部进行交流。任何拥有RPM帐户的人都能够看到这个应用程序的一些笔记。使用笔记功能, 任何RPM用户都能够截取一张性能图表,对其进行分析观察之后,发送他的笔记和这张图表到一个共享的协作空间中。然后,他可以截取另外一张图,进行分析研 究之后,附加在之前的笔记之后,然后继续进行分析。他可以允许他的团队成员检查他观察的内容并且从自身的角度来进行分析。图表、数据以及观察结果都会被存 储下来以供后续使用。这是一个非常优秀的教学工具。他们也使得团队可以在时间允许的情况下审视记录的数据,从而更好地理解应用程序的行为。

Rub on Rails开发者明白有一个高效的控制器和数据库存取是多么的重要。一个名为“控制器和数据库概要”的最新特性能够帮助开发者使用一些插件。这个特性描述如下:

这个特性提供的报告虽然相似,但是对于团队寻找持续改善性能的方法是非常有用的。开发者经常扪心自问的一个问题是“我下一步怎么做才能更好地改善性能 呢?”这些报告帮助他们找到了答案。控制器概要提供了一份报告,列出了应用程序中所有的控制器行为。RPM用户可以选择一个时间窗口,例如最近24小时。 RPM将每个控制器行为在当前时间窗口内的如下数据整合起来---控制器调用的时间,平均响应时间,平均时间的标准方差(有时候平均时间没有包括偶尔产生 的非常坏的响应时间──为什么?),最大最小响应时间(给出概要),时间窗口中控制器行为的总消耗时间以及每个控制器行为消耗时间的百分比。从这个报告 中,一个开发者可以看到哪个控制器调用最为频繁,其性能如何。数据库报告也和控制器报告类似,但是关注于分析ActiveRecord模型操作(数据库调 用)的性能。它给出了在一个时间窗口内所有的ActiveRecord操作,并且允许你使用一些标准对这些操作进行排序,例如总消耗时间、平均时间和吞吐 时间等等。你可以和昨天或者一周前的同一时间窗口内的操作进行对比,从中可以观察到应用程序的改进过程。

当问到哪一个特性对于开发者来说是最重要的,Lewis说:

虽然我不想像个经济学家,但是事实上我必须得像一个经济学家那样来说。我想部署特性将会被那些频繁更新程序的团队广泛接受。我们有一些顾客需要每天部署, 所以你可以想象这个特性的受欢迎程度。对于那些队员分散在世界各地的团队来说,我们的多样化集成和协作工具将会非常有用。最后如果你有一个程序需要大量的 数据库操作,并且依赖于优秀的

更多关于新RPM版本的信息请参见New Relic官方网站。可用的免费版本叫做RPM Lite,但是用户需要访问可用版本列表来决定哪个版本是最适合的。只需要大约两分钟来做这个决定。

查看英文原文:New Relic updates RPM to Improve Collaboration and Integration

你可能感兴趣的:(New Relic升级RPM,改善了协作和集成性能)