Click here to Skip to main content
14,579,188 members
Rate this:
Please Sign up or sign in to vote.
Hello,

I'm looking for a good solution that would allow to deploy app from azure devops repo to azure cloud but multiple times like e.g. 5 resource groups with 1 app each and the apps are the same for now, in the future they might have some specific params of deployment. Also I want all the apps to be redeployed on completed build pipeline (basically master branch with new pullrequest that went successfully). Is that possible? We don't want to deploy all the apps manually when something new goes into master branch. Just trigger a script or whatever and make it update the apps automatically. What's a good approach here?

What I have tried:

I've tried looking for an azure template configuration to create app service with CI/CD already set up to track devops repo for master branch changes but no go. That'd be to achieve something similar to Deployment Center in App Service on Azure Portal when you setup Azure Devops CI/CD.
Posted
Updated 29-Jan-20 2:06am

1 solution

Rate this:
Please Sign up or sign in to vote.

Solution 1

Quote:
5 resource groups with 1 app each and the apps are the same for now, in the future they might have some specific params of deployment.
I recommend that you use DevOps tools to automate this. Infrastructure as Code is one big term that comes to mind when this approach needs to be taken care of.

Quote:
azure template configuration to create app service with CI/CD already set up to track devops repo
If you want to create a new resource, then Azure Resource Manager Templates would work. If you want to update the existing web application, then this might not be a good solution. Since a solution redeployment is not what you are looking for.

I authored a blog post to discuss this topic, and how it can help you to write reusable infrastructure definitions, read it here[^].
Quote:
Just trigger a script or whatever and make it update the apps automatically. What's a good approach here?
It depends on how you are deploying the application. Is the application a Docker image? If so, you can use the web hooks to trigger an update on the production.

For other cases, such as monolith, you can use DevOps tools like GitLab Auto DevOps or Azure DevOps release pipelines to update the application on the cloud.

Check out this documentation, it gives an overview of this scenario: Release pipelines - Azure Pipelines | Microsoft Docs[^]
   
Comments
Member 14637786 29-Jan-20 10:49am
   
My app artifact is just a ZIP now. No docker. Also no ARM template for now, I've just created resources manually through PowerShell. The example scenario I wanna achieve is:
1. I have one Azure DevOps repo
2. I have ARM template for app deployment which will be initial configuration. For now it's like that:
- create resource group
- create storage account
- create plan
- create app service
And ofc the parameters will be different for every instance deployed, different resource group etc.
3. And now I want to deploy my app to the newly created cloud structure based on ARM template.
4. This scenario will be executed multiple times for every newly created app in its own group etc. Basically every client has its own instance
5. Now I want ALL the deployed apps to update to newer version if available on master branch. This may be triggered e.g. manually for now but I don't want to deploy each app one by one because when I deploy like 50 apps, that'd take too much time obviously to just update them to newer version. Would be nice if the existing app on the Cloud could just track if there's a new release on Azure DevOps.

I don't really have much experience with it to choose a proper approach.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)




CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100