SlideShare a Scribd company logo
About Go

Go - the Continuous Integration and
Release Management system from
       ThoughtWorks Studios
Go server and agents

                • environment1
       agent1
                • environment3



                   • environment1
         agent2
                   • environment2


                • environment
         ..       m
       agent    • Environment n
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.
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.
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.
Pipeline Structure

             Pipeline


    Stage1              Stage2


job11    job12          job21
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.
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
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
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
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
Code Process

              Svn box



Production
                         Agent box
  deploy




QA deploy                Dev deploy




             BA deploy
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
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
Developer work
•   Watch Pipeline status
•   Set up email notification
•   Find broken Cause
•   See artifacts
•   Check website

More Related Content

PPTX
Migrating IBM Cloud Orchestrator environment from v2.4.0.2 to v2.5.0.1
PDF
IndiaCloudSummit - Transforming to feature-driven development
PPTX
ExpertsLive Session Deck
PDF
Continuous Testing
PDF
Continuous Delivery and MarkLogic
PPTX
Saltconf16 william-cannon b
PDF
GraphConnect EU 2017 - Performance Improvements in Neo4j 3.2
PDF
Using SaltStack to DevOps the enterprise
Migrating IBM Cloud Orchestrator environment from v2.4.0.2 to v2.5.0.1
IndiaCloudSummit - Transforming to feature-driven development
ExpertsLive Session Deck
Continuous Testing
Continuous Delivery and MarkLogic
Saltconf16 william-cannon b
GraphConnect EU 2017 - Performance Improvements in Neo4j 3.2
Using SaltStack to DevOps the enterprise

What's hot (20)

PPTX
CI_CD_Demo.pptx
PPTX
Docker and Jenkins Pipeline
PDF
Arquillian & Citrus
PPTX
Compliance Automation with InSpec
PDF
LoadRunner walkthrough
PDF
Efficient Parallel Testing with Docker
PPTX
Effective Testing with Ansible and InSpec
PPTX
Evolution of netflix conductor
PDF
Integration Testing with Docker Containers with DockerCompose
PDF
Building a Service Delivery Platform - JCICPH 2014
DOC
Hp Load Runner Tutorial 1 How Do We Record An Application Using Load Runner
PDF
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
PPTX
SkyBase - a Devops Platform for Hybrid Cloud
PPTX
Role of Pipelines in Continuous Delivery
PDF
Building Efficient Parallel Testing Platforms with Docker
PDF
Rails Applications with Docker
PDF
Running tests for every commit: Gerrit, Jenkins, Docker, AWS
PPTX
Continuous Build To Continuous Release - Experience
PDF
Rundeck + Nexus (from Nexus Live on June 5, 2014)
PDF
Getting to Walk with DevOps
CI_CD_Demo.pptx
Docker and Jenkins Pipeline
Arquillian & Citrus
Compliance Automation with InSpec
LoadRunner walkthrough
Efficient Parallel Testing with Docker
Effective Testing with Ansible and InSpec
Evolution of netflix conductor
Integration Testing with Docker Containers with DockerCompose
Building a Service Delivery Platform - JCICPH 2014
Hp Load Runner Tutorial 1 How Do We Record An Application Using Load Runner
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
SkyBase - a Devops Platform for Hybrid Cloud
Role of Pipelines in Continuous Delivery
Building Efficient Parallel Testing Platforms with Docker
Rails Applications with Docker
Running tests for every commit: Gerrit, Jenkins, Docker, AWS
Continuous Build To Continuous Release - Experience
Rundeck + Nexus (from Nexus Live on June 5, 2014)
Getting to Walk with DevOps
Ad

Similar to Go Training (20)

PPTX
Introduction to GOCD - Amulya Sharma
PPTX
Introduction to Go
PDF
8 pipeline
PDF
Deploying and releasing applications
PDF
Continuous Delivery
PDF
Rock Solid Deployment of Web Applications
PDF
Advantages of golang development services & 10 most used go frameworks
PDF
Software Delivery in 2016 - A Continuous Delivery Approach
PDF
Ncerc rlmca202 adm m3 ssm
PPTX
Continuous delivery applied (DC CI User Group)
PPTX
Continuous Delivery Applied (AgileDC)
PPTX
Continuous delivery applied (RJUG)
PPTX
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
PPTX
Linuxtag 2012 - continuous delivery - dream to reality
PDF
Continuous Delivery with NetflixOSS
PDF
Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010
PDF
Continuous delivery with Jenkins Enterprise and Deployit
PPTX
Basic Jenkins Guide.pptx
PPT
Heroku for-team-collaboration
PPT
Heroku for team collaboration
Introduction to GOCD - Amulya Sharma
Introduction to Go
8 pipeline
Deploying and releasing applications
Continuous Delivery
Rock Solid Deployment of Web Applications
Advantages of golang development services & 10 most used go frameworks
Software Delivery in 2016 - A Continuous Delivery Approach
Ncerc rlmca202 adm m3 ssm
Continuous delivery applied (DC CI User Group)
Continuous Delivery Applied (AgileDC)
Continuous delivery applied (RJUG)
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Linuxtag 2012 - continuous delivery - dream to reality
Continuous Delivery with NetflixOSS
Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010
Continuous delivery with Jenkins Enterprise and Deployit
Basic Jenkins Guide.pptx
Heroku for-team-collaboration
Heroku for team collaboration
Ad

Go Training

  • 1. About Go Go - the Continuous Integration and Release Management system from ThoughtWorks Studios
  • 2. Go server and agents • environment1 agent1 • environment3 • environment1 agent2 • environment2 • environment .. m agent • Environment n
  • 3. 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.
  • 4. 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.
  • 5. 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.
  • 6. Pipeline Structure Pipeline Stage1 Stage2 job11 job12 job21
  • 7. 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.
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. Code Process Svn box Production Agent box deploy QA deploy Dev deploy BA deploy
  • 13. 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
  • 14. 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
  • 15. Developer work • Watch Pipeline status • Set up email notification • Find broken Cause • See artifacts • Check website