9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

ThoughtWorks 开源持续交付工具 Go

  • 2014-03-10
  • 本文字数:1794 字

    阅读完需:约 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

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2014-03-10 01:185342
用户头像

发布了 256 篇内容, 共 78.4 次阅读, 收获喜欢 11 次。

关注

评论

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

java 环境的搭建原来如此简单,我这小白看完也学会了,建议收藏【带附件】

CRMEB

Solana上的结算协议龙头,Zebec潜力颇受看好

股市老人

阿里云无影发布生态共荣计划,携手伙伴推动终端算力上云

阿里云弹性计算

阿里云 生态链 无影云电脑

简单WiFi控制小车系统(树莓派+python+web控制界面)

Five

树莓派 8月月更

怎么理解后App时代的轻应用技术

擦机鼻涕

App 小程序容器 轻应用 快应用

阿里妈妈展示广告引擎新探索:迈向全局最优算力分配

阿里技术

经验分享 算力 性能提升

加密市场由阴转晴,Zebec或成2022后半段黑马

EOSdreamer111

数据说|济青,两座“数字经济新一线城市”如何发力?

易观分析

数字经济 山东

《数字经济全景白皮书》绿色金融篇 重磅发布!

易观分析

数字经济 山东

企业应用现代化实用教程 | 如何快、准、狠地进行应用容器化改造?

York

容器 云原生 数字化转型 架构设计 应用现代化

从阿里云全球实时传输网络GRTN出发,浅谈QOE优化实践

阿里云视频云

边缘计算 直播 边缘云 全球加速

消息队列基本原理和选型对比

C++后台开发

中间件 消息队列 后端开发 C/C++后台开发 C/C++开发

服务稳定性保障中的五大误解

华明

运维 SRE 服务监控 稳定性保障

数据说|发力数字经济,山东这两座城市如何变道超车?

易观分析

数字经济 山东

mybatis基础的crud

Geek_5829b6

Java mybatis

SLF4J多个jar在类路径问题

Geek_5829b6

Java 日志

mybatis添加日志并打印sql

Geek_5829b6

Java mybatis

兆骑科创双创服务平台,高层次人才引进,线上直播路演

兆骑科创凤阁

三大云厂商 ARM 架构服务器性能对比

API7.ai 技术团队

AWS API网关 arm架构 云厂商

软件测试100天上岸2-测试必须有策略

和牛

测试 8月月更

软硬皆施!Github上爆火2022最新Java面试宝典简直总结的太全了!

程序员小毕

Java 程序员 面试 找工作 简历

证照之星XE重磅发布 制作证件照从未如此简单

懒得勤快

秋招大厂必备面试题!Java八股文背诵版已助569人入职大厂

退休的汤姆

Java、 面经 社招 面试八股文 秋招+

合合信息技术专家受邀出席RACV2022,探索计算机视觉与图形学未来增量

合合技术团队

计算机视觉 计算机

秒验丨iOS端SDK 集成指南

MobTech袤博科技

xcode iOS SDK 秒验

mybatis foreach的使用

Geek_5829b6

Java mybatis

面试官:你理解的互联网高性能Web架构是咋样的?

程序员小毕

Java 程序员 架构 面试 程序人生

零基础如何通过前端技术培训学习

小谷哥

在北京大数据程序员如何立足?

小谷哥

前端培训机构毕业后在一线城市该注意什么

小谷哥

兆骑科创双创赛事,线上直播路演,投融资对接

兆骑科创凤阁

  • 扫码添加小助手
    领取最新资料包
ThoughtWorks开源持续交付工具Go_DevOps & 平台工程_Abel Avram_InfoQ精选文章