- Powershell 脚本中最好的是 AZ (azure CLI),因为它优化了 powershell 脚本(从头开始)
- 任何形式中最好的是 ARM 模板 (.json),因为它在更新现有基础设施时是智能的(它不会删除现有的但会添加缺失的)。因此它击败了 AZ,但有时 AZ 有助于 ARM 模板(例如:缺少某些功能)。
- Azure 自动化有助于安排任务:
例如:开发机器应该运行 12 小时。创建 PowerShell 工作流脚本,然后将它们绑定到两个 azure 自动化计划(开始 + 停止)
- DSC 是一项 PowerShell 功能,可防止配置漂移。例如:部署防止服务器服务停止的 DSC 配置。
大多数时候,可供选择的选项有限(4 个选项)
例如:要创建一个虚拟网络,这些是选项:
- 使用门户
- 使用 Powershell
- 使用 Azure CLI
- Json ARM 模板

根据要求于 2020 年编辑:
IAC(基础设施即代码)是当今的事实,公司要么选择 ARM 模板,要么选择 Terraform(或类似的)。使用 Terraform 时,与 arm 模板的兼容性可能会成为问题。我使用 80% 的带有 AZ 的 powershell(主要是因为涉及 VM)和 20% 的 ARM 模板。那么问题就是失去幂等性。所以开发者需要知道哪些命令是幂等的。这会导致 arm 模板继承和这样的设计考虑。另一个问题可能是:“我应该一起创建 Keyvault 和 VM,还是应该将 Keyvault 分开?” 或者换句话说,对资源创建或更新进行分组,无论它们存在哪个天蓝色资源组。
Azure 函数也用于自动化,例如:基于某些条件的 VM 开始时间和结束时间。
Azure 策略在企业自动化方面发挥着重要作用。例如:如果在创建时将标签添加到 VM,那么它会触发加入域的策略(在 10 分钟内)。这样,企业中的每个团队都可以在需要时重用代码。
我能想到的其他脚本和自动化是 KQL(Kusto 查询语言),它提供用于监控的仪表板并采取必要的操作,例如关闭 VM。但它可能不适合“自动化”。