写点什么

Capistrano 的新竞争对手:Vlad the Deployer

  • 2007-08-22
  • 本文字数:1845 字

    阅读完需:约 6 分钟

Capistrano 是用来发布 Ruby 应用特别是 Rails 应用的常用部署工具,如今它面临 Ruby Hit Squad 开发的 Vlad the Deployer 的挑战。开发组的人员包括 Ryan Davis、Eric Hodel、Wilson Bilkovich 和 Shaners Becker ;在经过 4 天的编程之后(InfoQ 提供对 Ryan Davis 的专访),他们就发布了这个工具。很多原因推动了他们开发 Vlad,其中之一是由于 Capistrano 对其它软件的高度依赖。

我们与 Ruby Hit Squad 的部分成员探讨了他们开发 Vlad the Deployer 的动机。内容见下文,第一个问题是:Vlad 是否比 Capistrano 更易于使用。

Eric Hodel(下面简称 EH):复杂性更低、更容易理解和维护,就是这么简单。Wilson Bilkovich(下面简称 WB):不只是代码,而且在用户体验上也更加简洁。我曾遇到过这样的情况:在项目收尾的时候,我很难将 Capistrano 的配置文件直接推给客户。从经验的角度来看,Vlad 就没有那么复杂。我们频繁的使用 flog 进行检查,并选择使用得分最低的代码。

EH:同时我们内置最常用的部署操作,来让大部分用户可以用很简单的方式来入手并开始运行应用。在最近一次的 Seattle Ruby Brigade 会议中,Geoff Grosenbch 本来打算用整晚的时间来学习如何使用 Vlad,实际上他用 5 分钟就完成了。

Ryan Davis(下面简称 RD):没错,我们试着提供与 Capistrano 同样多的功能,但是复杂程度更小:

Flog(1.1)得分:

net-ssh-1.1.2.gem : 7528.3

needle-1.3.0.gem : 1685.4
capistrano-2.0.0.gem: 5609.2(几乎是 Vlad 的六倍)
TOTAL = 14822.9(比 vlad 加依赖关系的三倍还多) vs.

open4-0.9.6.gem : 742.0(而且我们真的只用了一个方法)

rake-0.7.3.gem : 3208.9(其中包括 contrib)
vlad-1.0.0.gem : 945.5
TOTAL = 4896.4

说明: Flog 是一个用来检查 Ruby 代码优劣程度的工具,得分越高说明代码问题越多。该工具使用了 Ryan Davis 的 ParseTree 库(通过 ParseTree 的 AST 表格)来分析 Ruby 代码。它对代码质量的多个方面进行检查,比如:对define_methodeval的使用,对method_added之类的钩子(hook)的使用,对开放类的使用,以及其他一些会增加潜在复杂度的概念的使用等。

Ruby Hit Squad 接下来提供了更多开发 Vlad 的原因:

RD:其他一些原因:
1)要理解 Capistrano、Net::SSH 和 needle 对我来说太难了。最近我对这些“聪明”的代码有点过敏。
2)要想把 Net::SSH 作为一个实际的 SSH 客户端来使用,问题太多了。
3)我需要花几个小时的时间来诊断 Net::SSH 的问题,但是得到的回应却是“(耸了耸肩)SSH 有毛病”。
4)最后一个原因,应用的部署经常是在最后关头,并且是在压力下进行的,这时你肯定不希望面临太多部署上的问题。它应该就是可以工作的。EH:Capistrano 正常运行需要依赖很多软件,并且与它们仅紧紧的耦合在一起。我们需要的则是一样简单易懂的东西,于是我们选择基于 rake 来开发,因为它更为人所熟知,并且更容易理解。

WB:如果我对 Capistrano 的意见仅仅是一些 bug 的话,我会提交相关的补丁。但是我更希望发布工具的名字能够容纳在 T 恤上面。

当被问到相对 Capistrano,他们是否更加推荐 Vlad 时,他们回答道:

RD:绝对的。我们的定位是:用 20% 的代码实现 Capistrano 80% 的功能,所以将目标放在 Capistrano 80% 的用户上面是很合理的。那些真正的内行用户们可能希望使用 Capistrano 全部功能,因此不想使用其他软件。WB:绝对的。我们希望接纳 Capistrano 的绝大部分用户,以及那些不知道如何让 Capistrano 开始运转的人们。

EH:我们还希望 Vlad 不只是用来部署 Web 站点。在很快将要发布的 1.1 版本中,用户可以略过缺省的 Vlad 建议,而是将其用作通用的系统管理工具。

当被问到 Capistrano 和 Vlad 项目是否有可能进行合作或是发生互动时,Ruby Hit Squad 看起来非常积极:

WB:我希望看到一个能够执行不同任务的、基于特定系统的命令库,这两个工具都会用到类似的东西。在搞定一些相似的细节之后,我们可以共享一个支持 SCM 的程序库。RD:当然有可能啦……不过我现在不愿意做太多的预测。但是我同意 Wilson 的观点,存在一个能够让我们彼此都受益的合作空间。

现在,你对 Capistrano 的经验是什么呢?

查看英文原文: Capistrano gets competition: Vlad the Deployer - - - - - -

译者简介:郑柯,目前就职于一家医药电子商务公司,从事医用耗材电子商务平台的开发与维护。有志于在中国的软件开发业界推广 Agile 的理念和方法论,笃信以人为本,关注 Ruby,关注敏捷,关注人。参与 InfoQ 中文站内容建设,请邮件至 china-editorial[at]infoq.com

2007-08-22 03:301287
用户头像

发布了 479 篇内容, 共 162.0 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

最新基准测试:Kafka、Pulsar-和-RabbitMQ-哪个最快,阿里Java笔试题目

Java 程序员 后端

拼多多3面+余额宝4面+蚂蚁金服5面,Java自学宝典

Java 程序员 后端

拿捏了!ConcurrentHashMap!,宝塔linux建站教程

Java 程序员 后端

普通程序员就不能有拥有架构师光环?想要建立架构思维,这份京东架构技术精髓一定不能错过

Java 程序员 后端

拜读!程序员60K+高薪技术,spring整合mybatis原理

Java 程序员 后端

推荐这款牛掰的 API 敏捷开发工具,java程序设计教程课后题答案

Java 程序员 后端

服了!阿里资深架构师发布SpringCloud笔记,在GitHub标星已达81

Java 程序员 后端

排除MySQL中常见错误的实用招术,什么是微服务扩展性和高可用、可扩展性

Java 程序员 后端

数据结构系列第六部分:排序,Github爆火的《高并发秒杀顶级教程》

Java 程序员 后端

如何用内网渗透突破安全策略

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

数据库索引的原理,springcloud视频百度云

Java 程序员 后端

数论 - 约数基础 【 试除法求所有约数 + 约数个数和约数之和

Java 程序员 后端

斯坦福高效睡眠法-读书笔记,这可能是目前最全的

Java 程序员 后端

最新版SpringBoot开发实战:阿里技术官从基础到项目综合实战pdf

Java 程序员 后端

本科毕业斩获字节offer的我做了什么准备?大厂面试经验试题分享

Java 程序员 后端

推荐一款技术人必备的接口测试神器:Apifox,不愧是大佬

Java 程序员 后端

数据结构的栈和队列(这不进来看一看),计算机java语言入门

Java 程序员 后端

新人问一般都用哪些 Linux 命令,我把这个扔了过去,linux基础及应用教程课后答案

Java 程序员 后端

最近被安排搞搜索接口优化,压测了4次,才勉强达到要求

Java 程序员 后端

本科毕业斩获字节offer的我做了什么准备?大厂面试经验试题分享(1)

Java 程序员 后端

来自北京大学NOIP金牌选手yxc的常用代码模板3——搜索与图论

Java 程序员 后端

数据库中间件MyCat实战笔记(第一步),arm架构linux系统

Java 程序员 后端

无论你是什么职业,这篇职场生存法则都是你必备的,java微服务架构技术

Java 程序员 后端

普通本科,毕业六年,复盘一个月,mybatis一级缓存和二级缓存面试题

Java 程序员 后端

是什么让普通的链表也能达到二分查找的效率,你知道吗?

Java 程序员 后端

月薪60k的Java开发在阿里是什么级别?对技术能力有哪些要求?

Java 程序员 后端

有个厉害的程序员老婆是什么体验?,mysql性能优化面试题

Java 程序员 后端

是什么Java面试题PDF被Git全面封杀?刷完这套题已经拿完9个Offer!

Java 程序员 后端

提升开发效率N倍的20+命令行神器,赶紧收藏了,mybatis原理图

Java 程序员 后端

数据库ACID四大特性到底为了啥,一文带你看通透,java支付宝支付接口教程

Java 程序员 后端

数据源的概念是什么?Springcloud+Mybatis如何使用多数据源

Java 程序员 后端

Capistrano的新竞争对手:Vlad the Deployer_Ruby_Werner Schuster_InfoQ精选文章