Application Development: Continuous delivery

Jonathan Gardner - connect on Twitter jgardner04

There’s been significant interest from partners about cloud application development, and we’ve decided to offer a practice-building community around the topic. Just as with the Azure Partner and Office 365 Partner communities, the new Application Development Partner community will include a monthly call, blog series, and Yammer group. Dedicating these assets to Application Development will let the Azure Partner community focus on infrastructure and management.

The first blog series for the Application Development Partner community is about DevOps. This post is part 4 in the series.

In this post, I will talk about the principles of continuous delivery, the role Microsoft Azure plays in the process, and the partner opportunity.

Introduction to continuous delivery

The idea of continuous delivery can strike terror into the heart of operations personnel. It conjures up the thought of constantly having people in a delivery "war room" to address issues when things go wrong, which does not sound appealing.

Continuous delivery done well, though, is a natural extension of continuous integration (covered in part 3 of this blog series), and eliminates the need for a "war room." And, as with all of the principles we've talked about in this series, continuous delivery is rooted in process, not tools.

  • Continuous delivery requires that code is always in a deployable state. Ideally, smaller changes are released over time, a far better approach than waiting to release all of them at once.
  • Continuous delivery requires increased communication throughout the organization. An established feedback loop helps ensure that code is in kept in a deployable state.

With continuous delivery, upon completion of the continuous integration building and testing process, the code is published to development, testing, and/or production environments accordingly. The integration with operations will ensure that the server environment is deployed and configured with the code and will operate as expected by the team. Then, once code is completed and validated, it is deployed.

Azure and continuous delivery

Continuous integration - Deployment sourceAzure can play a large part in a continuous delivery environment. Visual Studio Team Services has direct integration tools that help facilitate continuous delivery through Azure. Another option is to use Azure App Services, which has connections to deployment source built into the service directly. The image at right shows a few of the source options in Azure Web Apps.

If you are not deploying to Azure App Services, Azure supports the automated deployment of virtual machines through the use of PowerShell, Azure CLI, and ARM Templates. If those are not your thing and you prefer to use Chef or Puppet,  Azure supports those options as well. Or try Azure Automation, a service that can facilitate a continuous delivery workflow. It integrates directly with source code control so you can keep your automation code with your application and infrastructure code.

The partner opportunity

Continuous delivery is a major part of a company's DevOps strategy, and partners that are working with customers to enable DevOps in their environment should understand how it works and why it's important. In previous posts in this series, I've discussed using DevOps as the basis for services provided to clients that could increase your profit margin for work already performed. Continuous delivery is an extension of that idea of adding value back to that service. As you work on features that other customers may want in their version of the service, continuous delivery can help push that out to all customers using that code and validating the value of paying for your intellectual property as a service instead of a one-time fee.

Take a look at the financial model and value proposition materials below to understand the market opportunity and insights for maximizing profitability.

If you're using continuous delivery in your projects today, share your thoughts with the community in the Application Development Partners group on Yammer.

Application Development Partner Community