Image Impressionist-style illustration of Git-managed incident management configuration and Terraform workflows

Product Guides & Tutorials

New

Infrastructure as Code (IaC) is Not an Add-On

When rotations drift and no one remembers who changed what, the pager still works but trust erodes. Incident management belongs in Git, reviewed and applied like the rest of your infrastructure.

Nikolas Köppl

By Nikolas Köppl · Go-to-market at All Quiet

Updated: Tuesday, 19 May 2026

Published: Tuesday, 19 May 2026

If It's Not in Git, It Doesn't Exist: Why IaC Isn't An Add-On for Incident Management

Engineering teams are no stranger to the unwanted moment of opening a config page, tilting their heads and saying, "Huh... that's not what I expected."

Is it a rotation that doesn't match the team doc? An integration that looks a bit different from the one in staging? Maybe it's a schedule that was definitely updated last quarter but now looks a bit scant.

Nothing's broken, no one's being paged unnecessarily, the incident management tool is doing exactly what it's supposed to, but something's out of sync and no one can remember when or why it changed.

Since these small friction points don't cause outages, they're more likely to go unseen. But that's exactly where the problems start. They accumulate. They're a sign that the configuration has slowly drifted away from whatever the team thought the source of truth was; which brings us to Infrastructure as Code.

What is Infrastructure as Code (IaC)?

IaC is the idea that your infrastructure, and all the little operational details around it, should be defined in code, stored in Git, reviewed like every other change and applied consistently. It replaces:

  • "I swear I updated that"
  • "Who clicked this?"
  • "Why does staging look different from prod?"
  • "Wait, when did this change?"

...with a single, reliable answer: Git history.

And it's nothing fancy either. It's simply a better way to align humans and systems. It's discipline; it's the decision to treat operational configuration with the same rigor as application code. That means:

  • No undocumented UI changes
  • No relying on memory
  • No tribal knowledge
  • No "just tweak it real quick" edits.

And as teams grow (and responsibilities spread across platform, SRE, DevOps and product engineering), a shared, reviewable, auditable source of truth becomes non-negotiable.

Interestingly, IaC adoption often starts with infrastructure provisioning. Operational workflows like incident management follow later as teams mature, even though things like schedules, rotations, integrations and everything that keeps a team responsive, benefit from IaC just as much as VPSs, clusters or load balancers.

That's where tools like All Quiet (and its Terraform provider) come in. They give you a clean, modern incident management experience, all while allowing you to manage it the same way you manage the rest of your infrastructure (which is predictably, I hope).

The real problem with manual rotations

We all love incident management tools. They keep teams responsive, informed, and most importantly, sane. But when you rely on manual updates for scheduling, rotations and integrations, you introduce some classic DevOps villains.

Configuration drift

Silent and sneaky, it waits until your head hits the pillow to show itself. It slowly erodes your confidence in what's deployed and is the main reason staging and production sometimes feel like distant cousins instead of twins.

Human error

Not because engineers are careless, they're just busy (sometimes too busy). Manual updates rely on memory, timing and attention, all of which are finite resources and ever-more dwindling during midnight crises.

Zero visibility

"Who changed this? When? Why? How? Oh, it was me... right." If the answer requires Slack thread excavations, you've already lost.

Multi-team complexity

The more teams you have, the more likely someone will accidentally summon chaos. Especially when each team has slightly different processes, naming conventions or expectations.

Manual configuration isn't bad, it's just not scalable. And incident management is one of the last places you want surprises.

Terraform 101 (explained like you're a smart engineer who just wants the short version)

Now we're getting to the good stuff.

To keep things simple, Terraform is basically Git for your infrastructure's memory.

You write down how you want your world to look, let's say your schedules, your integrations and your escalation paths, and Terraform waves a magic wand and makes it real. Sounds like pie in the sky but it's actually much simpler than it sounds. The workflow looks like this:

  1. Write the configuration: Declare what you want, not how you want it.
  2. Plan the change: Terraform shows you exactly what will happen before anything happens.
  3. Review the diff: Humans get to sanity-check the machine.
  4. Apply with confidence: Terraform updates the real world to match your code.
  5. Audit forever: Every change lives in Git. Forever.

Easy peasy.

And thanks to the All Quiet Terraform provider, the same lifecycle applies to your incident management setup. Suddenly your on-call world becomes code, versioned, documented, safe from Friday-afternoon edits.

If you want Terraform explained in a more philosophical, AI-generated way, the provider is surprisingly patient at explaining that too (I say with experience).

All Quiet + Terraform: A match made in DevOps heaven

Here's where it gets a bit more fun (bear with me, now).

Rather than treating IaC like a bolt-on, All Quiet's Terraform provider treats it like royalty. Everything you configure, from schedules to rotations and everything in between, can live in Git. It can go through pull requests and follow the same DevOps lifecycle your infrastructure already does (cheers in DevOp).

A few reasons the dynamic duo works so well:

No more mystery changes

Every update has a commit, a diff and a human attached. In other words, accountability becomes second-nature.

Centralized control

Terraform enforces who can create integrations and schedules. You don't need to give every engineer admin access to your incident management tool.

Consistency across teams

Everyone follows the same pattern, naming conventions and lifecycle, whether across two teams or 20.

Predictability

Terraform doesn't forget to update the rota because it was hungry and the rugby starts at 7 p.m. (neither do your engineers... ideally).

All Quiet gives you a clean, modern incident management experience, while Terraform keeps that experience consistent, scalable and drift-free.

What IaC unlocks for incident management

IaC is much more than just a nice idea. It's a force multiplier that your future self (and on-call engineers) will thank you for. Here's why.

Predictability

Git always knows what's deployed, which means you always know too.

Auditability

No more detective work or moments of temporary amnesia when every change is fully documented.

Reproducibility

Need a new team? A new rotation? Maybe a new integration? Copy, paste, apply. Done.

Governance without bureaucracy

Centralized control without slowing teams down or creating bottlenecks.

Less cognitive load

Your team doesn't have to remember how to "do the thing." They just write the code.

An example of managing on-call via code

Here's a little taste of what managing on-call with Terraform might look like:

resource "allquiet_team" "my_team" {
  display_name = "My Team"
  time_zone_id = "America/Los_Angeles"
  incident_engagement_report_settings = {
    day_of_week = "mon"
    time        = "09:00"
  }
  labels = ["Product", "Services", "Operations"]
}

resource "allquiet_schedule" "backend_team" {
  name = "Backend Team On-Call"
  rotation {
    users  = ["alice", "bob", "charlie"]
    length = "1w"
  }
}

Readable, reviewable, reproducible. And most importantly: no surprises.

The cultural shift to IaC as a first-class citizen

The nuance that most IaC articles miss is that IaC isn't just tooling, but a mindset.

Most organizations prioritize coding infrastructure, CI/CD and observability long before incident management, even though it's one of the most critical and high-impact systems you have. Incident management deserves the same lifecycle and version control as every other system; maybe even more.

Think of it this way: if you can spin up a Kubernetes cluster via Terraform but can't page the right person in the middle of the night, is it really worth it?

The future is declarative (and much less painful)

Incident management isn't chaotic by nature; on the contrary, it's meant to reduce chaos by telling you what's not calm. It only becomes chaotic when the underlying configuration drifts, mutates or hides in a UI somewhere.

By treating incident management like code (especially with a provider built for the DevOps lifecycle), you calm the chaos. You invite consistency and visibility, which all lead to more control.

And with All Quiet + Terraform, your setup respects your workflow, your teams and your sleep schedule. Your future on-call engineers will never know the panic-inducing chaos you saved them from. Keep those futures safe and talk to us today.

Nikolas Köppl

Author

Nikolas Köppl

Go-to-market at All Quiet

Builds go-to-market and customer-first growth for teams adopting calmer, clearer incident communication.