ReplayDIRECTOR 简介——针对 Java EE 的持续应用程序监控和生产调试工具

阅读数:802 2010 年 10 月 26 日

话题:JavaDevOps语言 & 开发

日前,Replay Solutions宣布 Larry Lunetta 已经离开 ArcSight 公司,加入到他们当中,就任主席、CEO 和董事会成员。 在 ArcSight 任职的七年间,Lunetta 帮助创立了公司,并且实现了每年一亿美元以上的销售业绩。 Lunetta 还曾经在多个创业公司和公共的硅谷公司中担任高管,包括ePAC TechnologiesBranders.com等公司。

Lunetta 取代了 Replay 公司的共同创立者 Jonathan Lindo 的职位,而后者会继续作为公司主管产品和技术的执行副总裁,负责领导开发团队和公司的合作伙伴。 Lindo 告诉我们:

对于把新技术发布到市场中,Larry 拥有极为丰富的经验。 他具备开发和发展、合并公司的背景,这会让 Replay Solution 不仅能够发挥生产出高质量代码、快速对业务需求变更做出响应的优势,而且同时还会找到难以发现的可能被恶意软件所利用的缺陷和错误,从而提高关键应用程序的安全性和灵活性。

Replay Solution 的核心产品——ReplayDIRECTOR for JavaEE——是一种软件调试工具,我们可以使用它来捕获在生产环境运行的系统中发生的事件,允许它们依次在虚拟的环境中重现,从而识别出导致问题的根本原因。 运行这个产品确实会产生一些负载,但是公司声明那会非常小——在 1-5% 的范围之内。 Lindo 对产品做出了说明:

……通过捕获、记录和重现非决定性的时间和输入而工作。 我们会在载入类的时候使用比特码工具进行分析,从而知道非决定性的数据什么时候会进入到应用程序中,并添加少量的比特码,从而在运行过程中捕获和记录数据。

我们使用的是小部分 JVM TI 方法,从而在载入的时候为应用程序提供工具。 我们实际上没有使用 redefineClass(),而是使用了 JVM TI 和运行时所提供的带有其它特性的执行工具。

我们能够把负载控制在很低的程度的一个主要原因就是,我们只关心在应用程序中流动的数据的很小一部分。 因为大多数代码的执行都是决定性的,我们的系统会忽略这些代码,从而降低负载。

我们讨论了为什么公司创建了自定义的虚拟化解决方案,而不是基于其他产品——像 VMware 的 Hypervisor 来构建。 Lindo 告诉我们:

我们从头开始来创建自己的应用程序虚拟化,是为了让性能和灵活性都达到所需要的级别,从而发布无缝和透明的解决方案。 大多数虚拟化技术都在系统级别上操作,像 VMware 的 Hypervisor 就是这样。 我们是在应用程序层上进行虚拟化的,这允许 ReplayDIRECTOR 在重现的时候把应用程序的执行和操作系统以及硬件隔离开来。 这正是让我们能够在不同的机器上重现和重新产生任何应用程序问题的原因,不管这台机器是虚拟的还是物理存在的。

ReplayDIRECTOR 能够在系统级的虚拟化产品——包括 VMware、microsoft、Virtualization 或者 Citrix Xen——上面都能够很好地工作。

ReplayDIRECTOR 面临来自于很多大型厂商——像 VMware、Microsoft 和 BMC——的挑战。 VMware 在工作站产品中也有记录 / 重发的特性,微软在 Visual Studio 2010 中提供了 IntelliTrace,而 BMC 也有名为 AppSight 的产品。 所有产品都是为了对付相同的问题,但是据 Replay 公司所说,他们的产品的特点就在于它是唯一能够隔离并记录应用程序的产品。 从而,这让开发者可以重新运行触发了缺陷的操作,提供一种回顾式的方法,可以在调试器中重新创建生产环境中发生的错误。

ReplayDIRECTOR 需要在应用程序服务器上安装一个代理,当前它已经通过了 Tomcat、JBoss 以及 Windows、Linux 和 Solaris 上的 Weblogic 的验证。 它可以通过的免费的托管环境提供单独的 JVM,也可以 3800 美元 / 月的价格提供 20 个 JVM,或者提供一种稍微便宜一些的独立下载,那样 20 个 JVM 每月大概需要 3200 美元。 你可以在他们公司的站点上免费下载

查看英文原文:Introducing ReplayDIRECTOR - Continuous Application Monitoring and Production Debugging For Java EE