What Is Orchestration In Devops?
Using Azure Logic Apps for Azure DevOps Pipeline Orchestration
Code Sample12/12/2019This 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 definedSetup
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 subscriptionRunning 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.
I don't understand devops... What is a pipe'ine in jenkins? What are Chef and Puppet used for? Container orchestration wut? https://t.co/hGlW5QmE09
— 808x86 (@SteamPoweredDM) Oct 17, 2020
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 definedIt 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.