dmitryserbin / azdev-release-orchestrator

Azure DevOps extension to manage and orchestrate release pipelines
MIT License
23 stars 13 forks source link

Option to "Set and Forget" orchestrations... instead of waiting for them to finish. #89

Open DennyWebb opened 1 year ago

DennyWebb commented 1 year ago

The fact that the Orchestrator step holds an agent hostage while waiting for the child task to complete creates some issues, especially when using them for parallel deployment of many services. We have a pool of 10 agents, if I have 7 services all deploying in parallel we encounter an issue where 7 Orchestrator steps are holding up 7 agents... leaving only 3 to do the actual work. If it were 10 services, the orchestrator pipeline would just sit and spin until timeouts, because there would never be any agents left to actually do the work. A simple solution for this is to have an option to use the orchestrator to just START the child pipeline, but not sit and monitor it's status/wait for it to finish... just set it and forget it.

dmitryserbin commented 1 year ago

V3 supports this for YAML pipelines using 'skipTracking' parameter.

At this point I have no plans adding this feature to V2 as Microsoft is slowly retiring the classic pipelines from Azure DevOps.

DennyWebb commented 1 year ago

By "the classic pipelines" do you mean Release Pipelines? If so, that's going to be a pretty disruptive change...

DennyWebb commented 1 year ago

Ah, nevermind, I see the 3.0 option for Release pipelines... it's just in preview to not the default.

DennyWebb commented 1 year ago

But apparently 3.0 only points to build pipelines, not release pipelines, as targets. :-/

dmitryserbin commented 1 year ago

YAML pipelines (also know as Azure pipelines) can be used as both build and release. Consider updating to YAML pipelines in the future.

DennyWebb commented 1 year ago

We keep them separated, as the YAML pipelines are for the DEVs and the release pipelines are for Ops. Having one giant list to wade through is a mess. Microsoft's plans as they near phasing out classic (as I understand it) is to move Release pipelines over to YAML so that the separation or responsibilities (and thus access) can still be maintained.

dmitryserbin commented 1 year ago

In my experience with large enterprise companies, all this is possible to achieve (including separation of duties) with YAML pipelines only. Yes, they do lack of functionality in some areas, but having pipelines as code worth it in the end of the day.

aracg commented 1 year ago

@dmitryserbin Please consider adding skipTracking to V2 as well. I don't see any information about release pipelines being deprecated.