Continuous Delivery Workshop



Continuous Delivery is a software engineering approach in which teams produce and test software in short cycles, ensuring that the software can be reliably released at any time. This approach enables building, testing and releasing deployable software faster and more often. When implemented correctly, the result is predictable, routine software releases that can be deployed at any time during the engineering process � even in large-scale, distributed systems and complex production environments. Continuous delivery completely eliminates the need for many of the painful integration, testing and hardening phases that traditionally follow code development.

In this course, you will learn about workflow integration through hands-on labs, class demos, class participation exercises, video tutorials and traditional slides and lecture. The class is highly interactive, encouraging individuals to fully participate in all exercises to retain maximum benefits of the learning. The technologies and tools used in this class include: C#, Java, TFS, Git, Jenkins, Maven, Chef and Puppet. This course will give you the roadmap you need to make your release process a business advantage instead of a limitation to meeting business goals.


  • Software developers
  • Quality assurance professionals
  • Software testers
  • Product owners
  • Infrastructure engineers
  • Development team members
  • Operations team members
  • Project managers

Learning Objectives

  • Value of continuous delivery
  • Relationship between continuous integration and continuous delivery
  • Set up, navigate, and manage a continuous delivery environment
  • Execute releases in test environments
  • Most effective tools for quick release and reliable maintenance
  • Integrate continuous delivery methods and techniques into current workflow
  • Decrease time to market and increase quality
  • Reduce risk and costs with a continuous delivery approach

1. What is Continuous Delivery?

  • Introduction to Continuous Delivery
  • Where does Continuous Delivery fit in the DevOps landscape?
  • How does Continuous Delivery work?
  • What are the benefits of using Continuous Delivery?
  • Anti-patterns
  • Explore CI Settings in Team Services
  • Explore Gated Check-in Settings in Team Services

2. Agile Development

  • Review: Agile development and the Agile Manifesto
  • Integrated development environments
  • Source control and versioning
  • Test-driven development
  • Pair programming
  • User stories
  • Developer tasks
  • Sprints
  • Create a Team Services Account
  • Add User Stories to Team Services Project
  • Add Developer Task to User Stories
  • Test Driven Development

3. Continuous Integration

  • What is Continuous Integration?
  • How Continuous Integration fits in the DevOps landscape
  • How does Continuous Integration work?
  • Continuous Integration essentials
  • Common Continuous Integration practices
  • Benefits of Continuous Integration
  • From Continuous Integration to Continuous Delivery
  • Configure Check-in Policy
  • Configure Build Trigger
  • Configure Inspections and Test Execution

4. Configuration and Implementation

  • Version Control
  • Automated Builds
  • Automated Testing
  • Automated Acceptance Testing
  • Package Repository
  • Managing Dependencies
  • Managing Environments
  • Configuration Principles
  • Configure a Package Repository using Team Services
  • Invoke a build that deploys to the Package repository

5. Deployment Pipeline and Scripting

  • What is a Deployment Pipeline?
  • Committing Code
  • Gated Acceptance Testing
  • Automating Deployment
  • Testing Stages
  • Implementing a Deployment Pipeline
  • Build Tools Overview
  • Deployment Scripting
  • Build Scripting
  • Automating Tests
  • Configure Build Tools (MSBuild)
  • Create Deployment Script
  • Deploy Sample Application

6. Automated Testing

  • Creating Acceptance Tests
  • Automating Acceptance Tests
  • Creating Unit Tests
  • Automating Unit Tests
  • Automating Capacity Testing
  • Parallel Testing
  • Refactoring
  • Automating Unit Tests
  • Automating Acceptance Tests

7. Delivery vs. Deployment

  • Releasing an Application
  • Deploying an Application
  • Continuous Delivery
  • Continuous Deployment
  • Virtual Environments
  • Roll back a Deployment
  • Deliver Deployment Packages to the Package Repository
  • Deploy the current version from the Package Repository
  • Deploy a previous version from the Package Repository

8. Effective Continuous Delivery Environments

  • Infrastructure Management
  • Communicating with the Operations Team
  • Configuration Management
  • Infrastructure in the Cloud
  • Infrastructure Maintenance
  • Configure Azure Virtual Server
  • Save Virtual Server Image

9. Managing Implementation

  • Managing Components
  • Managing Dependencies
  • Version Control
  • Version Control Options
  • Mainline Development
  • Merging and Branching

10. Managing Continuous Delivery

  • Risk Management
  • Delivery lifecycle
  • Common Pitfalls
  • Documentation is crucial!
  • Maintaining your Configuration