Infrastructure as code
Defining your servers, databases, and DNS in version-controlled files instead of clicking around a cloud console.
See it
What it is
Instead of clicking through a cloud console to create a database, a bucket, and three DNS records, you write those resources down in files (Terraform, Pulumi, CloudFormation, CDK, Kubernetes manifests) and let a tool make reality match the file. The repo becomes the source of truth, so infrastructure gets code review, diffs, blame, and revert like anything else.
The payoff shows up the second time: spinning up a staging stack that actually matches production, recreating a region after an outage, or onboarding someone without a tribal-knowledge screenshot tour. Most tools are declarative, so you describe the end state and they compute the plan. Always read the plan before applying; the word 'destroy' in a Terraform plan is worth ten minutes of attention.
The classic failure is drift: someone fixes an incident by hand in the console at 2am, the file no longer matches reality, and the next apply quietly undoes the fix or nukes the resource. Treat the console as read-only, run drift detection, and keep state files remote and locked so two people applying at once don't corrupt them.
Ask AI for it
Convert this manually created infrastructure into Terraform, one module per concern (network, database, app service, DNS), with a remote backend and state locking. Parameterize everything that differs between environments through tfvars files for dev, staging, and production instead of duplicating modules. No hardcoded secrets: reference a secrets manager. Add explicit tags on every resource, output the values other stacks need, and give me the exact plan and apply commands plus a note on which resources would be replaced rather than updated in place.