You are previewing Continuous Delivery with Visual Studio ALM 2015.
O'Reilly logo
Continuous Delivery with Visual Studio ALM 2015

Book Description

This book is the authoritative source on implementing Continuous Delivery practices using Microsoft’s Visual Studio and TFS 2015. Microsoft MVP authors Mathias Olausson and Jakob Ehn translate the theory behind this methodology and show step by step how to implement Continuous Delivery in a real world environment.

Building good software is challenging. Building high-quality software on a tight schedule can be close to impossible. Continuous Delivery is an agile and iterative technique that enables developers to deliver solid, working software in every iteration. Continuous delivery practices help IT organizations reduce risk and potentially become as nimble, agile, and innovative as startups.

Table of Contents

  1. Cover
  2. Title
  3. Copyright
  4. Contents at a Glance
  5. Contents
  6. About the Authors
  7. About the Technical Reviewers
  8. Introduction
  9. Chapter 1: Introduction to Continuous Delivery
    1. Continuous Integration
      1. Why Implement Continuous Integration?
      2. Build Automation
      3. Unit Testing
      4. Inspection
      5. Feedback
      6. Packaging
      7. Publishing to an Artifact Store
    2. Continuous Delivery
      1. The “Null” Release Cycle
      2. Release Planning
      3. Release Pipelines
      4. Environments
      5. Release Management and Deployment
      6. Automated Release Validation
    3. Continuous Deployment
    4. DevOps
    5. Summary
  10. Chapter 2: Overview of Visual Studio 2015 ALM
    1. Agile Project Management
      1. Process Templates
      2. Product Backlog
      3. Sprint Backlog and Task Boards
      4. Kanban Board
    2. Source Control Management
    3. Build Automation
    4. Test Management
    5. Release Management
    6. Cross-Platform Support
    7. Integration and Extensibility
      1. REST API
      2. Service Hooks
      3. Extensions (Apps)
    8. Application Insights
    9. Visual Studio Online
    10. Summary
  11. Chapter 3: Designing an Application for Continuous Delivery
    1. Scenario
    2. Architecture
    3. System Requirements
    4. Environments
      1. Development
      2. Test
      3. QA
      4. Production
    5. Summary
  12. Chapter 4: Managing the Release Process
    1. Planning Your Release
      1. Defining the Release Process
      2. Versioning
      3. Release Notes
    2. Building a Release Plan
      1. Structuring the Releases
      2. Enabling Scalable Release Planning
      3. Creating a Release Backlog
      4. Managing Dependencies
      5. Creating Team Backlogs
    3. Monitoring the Release Process
      1. Work Status
      2. Blocked Work
      3. Throughput
      4. Cycle Time
    4. Summary
  13. Chapter 5: Source Control Management
    1. Centralized vs. Distributed Version Control
      1. Team Foundation Version Control
      2. Git
      3. Version Control and Continuous Delivery
    2. Branching and Continuous Delivery
      1. Working on Mainline
      2. Branching Strategies
      3. Branching and Deployment Pipelines
    3. Dependency Management
      1. Third-Party Dependencies
      2. Source Control Dependencies
      3. Component Dependencies
      4. Sharing Dependencies
    4. Summary
  14. Chapter 6: PowerShell for Deployment
    1. PowerShell
      1. Cmdlets
      2. Getting Output
      3. PowerShell Pipeline
      4. Error Handling
      5. Functions
      6. PowerShell Drives
      7. Sample Script/Template
      8. Testing and Debugging Your Scripts
      9. Common Scenarios
    2. PowerShell Desired State Configuration
      1. Using a Resource
      2. The Two Ways to Run a DSC Script
      3. DSC on Linux
      4. Creating a Resource
    3. Summary
  15. Chapter 7: Build Automation
    1. Key Principles
      1. Keeping CI Builds Fast
      2. Visualizing Build Status
      3. Ensuring High Build Quality
      4. Build Once, Deploy Many
      5. Versioning All Artifacts
    2. Build Types
      1. Continuous Integration Build
      2. Nightly/Integration Build
      3. Release Build
    3. Team Foundation Build 2015
      1. Architecture
      2. Creating Build Definitions
      3. Build Tasks Catalog
      4. Running Scripts
      5. Running Builds
      6. Analyzing Builds
    4. Managing Build Artifacts
      1. Configuring Artifacts for a Build
      2. Versioning
    5. Common Package Formats
      1. Web Deploy
      2. NuGet
      3. Windows Installer (MSI)
      4. SQL Databases
    6. QuizBox Sample Application
    7. Summary
  16. Chapter 8: Managing Code Quality
    1. What Is Good Code?
    2. What Is Technical Debt and Why Should I Care?
    3. Unit Testing
      1. What Is Test-Driven Development?
      2. Elements of a Unit Test
      3. Data-Driven Automated Tests
      4. Running Tests
      5. Working with Other Test Frameworks
      6. Integrating Unit Tests with CI builds
    4. Code Coverage
      1. Analyzing Code Coverage Results
      2. Integrating Code Coverage with CI Builds
      3. Customizing How Code Coverage Is Collected
    5. Static Code Analysis
      1. Integrating Code Analysis with CI builds
      2. Creating Custom Rule Sets
    6. Code Metrics
      1. Integrating with CI Builds
    7. Code Clones
      1. Integrating Code Clones with CI Build
    8. SonarQube
      1. Setting up SonarQube
      2. Working with SonarQube
      3. Integrating SonarQube with Build
    9. Configuring Code Quality for QuizBox
    10. Summary
  17. Chapter 9: Continuous Testing
    1. Agile Testing
      1. Defining Tests
    2. Test Management
      1. Clients for Test Planning and Manual Testing
      2. Planning the Tests
      3. Creating a Test Plan
      4. What Is a Test Case?
      5. Test Configurations
    3. Setting Up Environments
      1. Getting Your Environment Ready for Deployment
      2. Managing Environments
    4. Running Manual Tests
      1. Running a Test Case with the Web Test Manager
      2. Analyzing Test Results
    5. Evolving Tests
      1. Using Test Cases to Track Automated Tests
    6. Running Automated Tests
      1. Prerequisites
      2. Visual Studio Test Agent Deployment
      3. The Visual Studio Test Using Test Agent Task
      4. Running Quick Web Performance Tests
      5. Running Cloud Load Tests
      6. Test Results
    7. Testing Different Configurations
    8. Parameterizing Test Runs
    9. Summary
  18. Chapter 10: Building a Deployment Pipeline
    1. Visual Studio Release Management
      1. Release Definitions
      2. Releases
      3. Tasks
      4. Machines
      5. Environments
    2. Implementing a Deployment Pipeline
      1. Verifying the Build Output
      2. Creating the Release Definition
      3. Linking Artifacts
      4. Configuration Management
      5. Environment Variables
      6. Environments and Machines
      7. Continuous Deployment
    3. Running a Release
      1. Tracking Releases
      2. Controlling Release Flow
      3. Creating a Draft Release
    4. Configuration Management
      1. Implementing Token Replacement
    5. Approvals
      1. An Approval Scenario
      2. Assigning Approvers
      3. Approving a Release
    6. Securing the Deployment Pipeline
      1. Example: Locking Down the Production Environment
    7. Deployment Pipeline for QuizBox
      1. Deployment Pipeline Overview
    8. Summary
  19. Chapter 11: Measure and Learn
    1. Application Insights
      1. Detecting and Diagnosing Issues
    2. Understanding Your Users
      1. Knowing Your Users
    3. Correlating Telemetry Information
      1. Segmenting by Environment
      2. Tagging
    4. Instrumenting the Applications
    5. Managing Application Insights in the Deployment Pipeline
    6. Sample Application
      1. Instrumenting QuizBox
      2. Dependency Analysis
      3. Usage Analysis
      4. A/B Testing
    7. Summary
  20. Index