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.
Product and Version Compatibility:
- Team Foundation Server or Visual Studio Team Services - The majority of this course is equally applicable for teams using either Visual Studio Team Services or an on-premises Team Foundation Server. Demonstrations will cover both VSTS and TFS.
At the completion of this course, attendees will be able to:
- Describe the full feature set of Microsoft’s Application Lifecycle Management suite
- Use the Agile planning tools to maintain a prioritized flow of work to the team
- Identify the problems caused by technical debt
- Use some common features in Visual Studio to help reduce technical debt
- Describe the current features in TFS or VSTS 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
- Configure Continuous Integration (CI) builds as well as scheduled builds
- Use existing build templates as well as create new build templates
- Create custom build workflow using build steps
- Automate the execution of tests as part of our build
- Understand the features of the current version of Release Management for Visual Studio
- Use Release Management to create and manage releases
- Use Release Management to create environments
- Manage configuration information in each environment
- Deploy software to both on-premises servers as well as to Azure
- Configure continuous release by triggering releases from builds
- Create approval workflows and track releases across environments
- Configure Application Insights to provide rich information about the availability, usage, and performance of your application
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.
Pre-requisites: Attendees should be familiar with Visual Studio and the basic use of Team Foundation Server or Visual Studio Team Services.
Modules:
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