Thursday 19 April 2018

About Go Continuous Delivery


About GoCD


GoCD is an open source tool which is used in software development to achieve continuous delivery of software. It supports automating the entire build-test-release process from code check-in to deployment. It helps to keep producing valuable software in short cycles and ensure that the software can be reliably released at any time.

·        A Pipeline consists of multiple stages, each of which will be run in order.

·        A Stage consists of multiple jobs, each of which can run independently of the others.

·        A Job consists of multiple tasks, each of which will be run in order.

·        A Task is an action that needs to be performed. Usually, it is a single command.

·        A Material is a cause for a pipeline to run. This could be a commit made to a source code repository or a timer trigger.

·        Agents run the jobs assigned to them.


Go CD benefits


  • Visualization with features like Value Stream Map 
  • Fan-in support - Go does not build incompatible revisions reducing lot of wasted build time
  • Good modelling ability (pipelines, stages, jobs, tasks).
  • Easy parallelizability (jobs across agents, can use resources to tie jobs to a set of agents)
  • Traceability - from deployed build all the way back to source code commits
  • Security - Secure communication between agents and server, possible to configure Go to be https-only.
  • Fine-grained control of permissions
  • Collaboration - Go can be used across the organisation. Here teams can use it to do automated deployments. Dev teams can see where there commit has reached (unit tests, acceptance tests, QA env etc.), QA teams can see what build is deployed on what env. and other stakeholders can compare revisions to see what features / bugs are going into a release. 
  • Ability to segregate pipelines using groups, agents using resources and trying both together using environments. Using the “Environments” feature of Go to separate build pipelines from deployment pipelines.
  • One-click backup

Go CD - Missing features


  • Only a couple of extension points (plugins) - Go team is working to make more extension points available. Currently external Package Repository as material (for yum, rpm, etc. post Go 13.3) and Task Plugin (plugin support coming from Go 14.1, to be released soon) are available.
  • Custom email notifications not configurable enough.
  • Multiple server support

No comments:

Post a Comment