DevOps using VSTS and Azure

Duration3 days

VersionVSTS

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 Services
  • Microsoft Azure

Course Description

The combination of Visual Studio Team Services (VSTS) and Microsoft Azure provide a powerful and fully featured solution to enable you to plan, build, test, release, and measure your modern business applications. You’ll learn how to efficiently release your applications to Microsoft Azure and gain a better understanding of PaaS (Platform as a Service).

This course helps you enhance your multidisciplinary knowledge in the areas of build, infrastructure, release, and configuration management. We’ll start with overviews of both the Visual Studio family and Microsoft Azure as a foundation for the rest of the course before moving on to 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 to the cloud.

The course then examines how you can reduce lead time using the Agile planning tools in Visual Studio, while still aligning with Enterprise goals. These planning tools play an integral part in ensuring that we get meaningful traceability right through our DevOps pipeline.

We cover build environments, including cloud and hybrid options, and how to author build definitions for your applications. Quality is a critical consideration in your DevOps pipeline, so we’ll look at a number of features in Visual Studio 2017 designed to help you reduce technical debt and thereby help increase team productivity.

The remainder of the course looks into release and configuration management with a focus on deploying to Microsoft Azure. We’ll create release definitions, configure Continuous Deployment (CD) and learn how we can manage secrets using the Azure Key Vault. You’ll be introduced to Azure Resource Manager (ARM) and see how we can use ARM templates to better manage the creation of the Azure resources our application requires.

The final module in the course looks at Application Insights and how you can easily add monitoring to your applications. Learn how to reduce mean time to detect (MTTD) and also mean time to repair (MTTD) using Application Insights.

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

Course Objectives

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

  • describe the full feature-set of Microsoft’s Application Lifecycle Management suite
  • understand some of the key products within Microsoft Azure
  • create and configure your team project
  • create teams within your project to better manage work
  • clone a Git repository
  • use the Agile Planning tools to maintain a prioritised flow of work to the team
  • plan and configure a different types of scalable build environments
  • author build definitions for a variety of application types including ASP.NET and .NET Core
  • configure Continuous Integration (CI) builds
  • create custom build workflows using build steps
  • use popular third-party extensions to improve your build workflow
  • identify the problems caused by technical debt
  • use some common features in Visual Studio to help reduce Technical Debt
  • automate the execution of tests as part of our build
  • understand the features and capabilities of Release Management
  • create and manage release definitions
  • create environments to handle your release requirements
  • manage configuration information in each environment
  • deploy software to Microsoft Azure
  • configure Continuous Deployment (CD) by triggering releases from builds
  • create approval workflows and track releases across environments
  • understand Azure Resource Manager (ARM) and create ARM templates
  • configure Application Insights to provide rich information about the availability, usage and performance of your application

Audience

DevOps focused team members working with VSTS and Azure to build, release and monitor applications.

Pre-requisites

Attendees should be familiar with Visual Studio and have used of Visual Studio Team Services.

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
  • A lap around Visual Studio Team Services

Module 2 - A lap around Microsoft Azure

  • Overview of Microsoft Azure
  • Advantages of Platform as a Service (PaaS)
  • Azure App Service
  • Azure Virtual Machines

Module 3 - Configuring our project in VSTS

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

Module 4 - Agile planning

  • Overview of Agile planning tools
  • Managing work using teams
  • Tracking progress using Kanban and Task boards
  • Portfolio management

Module 5 - Configuring a modern build environment

  • Understanding build infrastructure
  • Using Hosted build infrastructure
  • Configuring a hybrid environment with on-prem agents
  • Hosting private build infrastructure in Azure

Module 6 - Automating builds

  • Creating a build definition
  • Customizing your build using tasks
  • A closer look at build attributes
  • Triggering builds

Module 7 - Maintaining code quality

  • The importance of maintaining code quality
  • Unit testing
  • Code coverage
  • Code Clone Analysis

Module 8 - Creating automated release pipelines

  • Overview of release management
  • Understanding artifacts
  • Creating a release definition
  • Understanding environments
  • Approval workflows and notifications

Module 9 - A closer look at our build and release definitions

  • Configuring Continous Deployment (CD)
  • Multi-machine deployment using deployment groups
  • Managing secrets in the Azure Key Vault

Module 10 - Automating functional and performance tests

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

Module 11 - Using Azure Resource Manager

  • Overview of Azure Resource Manager (ARM)
  • Creating an ARM template
  • Using ARM into your release pipelines

Module 12 - Monitoring applications using Application Insights

  • Overview of Application Insights (AI)
  • Adding AI to our applications
  • Alerts and availability
  • Diagnose failures and exceptions

Module 13 - Creating dashboards to show build and release status

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