Build and Deploy Using Go

This course is focused on providing teams with an immersion into Go so that they can learn how it can give them real-time visibility and control of their build, deploy, test and release process. It also provides a basic overview of build, automated test and deployment practices in order to illustrate how Go enables them. All team members involved with configuring, troubleshooting, testing and releasing software will benefit from this offering.

Overview

Audience

Software Developers, Architects, System Administrators, Release Engineers, Testers

Duration

2 days

Pre-requisite

Agile Fundamentals

Objectives
  • Understand the concept of Continuous Integration and why it is beneficial
  • Understand the features and concepts of the Go product
  • Installing and configuring the Go product
  • Setting up automatic builds using Go
  • Setting up one click deployments using Go
  • Be able to discuss the differences between the leadership responsibilities on an Agile Project. (Program Management, Project Management, Iteration Management)

Course Outline

Day 1

Introduction to Continuous Integration
  • What is continuous integration and what problem does it solve?
  • The common process of continuous integration
  • Why Continuous integration can help us to resolve/improve some of them
  • History of Cruise Control
  • Why we built Go
About Go: Features and Concepts
  • The core features in Go
  • Zero-configuration build grid
  • Central artifact repository.
  • End-to-end security.
  • Out-of-the-box support for .NET, Java and Ruby.
  • Build pipelines
  • Parallelization
  • Test multiple environments
  • Fast, simple installation
  • Robust architecture
  • Scalable dashboard
Preparing to do CI
  • Introduction of VCS
  • What's the difference between central VCS and distributed VCS?
  • Introduction of subversion (Mercurial)
  • Introduction of ANT (NANT)
  • Basic format of build file
  • How to write and run it
  • Environment preparation of CI
  • Install JDK, ANT, Subversion
  • Setup a repository of subversion
Installing Go
  • How to install Go server and agents on different platform
  • Windows, Ubuntu, Mac OS, Redhat, Solaris, SUSE
  • Check the server and agents work properly
  • How the Go server and agents work together
  • Setup a build cloud (adding/removing agents)
  • Easy to upgrade

Day 2

Setting up the First Automated Build
  • Setup the sample java project
  • Write an ANT file for it
  • Setup a pipeline for the project in Go
  • Get the report from Go after the first pipeline finished.
  • Explain the concepts of Pipeline, Stage and Job
Implementing the Core Concepts
  • Setup multiple stages in the pipeline.
  • Get the report from Go after the pipeline goes through all the stages.
  • Introduce the workflow of Go
  • Repository, Pipeline, Materials, Stages, Jobs, tasks
  • How to get feedback quickly with tons of tests
  • Start up multiple agents
  • Group your tests with jobs
Setting up One-Click Deployment
  • What's the specific problems in deployment process
  • Why we need one-click deployment
  • How to address it in Go
Customizing Go
  • Security in Go (LDAP support and roles in Go)
  • How to backup Go
  • How to handle dependencies between pipelines
  • How to get your binaries back to the Central artifact repository.
  • How to share the artifacts between stages and pipelines (uploading and fetching)
  • How to show the test results on the page (sub-tab)
  • How to integrate with other tracing system (Mingle)
  • How to monitor pipelines (CCTray, email notifications)
  • Go API