0
votes

We have Azure Build and Releases pipelines for our App Service. Everything is pretty straight-forward.

We initially configured single instance for the App Service and Release pipeline worked great.

But after scaling it out to 3 instances what we learned was that release pipeline delivers artifact only to one of 3 instances

So, the question is, how we can configure it in a way so artifact is deployed to all instances of the App Service regardless how many of them there are

Additional details:

  • this ASP.Net Core 3.1 project

  • we use "Azure App Service deploy" task

Azure App Services deploy details

1
For scaled out app service in Azure, The filesystem is shared between the instances. So, how did you know it just delivers artifact to only one of 2 instances?starian chen-MSFT
@starianchen-MSFT thank you, I actually didn't realize that they share same file system. there must be apparently mistaken on our side thenStanislav
Do you find the reason? If not, you may provide more information that you know.starian chen-MSFT
Are there any updates for this issue?starian chen-MSFT
@starianchen-MSFT development team is planned to work on that issue this week. I will respond back once I hear from themStanislav

1 Answers

1
votes

You will probably want to use deployment groups by changing your agent to a deployment group agent phase.

The deployment group allows you define multiple target environments, add tags, and target those tags on specific phases. I'm suspecting that you have installed the agent on all the target machines, but it will only run once and will pick from any agent registered in the pool. Instead, I believe you want it to run on every target.

You can even configure the release pipeline to automatically deploy the last deployment release as new targets are added.

You might reference this answer about the difference between an agent pool and deployment pool: Azure Devops (VSTS) Different between Agent Pool and Deployment pool