Bicep is Azure-native. Terraform is cloud-agnostic. If your organization lives entirely in Azure, Bicep is a strong choice. But the moment you manage resources across AWS, GCP, or even GitHub repositories, Terraform becomes the lingua franca that your platform team actually standardizes on. This post covers everything you need to run Terraform on Azure in production — authentication, core resources, remote state, modules, and CI/CD pipelines that plan on pull requests and apply on merge.
151 posts tagged with "DevOps"
DevOps practices, CI/CD, and automation
View All TagsGoogle's DORA team spent seven years studying thousands of engineering organizations to answer one question: what separates elite performers from everyone else? The answer was not better tools or bigger budgets. It was four specific metrics that capture the speed and stability of software delivery. If you measure nothing else, measure these.
Most developers experience Docker as a production tool — build an image, push to a registry, deploy. But the development experience is equally important. Waiting 60 seconds for a rebuild every time you change a line of code is a productivity killer. This post covers the tools and patterns that make Docker development feel as fast as local development: volume mounts, compose watch, remote debugging, and Dev Containers that give every team member an identical environment in seconds.
You have built your app, containerized it, wrote the Kubernetes manifests, and it works great in staging. Now someone says "let's go to production" and suddenly you are wondering what you forgot. This checklist exists because every production incident I have seen traces back to skipping something obvious during setup.
It's not a matter of IF your disk fails -- it's WHEN. RAID is not a backup. Snapshots are not a backup. That "I'll set up backups next week" has been on your to-do list for six months. Today we build a real backup strategy that you can deploy in production and actually trust.
Managing 10 Terraform resources is straightforward. Managing 10,000 across 20 teams is a different game entirely. At scale, every decision compounds: where you store code, how you split state, who can approve applies, and how CI/CD pipelines run. Get these wrong and you end up with 45-minute plans, state files that lock out entire teams, and a single bad merge that takes down production networking. This post covers the architectural decisions that separate "Terraform works for my team" from "Terraform works for my organization."
