O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Continuous Delivery with Windows and .NET

Book Description

For Windows and .NET developers, Continuous Delivery (CD) is no longer just a theory, but a very practical option. With this concise book, you’ll learn how to use modern Windows and .NET software with third-party and open source tools to automate the frequent software builds, testing, and deployments that CD prescribes.

Although CD has become a well-defined set of practices and approaches to releasing software in a reliable way, many tools commonly used for CD aren’t natively available for Windows. But new and forthcoming features in Windows Server 2016 and Visual Studio 2015 are designed with CD in mind. The tips and advice in this book will help you pursue CD for Windows- and .NET-based software.

Specifically, you’ll learn about:

  • Version control practices, technologies, and branching options
  • Options for Continuous Integration servers, version control systems, build automation, and package management for Windows and .NET
  • Tools that work well for visualizing and orchestrating a CD deployment pipeline
  • Infrastructure automation, using a test-first approach with Vagrant virtual machines and Microsoft Azure, and—coming soon—Docker for Windows-specific workloads
  • The tricky bits: making changes to your organization and practices beyond adopting the technologies and techniques already discussed

Table of Contents

  1. Foreword
  2. Preface
    1. Who Should Read This Book
    2. The Structure of the Book
    3. Acknowledgments
  3. 1. Introduction to Continuous Delivery
    1. What Continuous Delivery Is Not
    2. The Importance of Automation for Continuous Delivery
    3. Why Is Continuous Delivery Needed?
    4. Why Windows Needs Special Treatment
    5. Terminology Used in This Book
  4. 2. Version Control
    1. Key Version Control Practices
    2. Version Control Technologies
      1. Git
      2. Mercurial
      3. Subversion
      4. TFS
    3. Branching Options
      1. Pull Requests
      2. Feature Toggles
    4. Use NuGet for Dependencies
      1. Do Not Store Packages in Version Control
      2. Use NuGet to Manage Internal Dependencies
    5. Summary
  5. 3. Continuous Integration
    1. CI Servers for Windows and .NET
      1. AppVeyor
      2. Bamboo
      3. BuildMaster
      4. GoCD
      5. Jenkins
      6. TeamCity
      7. TFS Build / VSO
    2. Build Automation
      1. Build Automation Tools
    3. Integrating CI with Version Control and Ticket Tracking
    4. Patterns for CI Across Multiple Teams
    5. Architecture Changes for Better CI
    6. Summary
  6. 4. Deployment Pipelines
    1. Mapping Out a Deployment Pipeline
    2. Tools for Deployment Pipelines
      1. GoCD
      2. Octopus
      3. TeamCity
      4. VSO
      5. Other Tools
    3. Deployment Techniques
      1. Use Blue-Green Deployment for Seamless Deploys
      2. Canary Deployments
      3. Postdeployment Checks
      4. Smoke Tests
      5. Decouple File Delivery from Code Availability
      6. Script a Rollback Procedure Too
    4. Automated Testing of Database Changes
      1. Database Unit Testing
      2. EF Code-First Migrations
      3. FluentMigrator
      4. Flyway
      5. Redgate Tools
      6. SSDT
      7. Other
    5. Summary
  7. 5. Monitoring, Metrics, and APM
    1. Performance Counters Are Insufficient
    2. Record Application Metrics
    3. APM Tools Can Complement Monitoring
      1. Use Developer Metrics Tooling
    4. Aggregate Application and Windows Event Logs from All Machines
    5. Summary
  8. 6. Infrastructure Automation
    1. Shared Versus Dedicated Infrastructure
    2. Using a Test-First Approach to Infrastructure
    3. Patching and OS Updates
    4. Summary
  9. 7. The Tricky Bits of Continuous Delivery
    1. Organizational Changes
    2. Architectural Changes (SOA/Microservices)
    3. Operational Features
    4. Summary
  10. A. Bibliography
  11. B. Case Studies