Are you doing anything like this?
If so, you should try Azure Deployment Stacks. The feature was released in Public Preview a few days ago, and it is definitely worth looking at it as soon as possible.
Azure Deployment Stacks simplifies the resource lifecycle in Azure, it essentially groups together multiple resources under the same stack, removing the overhead of dealing with dependent resources and also applying effective policies improving governance
The documentation is heavily oriented towards Bicep, however it definitely works with ARM templates as well. And it works really well.
These are very welcome - the Update behavior property mimics the ARM Deployment Mode, however taking the Stack into consideration. The Lock property is amazing, potentially putting anything under the Stack in a protected mode, simplifying governance and control. The rest is an unaltered deployment, via an az stack
command. Redeployments take into account dependencies and the Lock property.
It is so simple it is mindblowing. Also… this considerably extends the usefulness of the Environments in Azure DevOps:
While it was true that you could have done that without Azure Deployment Stacks, you now have a repeatable, out-of-the-box command to create a 1:1 map between the Environment on the platform and the target environment in Azure.
Done at scale, this significantly simplifies the life of Platform Engineering teams.