Optimization

Reduce Azure development and test environment costs

Control non-production Azure spend with sizing, scheduling, retention, environment lifecycle rules and clear ownership, without slowing delivery teams down.

By Cloudledger · Updated

Non-production accumulates by default

Test environments are usually created quickly and removed slowly. Over a year, an estate can accumulate environments for projects that shipped, proofs of concept that ended and duplicated stacks per developer. The cost is rarely one large item; it is many small ones that nobody owns.

Start with ownership, not deletion

Attribute non-production cost to a team, project or environment using subscriptions, resource groups and tags. Without attribution, every cleanup conversation becomes a search for whoever recognises a resource name. With it, the conversation is about a specific owner’s environment and a specific figure.

  1. Group non-production spend by subscription, resource group and tag.
  2. Identify environments with no recent activity or deployments.
  3. Confirm each environment’s owner and its expected end date.
  4. Agree scheduling, resizing or removal for each candidate.

Apply the cheapest safe change first

Scheduling and rightsizing usually carry less risk than deletion. Reduced redundancy, shorter retention and smaller data copies can also help in non-production. Keep production-like performance where teams genuinely need it to validate behaviour; a test that no longer reflects production has a cost of its own.

Use policy to prevent regrowth

Consider guardrails such as naming and tagging requirements, allowed SKUs and regions, budget alerts per environment, and an expiry convention for temporary stacks. Guardrails work better when the owning teams help define them, and when there is a clear process for legitimate exceptions.

Review it on a schedule

Non-production spend drifts back without a recurring review. Include it in the monthly cost review, track actions to completion, and record the verified saving separately from the projected one. Cloudledger’s resource group and change views can support that recurring check.

Microsoft documentation

Related guides

Browse all 23 guides →