热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LiveRebel3.0发布

本文来源于我在InfoQ中文站原创的文章,原文地址是:http:www.infoq.comcnnews201402LiveRebel-3-release近日,来自爱沙尼亚的创业公司

本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2014/02/LiveRebel-3-release


近日,来自爱沙尼亚的创业公司ZeroTurnaround发布了LiveRebel 3.0。该版本增加了很多非常酷的工具,非常值得大家试一试。我们也有幸采访到了ZeroTurnaround CEO Jevgeni Kabanov以了解关于新版本LiveRebel的更多信息。Jevgeni最初在2007年担任Webmedia的研发总监时开发出了JRebel的原型,主要目的是减少软件开发时间,从那时起公司就开始不断壮大。JRebel曾在2011年赢得了JAX最具创新技术大奖。除此之外,Jevgeni还是两个开源项目Aranea与Squill的联合创建者。

对于这次发布,你认为最让你感到兴奋的地方是什么,相比于LiveRebel 2.0,新版本最大的变化又是什么?

Jevgeni:坦白地说,很多地方都让我兴奋异常。此次发布是我们一年以来不断搜集客户反馈,团队努力工作9个多月的成果。我们对产品做出了较大的调整,不过很多地方并不是一眼就能看出来的。

我们所做的最大变化就是同时发布多个应用的能力。构建一个发布工具实际上并不是那么容易的事情,其困难之处来自于两个方面。

首先是环境太多,每个人的环境都是不同的,因此要保持高度的逻辑性。产品必须要适应于每一个人,与此同时,又要保持一个良好、可预测的流程。其次就是集成。无论何时,如果有任何地方出现崩溃或是错误的情况,你都需要有一个后备计划。因此,我认为这两个领域是我们超越竞争对手的地方,也使得我们能够保持领先的地位。

在进行这些改变时所遇到的最大挑战是什么?

最大的挑战来自于构建能够覆盖我们所需的所有用例的测试工具,这需要非常广泛的覆盖面,涵盖各种各样的环境,以及可能会遇到的各种不同的失败情况。

我们花了大量的时间来构建测试,同时还构建了测试基础设施以提供相应的支持。总的来说,我们大量使用了自动化测试。我知道LiveRebel现在运行了多达45,000个测试,这需要大量的时间。我们只想确保下载并安装了产品的客户能够立刻获得卓越的体验。

这次的数据库有什么变化?

客户曾向我们反馈说之前的版本存在着一些限制。比如说,不允许部署多个同名的应用或是部署具有不同数据库模式的多个应用。这些限制基本上都是架构上的问题。我们花了一些时间解决掉这些问题,从而满足了客户的各种需求。最终,我们的产品能够适应于各种复杂多变的环境。

能否谈谈最佳实践的使用场景呢?

我们有17台服务器在运行着我们的服务,同时还有42个应用和12个不同的环境。我们可以轻松切换到LiveRebel 3.0,这要归功于多应用支持。之前,一次只能部署一个应用,现在则可以部署所有应用,所有版本。我们的基础设施团队告诉我他们非常高兴能够得到这么多的信息,他们还对发布流程感到兴奋异常。借助于LiveRebel,你只需按下一个按钮,许多事情就会自动完成了。如果某个地方出错了,那么不会出现一个应用更新而另一个应用没有更新的情况,互相依赖的应用可以做到同进退。

我们还有Java、PHP和Python应用,因此也测试了JRebel的多平台能力,结果相当不错。对于LiveRebel来说最大的一个目标就是让用户只需点击一个按钮就能完成所有的事情。借助于LiveRebel处理故障、失败的卓越方式,它的一个关键特性就是支持不停机情况下的更新,这不会对最终用户造成任何影响。我们已经实现了只需点击一个按钮就能完成更新的功能。这种流程是很多互联网巨头所采用的方式,如Flickr、Amazon等,他们都使用了持续部署,也在这方面投入了大量的人力和物力。借助于LiveRebel,用户只需要做很少的事情就能达成所愿。

看看我们的竞争对手们,这是我们最大的不同。我们所提供的特性并不是最丰富的,不过这些特性却是非常棒的。他们非常易于使用,这也是我们做事的方式。

你是否觉得这是你们在市场上脱颖而出的重要法宝?

看看我们与竞争对手的差别,我们可以做到零停机,不会让应用停止。另外,无论发生什么事情,用户是不会遇到失败的情况的。如果在发布过程中出现了问题,那么用户是感觉不到的。最后就是我们所提供的大量自动化发布工具,用户可以免费下载并测试,无需任何专业的服务就能上手。

你之前曾说过不会创建持续集成工具,不过现在你的产品却在向这个方向靠拢,你觉得未来会怎样?

我认为持续集成应该是个用于构建和测试的脚本平台。我们所聚焦的是最后一公里——你已经编写好了所有的脚本、运行了所有的测试,不过最后一公里却不是那么轻松的事情,存在着很多问题。对于持续集成来说,现在有不少人已经将其扩展到了部署,我认为这么做没问题,不过要是想避免失败和停机,除了现有的工具外,人们还是需要LiveRebel这样的工具的。

LiveRebel 4.0未来的路线图是怎样的?

我们还没有想那么多,因为我们会一直倾听客户的反馈并理解他们的需求。事实上,有一些东西是我们无法忽视的,比如说云、集成管理、持续集成、DevOps等。我们会保持市场敏感度,让我们做得更好。

对于Java 8,你最期待的是什么?

我非常期待Lambdas。我认为语言正走向正确的轨道。其实,我对Java 7已经很满意了,语言的发展是个增量的改进。一些人认为这是场革命,不过我并不这么认为。未来更多的要看工具而不是语言本身,这才是未来的发展方向。


推荐阅读
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • 本文介绍了如何使用 CMD 批处理脚本进行文件操作,包括将指定目录下的 PHP 文件重命名为 HTML 文件,并将这些文件复制到另一个目录。 ... [详细]
  • 在使用Eclipse进行调试时,如果遇到未解析的断点(unresolved breakpoint)并显示“未加载符号表,请使用‘file’命令加载目标文件以进行调试”的错误提示,这通常是因为调试器未能正确加载符号表。解决此问题的方法是通过GDB的`file`命令手动加载目标文件,以便调试器能够识别和解析断点。具体操作为在GDB命令行中输入 `(gdb) file `。这一步骤确保了调试环境能够正确访问和解析程序中的符号信息,从而实现有效的调试。 ... [详细]
  • 网络爬虫的规范与限制
    本文探讨了网络爬虫引发的问题及其解决方案,重点介绍了Robots协议的作用和使用方法,旨在为网络爬虫的合理使用提供指导。 ... [详细]
  • 自动验证时页面显示问题的解决方法
    在使用自动验证功能时,页面未能正确显示错误信息。通过使用 `dump($info->getError())` 可以帮助诊断和解决问题。 ... [详细]
  • 自定义滚动条美化页面内容
    当页面内容超出显示范围时,为了提升用户体验和页面美观,通常会添加滚动条。如果默认的浏览器滚动条无法满足设计需求,我们可以自定义一个符合要求的滚动条。本文将详细介绍自定义滚动条的实现过程。 ... [详细]
  • 两个条件,组合控制#if($query_string~*modviewthread&t(&extra(.*)))?$)#{#set$itid$1;#rewrite^ ... [详细]
  • 本文详细介绍了DMA控制器如何通过映射表处理来自外设的请求,包括映射表的设计和实现方法。 ... [详细]
  • 本文详细介绍了如何利用Duilib界面库开发窗体动画效果,包括基本思路和技术细节。这些方法不仅适用于Duilib,还可以扩展到其他类似的界面开发工具。 ... [详细]
  • Spark中使用map或flatMap将DataSet[A]转换为DataSet[B]时Schema变为Binary的问题及解决方案
    本文探讨了在使用Spark的map或flatMap算子将一个数据集转换为另一个数据集时,遇到的Schema变为Binary的问题,并提供了详细的解决方案。 ... [详细]
  • 解决 Windows Server 2016 网络连接问题
    本文详细介绍了如何解决 Windows Server 2016 在使用无线网络 (WLAN) 和有线网络 (以太网) 时遇到的连接问题。包括添加必要的功能和安装正确的驱动程序。 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • 本项目通过Python编程实现了一个简单的汇率转换器v1.02。主要内容包括:1. Python的基本语法元素:(1)缩进:用于表示代码的层次结构,是Python中定义程序框架的唯一方式;(2)注释:提供开发者说明信息,不参与实际运行,通常每个代码块添加一个注释;(3)常量和变量:用于存储和操作数据,是程序执行过程中的重要组成部分。此外,项目还涉及了函数定义、用户输入处理和异常捕获等高级特性,以确保程序的健壮性和易用性。 ... [详细]
  • 解决Win10下MySQL连接问题:Navicat 2003无法连接到本地MySQL服务器(10061)
    本文介绍如何在Windows 10环境下解决Navicat 2003无法连接到本地MySQL服务器的问题,包括启动MySQL服务和检查配置文件的方法。 ... [详细]
  • 使用Jsoup解析并遍历HTML文档时,该库能够高效地生成一个清晰、规范的解析树,即使源HTML文档存在格式问题。Jsoup具备强大的容错能力,能够处理多种异常情况,如未闭合的标签等,确保解析结果的准确性和完整性。 ... [详细]
author-avatar
广大华软11级软测1班支部
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有