持续交付工具ThoughtWorks Go部署step by step

持续交付工具ThoughtWorks Go部署step by step

http://blogs.360.cn/360cloud/2014/05/13/%E6%8C%81%E7%BB%AD%E4%BA%A4%E4%BB%98%E5%B7%A5%E5%85%B7thoughtworks-go%E9%83%A8%E7%BD%B2step-by-step/

Posted on 2014 年 5 月 13 日 by zieckeyLeave a reply

1. ThoughtWorks  Go简介

Go是ThoughtWorks公司采用 Java 语言研发的一款开源的持续集成和发布的系统,旨在使软件开发企业和团队在构建-测试-发布软件产品的流程自动化,并且能持续地发布软件产品。该产品于2014年2月份宣布基于Apache 2.0开源协议进行开源。其前身是CruiseControl。其官方简介为“Automate and streamline the build-test-release cycle for worry-free, continuous delivery of your product”。

该平台型产品Go,能帮助企业和组织持续改进、集成和交付高质量的产品。竞争日益激烈的商业环境要求企业快速创新的同时,维持核心流程的稳定。Go可以为所有团队提供一个清晰的发布管道,避免低效和冗余。

2. 持续集成/交付

持续集成(Continuous Integration,CI)是一些基本实践,它不是软件开发中最炫目的工作,但软件集成在今天的复杂项目中至关重要。CI作为软件开发的中心工作,因为它通过对每次变更执行构建,保证了软件的健康。如果我们不太关注这次不太炫目的基础工作,例如“整理开发环境、打包构建软件”等等,我们就不得不在将来执行这些低级任务,通常是在最不方便的时间点(例如软件马上就要投入使用之前),这也就是出错的时候(这也就说明现阶段我们大多数时候release一个软件版本,通常伴随着加班加点来处理未知的基础性的一些问题,如配置项修改等等)。保持构建版本“亮绿灯”这一原则,让您不必担心一切是否还正常。这就像锻炼身体,是的,这需要自觉;是的,这可能会带来痛苦,但这能保持您的体型和身体健康,让您能参与更重要的活动,这是值得的。

借用ThoughtWorks公司官方的一张图来说明这一过程:

3. 部署

从官网下载两个安装包:go-server,go-agent。下载页面:http://www.go.cd/download/。我们这里以Linux平台为例进行说明,因此我们下载得到两个rpm包:go-agent-14.1.0-18882.noarch.rpm  go-server-14.1.0-18882.noarch.rpm。

3.1 首先安装go-server

因为是java语言开发的,因此该安装包依赖java运行环境,这里我们选择java包为:java-1.6.0-openjdk。安装完成之后,如果没有错误,go-server会直接启动起来,监听8153端口。我们可以通过url:http://go-server.installed.hostname:8153/go来访问Go平台,在这个平台上可以进行管理、配置、持续构建和交付我们的项目。

配置过程截图如下:

3.2 再安装go-agent

go-agent可以与go-server部署在同一台服务器,也可以部署在不同的服务器上。go-agent安装完成之后,如果没有错误,会有下列提示,告诉我们go-agent的配置和启动方式:

Now please edit /etc/default/go-agent and set GO_SERVER to the IP address of your Go Server.
Once that is done start the Go Agent with ‘/etc/init.d/go-agent start‘

3.3 Go架构设计

Go使用了Server-Agent的模式。Server可以理解为一个Dashboard,用来管理、展示、配置各种项目的Pipeline流程(编译、单元测试、打包、发布等一系列流程),并存放构建出来的Artifacts(存档文件,比如一个war包)。Agent则用来执行具体的构建操作,因为很多项目是有跨平台需求,例如Linux和windows两个平台,甚至Linux平台又分为Centos5.4和centos6.2等等,因此,一个Server可以和多个Agent建立连接,Agent支持多个主流的操作系统平台。详细情况如下图:

3.4 我们的实践例子截图

4. 其他

4.1 go-server的配置文件:/etc/go/cruise-config.xml

4.2 邮件、用户名、密码设置:/etc/go/cruise-config.xml:

<server artifactsdir=”artifacts” commandRepositoryLocation=”default” serverId=”743624fd-263b-47d2-a2e4-c0cffc8051ec”>
<security>
<passwordFile path=”/etc/go/users.properties” />
</security>
<mailhost hostname=”mail.corp.qihoo.net” port=”25″ tls=”false” from=”[email protected]” admin=”[email protected]” />
</server>

参考:

1. http://www.thoughtworks.com/products/docs/go/current/help/

2. 《持续集成-软件质量改进和风险降低之道》

时间: 2024-11-05 06:56:22

持续交付工具ThoughtWorks Go部署step by step的相关文章

容器时代的持续交付工具---Drone:Drone介绍与安装

Drone:Drone is a Container-Native, Continuous Delivery Platform. 官方给的定义,从上面的定义可以得出两个关键点: 1,Container-Native:Cloud-Native是云原生,那Container-Native可以翻译成容器原生,就是说Drone是容器时代的一个产品,是基于容器实现的. 2, Continuous Delivery:持续交付,容器是现在快速交付的一个代名词,而Drone是容器化的一种持续交付的平台,其实Dr

容器时代的持续交付工具---Drone:Drone使用

上一篇文章里已经介绍了如何安装Drone,下面我们来看下如何使用.还是基于gogs作为git仓储. 首先打开server对应的地址,进入登录页面,输入在启动server时配置的管理员账号(对应的就是gogs里的账户,当然可以使用其他账号,但是有些操作必须管理员才可以)进行登录,可以进入到系统中. 点击右上角的同步按钮,同步git库,同步完后,下面就会列出目前gogs里所有的git库,通过顶部搜索框也可以搜索要操作的项目,找到项目后,点击项目后面对应的激活按钮,如下图: 然后点击下面按钮进行激活配

Microsoft将持续交付功能添加到Visual Studio、Azure

Microsoft正在向Visual Studio 2017 IDE中添加持续交付功能. Visual Studio扩展的持续交付工具允许开发人员在Visual Studio团队服务ALM平台上设置自动构建.测试和发布管道.它适用于面向Azure应用服务和Azure容器服务的ASP.Net 4和ASP.Net Core应用程序.开发人员可以通过IDE中的通知来监视管道,提醒他们连续集成运行中发生的生成失败信息. 该功能的目的是使开发人员能够自动保持最新的管道.开发人员可以通过Visual Stu

[持续交付实践] 基于 sonarqube 的代码检查平台实现

前言 公司此前用的一直是的SonarQube5.1(2015年版本,为兼容jdk6和jdk7的项目一直没有升级),最近为了pipeline的集成刚刚升级到了最新的SonarQube6.5版本.网上对SonarQube6的介绍比较少,这里重点先介绍下SonarQube6以后的一些新增特性.1.代码问题重新分级,将问题分为bug.漏洞.坏味道:将代码检查结果从可靠性.安全性.可维护性几个角度进行问题分类和风险分级.2.更丰富的代码检查规则,更友好的问题处理曲线展示,更清晰的质量阈和代码规则定制.3.

持续集成(一):什么是持续集成(CI)、持续交付(CD)和持续部署(CD)

持续集成.持续交付和持续部署 持续集成 Continuous Integration:持续集成,简称CI,是软件开发周期的一种实践,把代码仓库(Gitlab或者Github).构建工具(如Jenkins)和测试工具(SonarQube)集成在一起,频繁的将代码合并到主干然后自动进行构建和测试. 其实这里最关键的是自动化测试,这个是最难的,因为测试涉及内容很多. 持续交付 Continuous Delivery:持续交付,简称CD,是在CI的基础进行了扩展,在CI环节完成了软件构建和测试工作并形成

CI / CD /CD 持续集成 持续交付 持续部署

CI / CD /CD 持续集成 持续交付 持续部署 CI CD 是啥?干了啥? CI continuous integration 持续集成 CD continuous delivery 持续交付 CD continuous deploy 持续部署 他们干了点啥 代码自动building 测试环境和项目的自动部署 生产环境和项目的自动部署 恩恩 都是这些 和 管理工作 ** 因为是自动化的 可以在你合并代码后几分钟就开始测试 ** 流程: 用户提交代码到仓库 ->合并代码 -> 自动编译代码

用持续集成工具Travis进行构建和部署

用持续集成工具Travis进行构建和部署 摘要:本文简单说明了如何使用持续集成工具Travis进行构建和部署的过程. 1. 概述 持续集成(Continuous Integration)是软件开发过程中的重要环节,不论是在开发环境,还是生产环境,其好处都是可以让团队尽快得到反馈,从而尽早发现和解决问题,不要等到用户来报告问题,影响产品和团队的声誉.越早越快地发现和解决问题,成本越低,这也是敏捷开发的基本目的之一. 持续集成的工具有不少,著名的有CruiseControl.JetBrains的Te

持续集成+持续交付+持续部署

1 continuous integration 持续集成 持续集成强调对于开发人员的每个提交,立刻进行构建.(单元)测试.根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起. 2 continuous delivery 持续交付 持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」中进行更多的测试来更早地发现问题. 比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的自动化集成测试.如果代码没有问题,可以继续手动部署到生

基于Jenkins,docker实现自动化部署(持续交付)

前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致.基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化.因此,传统的人工部署已经心有余而力不足.持续集成,持续部署,持续交互对于微服务开发来说,是提高团队整体效率不可或缺的一环.合理的使用CI,CD能够极大的提高了生产效率,也提高了产品的交互质量.本文不对三个概念做过多的介绍,有兴趣可以读读这篇文章:The Product Managers' Guide to