Build and Release Management Using TFS 2017

Duration2 days

Version2017

Skill levelINTERMEDIATE

OutlineDownload PDF

AudienceDevOps Engineers, Developers, Build Masters

Products and technologies

The following product and technologies will be covered in this course;

  • Visual Studio 2017
  • Visual Studio Team Foundation Server 2017

Course Description

This 2-day course focuses on building and releasing .NET applications using the capabilities of Team Foundation Server 2017. It focuses on the new scriptable, cross-platform build system introduced in TFS 2015 and how to use it effectively.

This course has been designed for organizations focusing on building and releasing applications within their organization rather than in the cloud. That said, a large part of the course is equally useful for cloud scenarios.

We’ll start with an overview of the Visual Studio product family and then work through configuring the Team project we’re going to be using. We’ll configure Teams to better manage work then clone a Git repository containing the primary application we’ll be building and releasing.

The course covers planning, installing and maintaining build environments and how to author build definitions for your applications. We’ll examine many of the configuration options and understand how to best configure our pipeline for your applications.

We then deep dive into Release Management and how you can release your applications to your on-premises infrastructure.

The final two modules of the course examine running automated functional tests as part of your pipeline and how you can visualize build and release status using Dashboards.

If you are eager to learn how to implement DevOps practises designed to streamline your build and release processes using TFS, this is the course for you.

This course includes hands-on labs to reinforce practical skills and ensure you’re ready to use the tools on your return to your workplace.

Course Objectives

At the completion of this course, attendees will be able to;

  • describe the current features in TFS focused on build and release management
  • plan and configure a scalable build environment including pools and queues
  • configure appropriate security on pools and queues
  • author build definitions to suit most scenarios
  • configure Continuous Integration (CI) builds as well as scheduled builds
  • use existing build templates as well as create new build templates
  • create customized build workflow using OOTB and third-party build steps
  • automate the execution of tests as part of our build
  • understand the features and capabilities of Release Management
  • use Release Management to create and manage releases
  • use Release Management to create environments
  • manage configuration information in each environment
  • deploy software to on-premises servers
  • configure Continuous Release by triggering releases from builds
  • create approval workflows and track releases across environments
  • create an environment for the execution of functional tests including Coded UI and Selenium tests
  • create dashboards to show current build and release status

Audience

This course is designed for DevOps engineers, .NET developers, TFS administrators and Build masters.

Pre-requisites

Attendees should be familiar with Visual Studio and the use of Team Foundation Server.

Modules

Module 1 – A lap around the Microsoft Visual Studio 2017 family

  • What’s new in Visual Studio 2017
  • Overview of the Visual Studio 2017 family
  • Overview of product features
  • The need for centralized builds
  • The importance of release management

Module 2 - Configuring our project in TFS

  • Creating and configuring a new team project
  • Configuring teams in TFS
  • Cloning a Git repository into your team project

Module 3 – Configuring your build environment

  • Understanding build infrastructure
  • Creating Agent pools and queues
  • Installing and upgrading Agents
  • Specifying capabilities on your Agents
  • Configuring security
  • Overview of non-Windows Agents
  • Overview of hosted build infrastructure

Module 4 – Automating builds

  • Creating a new build definition
  • Understanding build templates
  • Common build tasks
  • Queuing a build

Module 5 – A closer look at build attributes

  • Source repository options
  • Defining and using build variables
  • Running multiple concurrent builds
  • Working with build variables
  • Configuring Continuous Integration (CI) and scheduled builds
  • Configuring build options
  • Build retention policies

Module 6 – Customizing your build process

  • A lap around the common build tasks
  • Task versioning
  • Executing unit tests during our build
  • Examining test results from a build
  • Using Tasks groups
  • Extending builds using scripts
  • Other helpful build tasks

Module 7 – Other build features

  • Viewing build status
  • Using process parameters
  • Managing Build definitions and using build folders
  • Task control options and conditional build tasks
  • Controlling build outputs and understanding artifacts
  • Packaging your .NET application

Module 8 - Overview of Release Management

  • What is Release Management
  • Key concepts in Release Management
  • The current state of Release Management in TFS/VSTS
  • A quick look at licencing for Release Management

Module 9 - Creating automated release pipelines

  • Overview of release management
  • Understanding artifacts
  • Creating a release definition
  • Understanding environments
  • Common tasks in your release
  • Cloning environments

Module 10 – A closer look at configuring environments

  • Configuring your approval workflow
  • Defining custom variables for your environments
  • Using variable groups
  • Understanding deployment conditions
  • Configuring the environment owner

Module 11 – Defining a release workflow for on-premises servers

  • Overview of release tasks
  • Using the Manual Intervention task
  • Copying files and running scripts
  • Releasing a web application to an IIS server
  • Tracking our release

Module 12 - Automating functional and performance tests

  • Configuring infrastructure for test execution
  • Executing UI tests (Coded UI and Selenium tests)
  • Executing load and performance tests

Module 13 – Creating dashboards to show build and release status

  • Creating a Build and Release Dashboard
  • Displaying build information on the Dashboard
  • Displaying release information on the Dashboard