Date: 2020-10-22
Accepted
We want an approach to Infrastructure as Code that allows us to easily replicate our TTS Azure sandbox in environments at our partner agency. Our partners are invested in the Microsoft ecosystem and Azure; we do not anticipate this system needing to support other cloud environments in the foreseeable future. The current 18F engagement team does not have deep experience with either Terraform or Azure Resource Manager templates, though Terraform is used widely at TTS.
We will use Azure Resource Manager (ARM) templates to implement an Infrastructure as Code approach.
We anticipate that:
- other partner agency teams will more readily adopt ARM than Terraform
- obscure Azure errors will be (slightly) easier to diagnose without the Terraform abstraction layer
- ARM's ability to recognize when resources are modified outside of the template will be useful in environments where other teams (not 18F) have control
- Terraform's syntax advantage will lessen as Project Bicep matures
- Azure features will be available in ARM before they appear in the Terraform Azure provider