热门标签 | 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已经很满意了,语言的发展是个增量的改进。一些人认为这是场革命,不过我并不这么认为。未来更多的要看工具而不是语言本身,这才是未来的发展方向。


推荐阅读
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 装饰者模式(Decorator):一种灵活的对象结构设计模式
    装饰者模式(Decorator)是一种灵活的对象结构设计模式,旨在为单个对象动态地添加功能,而无需修改原有类的结构。通过封装对象并提供额外的行为,装饰者模式比传统的继承方式更加灵活和可扩展。例如,可以在运行时为特定对象添加边框或滚动条等特性,而不会影响其他对象。这种模式特别适用于需要在不同情况下动态组合功能的场景。 ... [详细]
  • 在使用Eclipse进行调试时,如果遇到未解析的断点(unresolved breakpoint)并显示“未加载符号表,请使用‘file’命令加载目标文件以进行调试”的错误提示,这通常是因为调试器未能正确加载符号表。解决此问题的方法是通过GDB的`file`命令手动加载目标文件,以便调试器能够识别和解析断点。具体操作为在GDB命令行中输入 `(gdb) file `。这一步骤确保了调试环境能够正确访问和解析程序中的符号信息,从而实现有效的调试。 ... [详细]
  • 系统数据实体验证异常:多个实体验证失败的错误处理与分析
    在使用MVC和EF框架进行数据保存时,遇到了 `System.Data.Entity.Validation.DbEntityValidationException` 错误,表明存在一个或多个实体验证失败的情况。本文详细分析了该错误的成因,并提出了有效的处理方法,包括检查实体属性的约束条件、调试日志的使用以及优化数据验证逻辑,以确保数据的一致性和完整性。 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • 本项目通过Python编程实现了一个简单的汇率转换器v1.02。主要内容包括:1. Python的基本语法元素:(1)缩进:用于表示代码的层次结构,是Python中定义程序框架的唯一方式;(2)注释:提供开发者说明信息,不参与实际运行,通常每个代码块添加一个注释;(3)常量和变量:用于存储和操作数据,是程序执行过程中的重要组成部分。此外,项目还涉及了函数定义、用户输入处理和异常捕获等高级特性,以确保程序的健壮性和易用性。 ... [详细]
  • 本文详细解析了Autofac在高级应用场景中的具体实现,特别是如何通过注册泛型接口的类来优化依赖注入。示例代码展示了如何使用 `builder.RegisterAssemblyTypes` 方法,结合 `typeof(IEventHandler).Assembly` 和 `Where` 过滤条件,动态注册所有符合条件的类,从而简化配置并提高代码的可维护性。此外,文章还探讨了这一方法在复杂系统中的实际应用及其优势。 ... [详细]
  • 本指南详细介绍了如何利用华为云对象存储服务构建视频点播(VoD)平台。通过结合开源技术如Ceph、WordPress、PHP和Nginx,用户可以高效地实现数据存储、内容管理和网站搭建。主要内容涵盖华为云对象存储系统的配置步骤、性能优化及安全设置,为开发者提供全面的技术支持。 ... [详细]
  • VS2019 在创建 Windows 恢复点时出现卡顿问题及解决方法
    在使用 Visual Studio 2019 时,有时会在创建 Windows 恢复点时遇到卡顿问题。这可能是由于频繁的自动更新导致的,每次更新文件大小可能达到 1-2GB。尽管现代网络速度较快,但这些更新仍可能对系统性能产生影响。本文将探讨该问题的原因,并提供有效的解决方法,帮助用户提升开发效率。 ... [详细]
  • 为了提升单位内部沟通效率,我们开发了一套飞秋软件与OA系统的消息接口服务系统。该系统能够将OA系统中的审批、通知等信息自动同步至飞秋平台,确保员工在使用飞秋进行日常沟通的同时,也能及时获取OA系统的各类重要信息,从而实现无缝对接,提高工作效率。 ... [详细]
  • 深入解析:Synchronized 关键字在 Java 中对 int 和 Integer 对象的作用与影响
    深入探讨了 `Synchronized` 关键字在 Java 中对 `int` 和 `Integer` 对象的影响。尽管初看此题似乎简单,但其实质在于理解对象的概念。根据《Java编程思想》第二章的观点,一切皆为对象。本文详细分析了 `Synchronized` 关键字在不同数据类型上的作用机制,特别是对基本数据类型 `int` 和包装类 `Integer` 的区别处理,帮助读者深入理解 Java 中的同步机制及其在多线程环境中的应用。 ... [详细]
  • Vim 编辑器功能强大,但其默认的配色方案往往不尽如人意,尤其是注释颜色为蓝色时,对眼睛极为不友好。为了提升编程体验,自定义配色方案显得尤为重要。通过合理调整颜色,不仅可以减轻视觉疲劳,还能显著提高编码效率和兴趣。 ... [详细]
  • 本文详细解析了 Yii2 框架中视图和布局的各种函数,并综述了它们在实际开发中的应用场景。通过深入探讨每个函数的功能和用法,为开发者提供了全面的参考,帮助他们在项目中更高效地利用这些工具。 ... [详细]
  • 本文详细解析了逻辑运算符“与”(&&)和“或”(||)在编程中的应用。通过具体示例,如 `[dehua@teacher~]$[$(id -u) -eq 0] && echo "You are root" || echo "You must be root"`,展示了如何利用这些运算符进行条件判断和命令执行。此外,文章还探讨了这些运算符在不同编程语言中的实现和最佳实践,帮助读者更好地理解和运用逻辑运算符。 ... [详细]
  • 二分查找算法详解与应用分析:本文深入探讨了二分查找算法的实现细节及其在实际问题中的应用。通过定义 `binary_search` 函数,详细介绍了算法的逻辑流程,包括初始化上下界、循环条件以及中间值的计算方法。此外,还讨论了该算法的时间复杂度和空间复杂度,并提供了多个应用场景示例,帮助读者更好地理解和掌握这一高效查找技术。 ... [详细]
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社区 版权所有