What Is Orchestration In Devops?

In comparison, DevOps orchestration is the automation of numerous tasks that run at the same time in a way that minimizes production issues and time to market. Automation applies to functions that are common to one area, such as launching a web server, or integrating a web app, or changing a database entry.7 Dec 2020

Using Azure Logic Apps for Azure DevOps Pipeline Orchestration

Code Sample12/12/2019

This sample provides an Azure Resource Manager template for a Azure Logic app that can be used to orchestrate the execution of many Azure DevOps Pipelines. The Logic App is an HTTP triggered logic app that accepts a POST method. The payload has two arrays defined. The first array is the information for the pipelines that will need to be executed synchronously. The second is the information on the pipelines that, once the synchronous pipelines are completed, can be executed asynchronously.

Demo video of this Azure Logic App:

The Azure DevOps project that is being used for this demo can be located here: Azure DevOps Orchestration with Azure Logic Apps sample pipeline

Contents

File/folderDescriptionsamplesSample payloads that are sent to the app for execution.azuredeploy.jsonThe Azure Resource Manager template that contains the sample application..gitignoreDefine what to ignore at commit time.README.mdThis README file.LICENSEThe license for the sample.SECURITYMicrosoft OOS Security disclosure.CODE_OF_CONDUCTMicrosoft OOS code of conduct.

Prerequisites

Azure subscriptionAzure DevOps subscriptionAzure DevOps Pipelines defined

Setup

To setup this sample execute the follow steps in order.

Create a resource group within your Azure subscriptionaz group create -n {name of resource group to create}az group deployment create -g {name of resource group created} --template-file azuredeploy.jsonAuthenticate the arm API Connector that was deployed with the templateNavigate to the "Edit API Connection" blade of the arm API Connection ResourceClick the "Authorize"Login to the appropriate Azure SubscriptionAuthenticate the azuredevops API connector that was deployed with the templateNavigate to the "Edit API Connection" blade of the azuredevops API Connection ResourceClick the "Authorize"Login to the appropriate Azure DevOps subscription

Running the sample

To run do the following

Acquire the URL from the deployed logic app.

Open the logic app's designer view blade

Click on the "When a HTTP request is received" action

Copy the url

Construct the payload for the post request using the Pipeline Orchestration Payload Documentation.

Use your url posting tool of choice (Postman, curl, etc...). To post the request to the Logic app

Key concepts

This sample allows for orchestration of many Azure DevOps pipelines using an Azure Logic App. This is very useful for scenarios where a series of discrete Azure DevOps pipelines are used to create/maintain/update small services within a larger ecosystem of services. In this environment you would want to have CI/CD pipelines created to allow for each discrete service to by deployed individually. However, when a new environment is required, be it for testing, development, scaling, disaster recovery, etc., creating that new environment requires the execution of those pipelines in specific sequences and differing parameters.

This sample allows for those scenarios by:

queueing builds of the pipelineswith provided parametersin the sequence defined

It also allows for pipelines to be queued asychroniously, after the primary pipelines have completed.

Refer to the pipeline payload documentation to see how to provide that information.

You can review the detailed workflow of the Logic App after you deploy it to your Azure Subscription, but at a high level the Logic App uses the following work flow:

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to aContributor License Agreement (CLA) declaring that you have the right to, and actually do, grant usthe rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to providea CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructionsprovided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct.For more information see the Code of Conduct FAQ orcontact opencode@microsoft.com with any additional questions or comments.