15
About Go Go - the Continuous Integration and Release Management system from ThoughtWorks Studios

Go Training

Embed Size (px)

DESCRIPTION

How to use Thoughtworks Go platform to agile continuous integration and delivery projects

Citation preview

Page 1: Go Training

About Go

Go - the Continuous Integration and Release Management system from

ThoughtWorks Studios

Page 2: Go Training

Go server and agents

agent1• environment1• environment3

agent2• environment1• environment2

.. agent

• environment m

• Environment n

Page 3: Go Training

Agent

• Agent is a real workhorse of Go platform. • It has been assigned jobs from go server.• Job assignment is based on go server load

balanced, defined multiple Environment - Resource combinations.

Page 4: Go Training

How Sever and Agents communicate

• Agents periodically contact the Go server to ask if there is any work. The server checks to see what resources the Agent has, and assigns any available Jobs that match those resources.

• Go supports a grid of Agents that can run Jobs.

Page 5: Go Training

Environment

• An Environment is a grouping of pipelines and agents.

• By assigning an agent to an environment, it will be used to run only those jobs that belong to the pipelines of that environment. An agent can be associated with one or more environments.

• A pipeline can, however, only be assigned to a single environment.

Page 6: Go Training

Pipeline Structure

Pipeline

Stage1

job11 job12

Stage2

job21

Page 7: Go Training

Pipeline

A release workflow management system• Provides visibility into the status of each

change, and control over the flow of changes as they move from build to testing to release.

• Scale pipelines easily with re-usable workflow templates to manage large numbers of projects.

Page 8: Go Training

Stage

• A pipeline allows you to break down a complex build into a sequence of simple stages for fast feedback, exhaustive validation and continuous deployment.

Example: Website_pipelines Build_and_Deploy Deploy_Business_SignOff Deploy_Long_Term_QA QA_Approval

Page 9: Go Training

Jobs

• The unit of work in Go is called a job . A job is a set of build tasks that can be performed on a single agent in your cloud. The jobs compose a stage.

Example Build_and_Deploy: compile, Unit Test, Deploy to CI Box, Smoke Test(Not yet), Package

Page 10: Go Training

Stage

• Deploy_Business_SignOff : deploy to BA Box, BA sign off

• Deploy_Long_Term_QA: deploy to QA BOX, QA sign off

• QA_Approval: make a tag in SVN box for this version

Page 11: Go Training

Role

• Dev: Build and Deploy• BA: Deploy_Business_SignOff• QA: QA approval, Deploy_Short_Term_QA ..• Infra: Deploy_Gold• Admin:• Guest: view and download all artifacts

Page 12: Go Training

Code Process

Svn box

Agent box

Dev deploy

BA deploy

QA deploy

Production deploy

Page 13: Go Training

Preparing work

• Modify build.xml and deploy.xml– Dependent jar from Go– Import build tools and environment– Lib path

• Check in to SVN– set external feature in svn to get share lib

and build tools

Page 14: Go Training

Environment Properties

• Environment Target Set up– environment properties file– environment.xml

• Generate properties file for delivery

destination and insert in to the delivery package. It creates different property file needed by different environments

Page 15: Go Training

Developer work

• Watch Pipeline status• Set up email notification• Find broken Cause• See artifacts• Check website