After having a ton of fun with raw PowerShell in both ASM ('Classic') and the far more sensible ARM models, I then discovered the stunning simplicity of JSON templates.
See the Quickstart gallery here: https://github.com/Azure/azure-quickstart-templates
Combining the templates and DSC gives 'infrastructure as code' in a surprisingly simple/elegant way.
However this week I spent time with someone who literally NEVER logged into Windows machines and found the numerous PowerShell examples a bit odd.
To resolve this, one uses the XPLAT cli. This is truly cross-platform (Linux, MacOS, Windows) and can be used to do the deployments.
I've since discovered that an MVP, Trevor Sullivan, has done a top job at going into all this. See: