Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is ARM template in Azure?
ARM (Azure Resource Manager) template is a JSON file that defines the infrastructure and configuration for Azure resources. It is native to Azure and used to deploy resources declaratively.
Click to reveal answer
beginner
What advantage does Bicep have over ARM templates?
Bicep is a simpler, more readable language that compiles into ARM templates. It reduces complexity and improves authoring experience while still being native to Azure.
Click to reveal answer
intermediate
How does Terraform differ from ARM and Bicep?
Terraform is a cloud-agnostic tool that manages infrastructure across many providers, including Azure. It uses its own language (HCL) and state management, offering multi-cloud support.
Click to reveal answer
intermediate
When should you choose ARM templates?
Choose ARM templates if you want native Azure support without extra tools and prefer JSON format. It is good for simple or existing Azure deployments.
Click to reveal answer
intermediate
What is a key reason to pick Terraform over ARM or Bicep?
Pick Terraform if you need to manage infrastructure across multiple cloud providers or want a single tool for all environments.
Click to reveal answer
Which tool compiles into ARM templates for Azure deployments?
ACloudFormation
BTerraform
CBicep
DAnsible
✗ Incorrect
Bicep is a domain-specific language that compiles into ARM templates for Azure.
Which tool is cloud-agnostic and supports multiple cloud providers?
ABicep
BTerraform
CARM templates
DAzure CLI
✗ Incorrect
Terraform supports many cloud providers, making it cloud-agnostic.
What format do ARM templates use?
AJSON
BHCL
CYAML
DXML
✗ Incorrect
ARM templates are written in JSON format.
Which tool offers the simplest syntax for Azure infrastructure as code?
ABicep
BARM templates
CPowerShell
DTerraform
✗ Incorrect
Bicep provides a simpler, more readable syntax compared to ARM templates.
If you only manage Azure resources and want native support, which tool is best?
ATerraform
BARM templates
CBicep
DChef
✗ Incorrect
ARM templates and Bicep are both native to Azure and best for Azure-only deployments.
Explain the main differences between ARM templates, Bicep, and Terraform for Azure infrastructure deployment.
Think about language, cloud support, and ease of use.
You got /4 concepts.
Describe scenarios when you would choose Terraform over ARM or Bicep for managing Azure infrastructure.
Consider multi-cloud and tool consistency.
You got /4 concepts.
Practice
(1/5)
1. Which tool is native to Azure and uses JSON for defining infrastructure?
easy
A. Terraform
B. Bicep
C. ARM templates
D. Ansible
Solution
Step 1: Understand native Azure tools
ARM templates are the original native infrastructure-as-code tool for Azure using JSON format.
Step 2: Compare with other tools
Bicep simplifies ARM but is not JSON; Terraform is multi-cloud and not native Azure.
Final Answer:
ARM templates -> Option C
Quick Check:
Native Azure tool with JSON = ARM templates [OK]
Hint: Native Azure + JSON = ARM templates [OK]
Common Mistakes:
Confusing Bicep as native JSON tool
Thinking Terraform is Azure native
Selecting Ansible which is not Azure native
2. Which syntax correctly declares a resource in Bicep?
easy
A. resource vm 'Microsoft.Compute/virtualMachines@2021-07-01' = { name: 'myVM' }
B.
C. resource "vm" { type = "Microsoft.Compute/virtualMachines" name = "myVM" }
D. vm_resource = { type: 'Microsoft.Compute/virtualMachines', name: 'myVM' }
Solution
Step 1: Identify Bicep syntax
Bicep uses the keyword 'resource' followed by a symbolic name, type with API version, and properties in braces.
Step 2: Compare options
resource vm 'Microsoft.Compute/virtualMachines@2021-07-01' = { name: 'myVM' } matches Bicep syntax; the XML-like syntax is invalid, the HCL-style block is Terraform syntax, and the plain object is invalid.
Final Answer:
resource vm 'Microsoft.Compute/virtualMachines@2021-07-01' = { name: 'myVM' } -> Option A
4. You try to deploy an ARM template but get a syntax error. Which is the most likely cause?
medium
A. Missing resource group in Terraform provider
B. Using Bicep syntax directly in ARM JSON template
C. Incorrect API version in Bicep resource declaration
D. Using Terraform commands on ARM template
Solution
Step 1: Identify syntax error source
ARM templates require JSON syntax; using Bicep syntax directly causes errors.
Step 2: Eliminate other options
Missing resource group affects Terraform, not ARM JSON; API version errors in Bicep cause deployment errors but not syntax errors; Terraform commands on ARM templates cause command errors, not syntax errors.
Final Answer:
Using Bicep syntax directly in ARM JSON template -> Option B
Quick Check:
ARM JSON syntax error = Bicep syntax used wrongly [OK]
Hint: ARM templates need JSON, not Bicep syntax [OK]
Common Mistakes:
Mixing Bicep syntax in ARM JSON
Confusing deployment errors with syntax errors
Assuming Terraform errors affect ARM templates
5. Your company uses Azure and AWS. You want a single tool to manage infrastructure on both clouds with reusable code. Which tool should you choose?
hard
A. Terraform
B. Bicep
C. Azure CLI scripts
D. ARM templates
Solution
Step 1: Identify multi-cloud support
Terraform supports multiple cloud providers including Azure and AWS with reusable code modules.
Step 2: Compare other tools
ARM and Bicep are Azure-only; Azure CLI scripts are Azure-specific and not declarative infrastructure code.
Final Answer:
Terraform -> Option A
Quick Check:
Multi-cloud infrastructure tool = Terraform [OK]
Hint: Terraform works across clouds, ARM/Bicep only Azure [OK]