GoCD - 持续集成及部署利器


Apache
跨平台
Java

软件简介

GoCD
一款先进的持续集成和发布管理系统,由ThoughtWorks开发。(不要和Google的编程语言Go混淆了!)其前身为CruiseControl,是ThoughtWorks在做咨询和交付交付项目时自己开发的一款开源的持续集成工具。后来随着持续集成及持续部署的火热,ThoughtWorks专门成立了一个项目组,基于Cruise开发除了Go这款工具。ThoughtWorks开源持续交付工具Go。使用Go来建立起一个项目的持续部署pipeline是非常快的,非常方便。

GoCD 的强大:

  • 使用PipeLineGroup,PipeLine,Stage,Job,Task 分级分层控制任务粒度和关联性

  • 强大的用户,角色系统

  • go-server <--> go-agent 通信和管理模式

  • 除了JRE 1.6+ 以外不依赖其它组件,对系统的冲击很小,方便部署

不足:

  • 不支持一个PipeLine、Job在多个Agent上依次执行(对于大规模集群式部署的应用来说,这简直要命)

  • 插件比较稀少

  • 开源时间短,用户群还比较小

Go的架构设计

Go使用了Server-
Agent的模式。Server用来展示和配置pipeline的DashBoard,并存放构建出来的Artifacts(存档文件,比如一个war包);
Agent则用来执行真正的构建操作,一个Server可以和多个Agent建立连接,Agent支持多个主流的操作系统。