Compare infrastructure as code tools and services across all major cloud providers.
Showing 20 of 20 features.
| Feature | AWS | Azure | GCP | OCI |
|---|---|---|---|---|
Native IaC Service Core Features | AWS CloudFormation | Azure Resource Manager (ARM) / Bicep | Google Cloud Deployment Manager | OCI Resource Manager (Terraform-based) |
Third-Party IaC Core Features | Terraform (AWS Provider), Pulumi, CDK for Terraform | Terraform (AzureRM Provider), Pulumi, Crossplane | Terraform (Google Provider), Pulumi, Config Connector | Terraform (OCI Provider), Pulumi |
CDK / Programmatic Core Features | AWS CDK (TypeScript, Python, Java, C#, Go) | Bicep (DSL); CDK for Terraform; Farmer (F#) | CDK for Terraform; Pulumi (TypeScript, Python, Go, C#) | CDK for Terraform; Pulumi support |
Pricing Core Features | CloudFormation free; pay for provisioned resources only | ARM/Bicep free; pay for provisioned resources only | Deployment Manager free; pay for provisioned resources | Resource Manager free; pay for provisioned resources |
Resource Coverage Core Features | CloudFormation: 900+ resource types; Terraform AWS: 1300+ resources | ARM: all Azure resources; Terraform AzureRM: 1100+ resources | Deployment Manager: 150+ types; Terraform Google: 1000+ resources | Resource Manager: all OCI resources via Terraform OCI provider |
Template Language Language & Tooling | CloudFormation: JSON/YAML; CDK synthesizes to CloudFormation | ARM: JSON; Bicep: purpose-built DSL that compiles to ARM JSON | Deployment Manager: YAML + Jinja2 or Python templates | Resource Manager: Terraform HCL natively |
Module / Reuse System Language & Tooling | CloudFormation: Nested Stacks, Modules registry; CDK Constructs | Bicep modules with registry; ARM linked templates | Deployment Manager: composite types; Terraform modules | Terraform modules from OCI or public registry |
IDE Support Language & Tooling | AWS Toolkit for VS Code; CloudFormation linter (cfn-lint) | Bicep VS Code extension with IntelliSense and validation | No native IDE support; Terraform/Pulumi IDE plugins | Terraform extension for VS Code; OCI console editor |
Validation / Linting Language & Tooling | cfn-lint, cfn-guard for policy-as-code validation | Bicep linter, ARM template validation, Azure Policy | Deployment Manager template validation; Terraform validate | Terraform validate and plan; OCI console validation |
Preview / Plan Language & Tooling | CloudFormation change sets; CDK diff; Terraform plan | ARM what-if; Bicep what-if; Terraform plan | Deployment Manager preview; Terraform plan | Resource Manager plan job; Terraform plan |
State Management State & Drift | CloudFormation: managed by service; Terraform: S3 + DynamoDB backend | ARM: managed by service; Terraform: Azure Storage backend | DM: managed by service; Terraform: GCS backend | Resource Manager: managed state; Terraform: Object Storage backend |
Drift Detection State & Drift | CloudFormation drift detection for supported resources | ARM what-if for drift; Azure Policy for compliance drift | No native DM drift detection; Terraform plan shows drift | Resource Manager drift detection job; Terraform plan |
Import Existing Resources State & Drift | CloudFormation resource import; Terraform import command | ARM template export from portal; Terraform import | Terraform import; no native DM import | Resource Discovery generates Terraform from existing resources |
Rollback Strategy State & Drift | CloudFormation automatic rollback on failure; retain option | ARM deployment rollback to last successful; complete mode | DM rollback on failure; Terraform manual state recovery | Resource Manager automatic rollback on failed apply |
Concurrency / Locking State & Drift | CloudFormation: stack-level locking; Terraform: DynamoDB locking | ARM: subscription-level deployment locking; Terraform: blob lease | DM: deployment-level lock; Terraform: GCS object locking | Resource Manager: stack-level locking; Terraform: remote lock |
Multi-Account / Org Operations | CloudFormation StackSets for multi-account/region deployments | Management Group-scoped deployments; Tenant-level Bicep | Config Controller for org-level; DM per-project only | Resource Manager stacks across compartments and tenancies |
Policy / Guardrails Operations | Service Control Policies; CloudFormation Guard; AWS Config | Azure Policy; Bicep linter rules; management group policies | Organization Policy Service; gcloud org policies | Security Zones; OCI policies with conditional access |
Secrets Integration Operations | CloudFormation dynamic references to Secrets Manager and SSM | Bicep references Key Vault secrets at deployment time | Secret Manager integration in Terraform; DM parameter files | Resource Manager references OCI Vault secrets |
CI/CD Integration Operations | CodePipeline, CDK Pipelines, GitHub Actions; AWS SAM for serverless | Azure DevOps, GitHub Actions, Bicep deployment tasks | Cloud Build, GitHub Actions, Cloud Deploy integration | OCI DevOps pipelines, GitHub Actions with OCI CLI |
Cost Estimation Operations | No native; AWS Pricing Calculator, Infracost for Terraform | ARM what-if cost impact (preview); Infracost for Terraform | No native; Infracost for Terraform cost estimation | Cost Estimator in console; Infracost for Terraform |
Infrastructure as Code (IaC) is fundamental to cloud operations, and each cloud provider offers native IaC tools alongside cross-cloud options. AWS has CloudFormation and CDK, Azure has ARM templates, Bicep, and Azure Developer CLI, GCP has Deployment Manager and Config Connector, and OCI has Resource Manager (Terraform-based). Cross-cloud tools like Terraform, Pulumi, and Crossplane add another dimension. This comparison evaluates IaC tools across language support, state management, drift detection, modularity, testing frameworks, and ecosystem maturity to help you choose the right IaC strategy.
Disclaimer: This tool runs entirely in your browser. No data is sent to our servers. Always verify outputs before using them in production. AWS, Azure, and GCP are trademarks of their respective owners.