DevOps Using Visual Studio TFS 2015

This 3-day course aims to help you achieve some of the key goals of DevOps namely reducing friction, increasing velocity and increasing value to your customers. The course starts by introducing DevOps and the Visual Studio 2015 product family. We’ll look at how you can reduce lead time using the Agile planning tools in Visual Studio with still aligning with Enterprise goals.

Next we’ll look at how a number of features in Visual Studio 2015 including Code Clone Analysis, CodeLens and Code Maps can help you reduce technical debt and thereby help increase team productivity.

The course then focuses on the new scriptable, cross-platform build system introduced in TFS 2015 and how to use it. We briefly examine the current version of Release Management for Visual Studio 2015 before deep diving into Release Management vNext. Release Management vNext is in Visual Studio Team Services and TFS 2015 Update 2.

The course then looks at the benefits of PowerShell and the use of Desired State Configuration (DSC) to configure the machines where you’ll deploy your application components. The final modules of the course look at Application Insights and how you can monitor your application.

The content in this course includes full coverage of all content in out 2-day “Build and Release Management using TFS 2015” course.

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 Outline

Module 1 - Introducing DevOps and the Microsoft Visual Studio 2015 family

  • What is DevOps and why it is important?

  • DevOps goals

  • Overview of the Visual Studio 2015 family

  • Overview of DevOps related product features


Module 2 - Agile planning

  • Overview of Agile planning tools

  • Shortening lead time

  • Managing a prioritised flow of work to the team

  • Enabling agility in your teams


Module 3 - Reducing Technical Debt to enabled DevOps outcomes

  • Unit testing and code coverage

  • Identifying code clones

  • Using CodeLens

  • Understanding your application using Codemaps


Module 4 – Configuring your Build environment

  • Understanding the new 2015 Build infrastructure

  • Creating Agent pools and queues

  • Installing Build Agents

  • Specifying capabilities on your Build Agents

  • Configuring security

  • Overview of non-Windows Build Agents

  • Overview of hosted build infrastructure


Module 5 – Authoring our first build definition

  • Creating a new build definition

  • Understanding Build templates

  • Selecting the solution to build

  • Running tests as part of your build

  • Queuing a build


Module 6 – A closer look at builds

  • Selecting our source repository (TFVC/Git/GitHub/Subversion)

  • Running multiple concurrent builds

  • Working with Build variables

  • Configuring Continuous Integration (CI) and scheduled builds

  • Using Gated Check-ins

  • Using demands to influence agent selection

  • Build retention policies


Module 7 – Customizing your build process

  • A lap around the available build tasks

  • Using Build Tasks to deploy your application components

  • Extending builds using scripts


Module 8 – Other build enhancements and features

  • Viewing build status

  • Controlling build outputs and understanding artifacts

  • Packaging your .NET application

  • Examining test results from a build


Module 9 - Overview of Release Management

  • What is Release Management

  • Key concepts in Release Management

  • The current state of Release Management in TFS/VSTS


Module 10 - Release Management for Visual Studio 2015

  • Release Management for Visual Studio 2015

  • Creating environments and releases

  • Configuring approval workflows

  • Triggering and tracking releases


Module 11 - Release Management vNext

  • Authoring a new release definition

  • Linking your build definition to a release

  • Determining what to deploy using artifacts

  • Defining and using configuration variables

  • Configuring Continuous Release

  • Naming your release and using retention policies


Module 12 – Configuring environments

  • Understanding environments

  • Configuring your approval workflow

  • Notifying approvers

  • Selecting your deployment queue

  • Defining custom variables for your environments

  • Configuring the environment owner

  • Understanding deployment conditions

  • Cloning environments


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

  • Overview of release tasks

  • Copying files and running scripts

  • Releasing a web application to an IIS server

  • Executing tests as part of our on-premises release

  • Tracking our release


Module 14 - Defining a release workflow for Azure

  • Understanding Azure resources

  • Understanding Service Endpoints

  • Configuring endpoints for connecting to Azure

  • Releasing an Azure Web Application

  • Executing tests as part of our Azure release


Module 15 - Introduction to PowerShell

  • What is PowerShell & how can PowerShell help in DevOps?

  • Using the PowerShell ISE

  • Writing a PowerShell script


Module 16 - PowerShell Desired State Configuration (DSC)

  • Introduction to Desired State Configuration

  • Understanding WinRM, DSC resources and the local configuration manager (LCM)

  • Installing the DSC resource kit

  • Using DSC to prepare your servers


Module 17 - Continuous learning

  • The importance of application analytics

  • Enabling Application Insights in your applications

  • Monitoring your application availability

  • Examining usage to make better decisions

  • Troubleshooting made easy

Audience

This course is designed for .NET developers, TFS Administrators and Build masters. It is a hands-on look at various technologies rather than a high-level management overview.