Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
From Terraform 1.5 to 1.17 and AzureRM 3 to 5: What Changed and How to Read Old Code
Moving old Terraform code to today's version means doing syntax fixes, address moves and the migration of types the provider removed in separate steps, seeing an empty plan at each step. We run 0.11-era code with 1.17, move null_resource to terraform_data, go through the version map from 1.5 to 1.17 and how -minimal-refresh hides drift, and try the upgrade order from AzureRM 3 to 5 and the real compatibility gaps with OpenTofu.
What Is Infrastructure as Code? Terraform, OpenTofu, Bicep, Pulumi and When to Use Which
Infrastructure as Code means describing infrastructure in code and letting a tool bring it to the desired state; running the same code twice changes nothing, and a manual change shows up as drift in the next plan. We compare a bash script with Terraform on the same job, look at the code-plan-apply-state loop, place Terraform, OpenTofu, Bicep, Pulumi and Ansible, and work out selection criteria for a team after the BSL, OpenTofu and the retirement of CDKTF.