Event banner
Azure Deployments AMA
Event details
Ernie, this is my personal opinion as a CSA working with partners rather than that of the product group representatives:
All of the options listed give the ability to provision Azure resources declaratively, and enable common configurations to be repeatedly deployed in a consistent manner.
ARM and Bicep are essentially the core first party offerings. Bicep is newer and is a DSL of ARM, i.e. can translate the ARM templates (JSON) to something more readable, and with a semi-coded aspect. It has the strongest support for services and features, so the Bicep learning path is a great place to start.
Terraform is commonly used, is open source, and enables multiple providers. The same syntax (Hashicorp's own HCL) and workflow (init -> plan -> apply) can be used consistently on multiple platforms. Widely used by multi-cloud partners and customers, and has some great lifecycle aspects (state). Can have some gaps in terms of new resource types or features, but huge innovation and the azapi provider helps to bridge the gap. (I'll plug my own https://www.azurecitadel.com/terraform/azapi/ labs here...)
Ansible is also open source and comes from Red Hat. Again, supports multiple platforms for infrastructure provisioning, but is also very rich regarding VM customisation and Ansible Galaxy is worth exploring.
Personally I like Bicep, which is evolving very nicely, but I still lean towards Terraform (for infra) combined with Ansible (for additional OS customization). Training and supportability within your org should always be a consideration here too!