Reducing your monthly costs in Azure

Part of our ongoing analysis of resources consumed by ourselves and that of our customers is to ensure we are keeping hosting costs down to a minimum. At Assemblysoft we have been fully utilising Microsoft Azure since its inception, when the portal was still written in Silverlight.

Over that time we have learned that Azure spend rarely gets out of hand through one big mistake. It creeps: a test environment left running, a database tier sized for a launch that never needed it, storage that nobody ever cleans up. The good news is that the tooling to find and fix this is built into the platform — you just need the habit of using it.

Start with visibility: Cost Analysis

The Cost Analysis blade in Azure Cost Management is the first place we look. Group the view by resource group, then by service, and switch to daily granularity. Within a few minutes you can usually answer the two questions that matter: what are the top five things we pay for, and has anything changed shape recently? A flat line that suddenly steps up is almost always a deployment or configuration change worth investigating, not organic growth.

Budgets and alerts

Every subscription we manage gets a budget with alert thresholds — typically at 50%, 80% and 100% of expected monthly spend, emailing the people who can actually act on it. Budgets do not stop spending by themselves, but they turn a nasty end-of-month surprise into a mid-month conversation. For non-production subscriptions, an alert firing early in the month is a strong signal something was left switched on.

Right-sizing and removing waste

Azure Advisor's cost recommendations are free and surprisingly effective: under-utilised virtual machines, idle gateways and unattached managed disks show up there first. Beyond Advisor, the recurring wins we see are:

  • Auto-shutdown for dev and test — VMs that run 8 hours on weekdays instead of 24/7 cost roughly a quarter as much.
  • Right-sized App Service plans and databases — check actual CPU, memory and DTU/vCore usage before renewing a tier chosen a year ago.
  • Orphaned resources — unattached disks, stale snapshots, unused public IPs and old storage accounts left behind by deleted workloads.
  • Storage lifecycle policies — move ageing blob data to cool or archive tiers automatically rather than paying hot-tier prices for data nobody reads.

Designing the waste out

Everything above is housekeeping: finding waste after it has appeared. The bigger long-term wins come from architectural choices that stop the waste existing at all. For spiky or occasional workloads, consumption-based services such as Functions on a consumption plan or serverless database tiers mean you pay per use rather than for idle capacity sat waiting. For steady web workloads, several small applications can often share one right-sized App Service plan instead of each carrying their own. And favouring platform services over virtual machines removes not just compute cost but the patching and maintenance effort that never shows up on the Azure bill yet is very real.

The other structural fix is making environments disposable. When infrastructure is defined as code and created by a pipeline, a test environment can be spun up for a release, exercised, and torn down the same day. The classic left-running problem disappears not because someone remembered to switch things off, but because nothing exists unless a pipeline recently created it. Setting up that workflow is a core part of our Azure DevOps engagements, and it changes cost behaviour more reliably than any monthly review.

Cost also deserves a seat at the table when workloads first move to the cloud. A like-for-like lift of servers into virtual machines is nearly always the most expensive shape a system can take in Azure, so we have this conversation early in every migration; you can see the platform-first approach in our Azure web development case study.

Pay less for what you keep

Once a workload is stable and right-sized, commit to it. Reserved instances for virtual machines and databases offer substantial discounts — often in the range of 30–60% against pay-as-you-go — in exchange for a one- or three-year commitment. Dev/Test pricing is another commonly missed saving for non-production subscriptions. The order matters: right-size first, then reserve, otherwise you lock in the waste.

Tagging and the monthly habit

None of this sticks without ownership. We tag resources by environment, project and owner so Cost Analysis can answer “who does this belong to?” without archaeology, and we put a short cost review in the calendar every month. Thirty minutes of looking at the trend, checking Advisor and closing off one or two items is worth far more than an annual cost-cutting exercise.

Azure cost management in 2026

This article dates from 2020, and the fundamentals above have aged well — visibility, budgets, right-sizing and commitments are still the core loop. A few things have moved on. Azure savings plans for compute now sit alongside reservations, trading a little less discount for much more flexibility across services and regions, and are often the better default for mixed estates. FinOps has grown from a buzzword into standard practice, with cost accountability treated as an engineering concern rather than a finance afterthought.

The other change is what drives the bill. For many of the teams we work with, AI workloads — GPU compute and Azure OpenAI token consumption — are now a meaningful line item, and they deserve the same treatment: tag them, budget them, and review them monthly. The tooling has improved too, with AI-assisted natural-language queries over cost data making the analysis step quicker than it was.

If your Azure bill has drifted upwards and nobody quite knows why, a structured review usually pays for itself within the first month or two. Our Azure development and cloud migration teams do this as a matter of course on every engagement.

At Assemblysoft we specialise in Custom Software Development tailored to your requirements. We can onboard and add value to your business rapidly. We are an experienced Full-stack development team able to provide specific technical expertise or manage your project requirements end to end. We specialise in the Microsoft cloud and .NET Solutions and Services. Our developers are Microsoft Certified. We have real-world experience developing .NET applications and Azure Services for a large array of business domains. If you would like some assistance with Azure | Azure DevOps Services | Blazor Development | .NET MAUI Development or in need of custom software development, from an experienced development team in the United Kingdom, then please get in touch, we would love to add immediate value to your business.

Azure Cost Analysis

Assemblysoft - Your Safe Pair of Hands

https://assemblysoft.com/