BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

ThoughtWorks开源持续交付工具Go

| 作者 Abel Avram 关注 7 他的粉丝 ,译者 马德奎 关注 0 他的粉丝 发布于 2014年3月11日. 估计阅读时间: 6 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

近日,ThoughtWorks开源了名为Go的持续交付(CD)工具。它的前身是CruiseControl,提供了一个覆盖整个代码开发过程——持续集成、测试和部署——的管道式过程。

尽管Go的GitHub账户还在等待接收源代码,但开发人员已经可以获取可用于Windows、Mac OS X、Linux、Solaris或者是作为一个Java JAR包提供的二进制安装文件,既有服务器端,也有代理。

为了了解更多有关Go的计划,InfoQ采访了ThoughtWorks Studios开源项目经理Ken Mugrage。

InfoQ:是什么使Go富有吸引力?

从管道概念发展而来的为构建/测试/部署过程建模的能力。既然Go的构建目的是成为一款持续交付工具,所以这是该产品的核心概念。以管道作为最重要的概念,并管理依赖关系,只要“操作正确”,即使是最复杂的工作流程也不难建模。许多其它产品也试图设计上同样的功能,但通常虚有其表,或者是插件使它看起来像管道。

InfoQ:跟我们聊一些Go的历史吧。

2007年,Go最早是作为一款名为“Cruise”的商业产品创建。创建它的团队很快就意识到,以前的持续集成解决方案的架构,无法支持我们实现网格和构建、测试、部署流程所要采用的方式。这使我们决定创建一个全新的商业产品。后续版本见证了产品在这两个特性上的发展,并具备了支持大型构建场和多个大型团队的能力。我们的2.0产品更名为Go,包含了在整个网格上运行大型验收测试套件的功能,并能够反馈目前哪些测试中断了以哪次检入中断了它们。在当时的商业CI工具中,这是我们独有的功能。

InfoQ:为什么开源Go?

简单地说,我们已经得出结论,这样做是正确的。作为一家企业,ThoughtWorks致力于推广可靠的技术实践。事实上,我们的三大指导原则(我们称之为支柱)中有这样一条,“推动IT改革,追求软件卓越”。我们将开源Go产品看作是推广可靠的持续交付实践的一个重要方式。

另外,越来越多的业内人士希望,作为平台或基础设施一部分的任意软件都是开源的。其中有各种原因:期望更高的安全性&健壮性、能够捐助、丰富的社区,坦白地讲,还有使用成本。鉴于Go是数据中心的重要组成部分,许多人将它看作基础设施。我们的客户使用Go协调他们所有应用程序的整个构建和部署周期。

InfoQ:为了实现完全自动化的部署管道,Go需要集成其它什么工具吗?

这个问题确实有点难以回答。Go本身不需要任何东西,因此,这样一个清单将由用户的构建/测试/部署周期决定。

Go协调众多的移动部件,包括推动软件由代码编写进入用户可以访问的生产环境。Go监控版本控制系统或者包存储库的变化。当检测到变化,它就会运行构建/测试/部署周期所需的其它工具,其中包括构建管理器,如Apache Ant、Apache Maven、Microsoft MSBuild;自动化测试工具,如Selenium、Twist、Cucumber;基础设施管理工具,如Chef、Puppet等,还有许多。Go可以运行任何可以从命令行运行的东西。

InfoQ:你们会继续开发Go的商业版本吗?你们还会继续提供支持吗?

我们会为Go提供商业插件和专业支持。插件将由需求决定,但它们会是诸如这样的东西,比如,对于非常大型的部署,能够连接到外部数据库(内部用的最多的是嵌入式数据库)来提升性能。

我有幸已经跟我们现有的大部分客户介绍了新模型,而且我想告诉你,无一例外,他们都很满意。

Go是一款既可以在本地又可以在云上安装的CD工具,而ThoughtWorks还提供了另外一种名为Snap的持续交付解决方案,这是一款托管的CD工具。Go可以扩展到数百台机器上的自动化CD过程;而Snap则是一款精简的工具,面向部署“需求更简单的应用程序”,Badrinath Janakiraman这样说道。他是Snap的产品负责人,他还说“这不是说一个更简单的应用程序,而只是说一个更简单的测试/部署模型。”

Janakiraman说,与Go相比,Snap的优势在于“Snap使‘无服务器的’组织(从源代码到应用程序的所有一切都托管在SaaS & PaaS服务上)能够以最小的工作量开始CD过程。一旦团队已经习惯设计按需发布的应用程序,随着部署需求越来越复杂,他们可能会选择弃用Snap。”

Snap可以用于Java、Ruby、Python、JavaScript & Node.js项目的持续集成,支持多种数据库——Sqlite3、PostgreSQL、MySQL、Redis、CouchDB、MongoDB——通过Capybara、Selenium、PhantomJS进行测试,并部署到Heroku或者AWS上。其它构建/测试/部署配置可根据要求支持。

查看英文原文:ThoughtWorks Open Sources Go, a CD Tool

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

不错 by 张章 鸥翔鱼游

看了此贴菜鸟又涨姿势了

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT