Azure case study

Azure cost optimisation and cloud modernisation

A staged Azure estate review and modernisation reduced fixed run-rate while keeping production services, domains, and HTTPS working.

Project at a glance

Client profile
Microsoft-focused technology business
Engagement
Azure cost optimisation
Approach
Staged migration and validation
Outcome
Approximately 80% lower fixed run-rate

Business context

Challenge

A Microsoft-focused technology business needed to reduce Azure fixed run-rate while keeping production websites, CRM services, custom domains, HTTPS, monitoring, and business-critical workloads online. Spend had accumulated across oversized SKUs, older environments, paid hosting for static workloads, and resources that were no longer needed but still contributed to recurring cost.

Delivery response

Solution

The delivery team reviewed the Azure estate, separated fixed SKU cost from usage-based billing noise, identified the safest optimisation candidates, and applied staged changes only after validation. The work covered App Service right-sizing, CRM infrastructure migration, PostgreSQL resizing, static-site migration, DNS and SSL checks, obsolete-resource cleanup, and production performance testing.

From inventory to validation

Delivery scope

The work focused on durable run-rate reduction, with every infrastructure decision validated against live operational requirements.

  • Azure inventory and fixed-cost run-rate modelling across production and legacy environments
  • CRM App Service and PostgreSQL migration to lower-cost resources
  • Production website App Service right-sizing with performance validation before final SKU selection
  • Static corporate website migration from paid App Service hosting to Azure Static Web Apps Free
  • Custom domain, DNS, managed certificate, and HTTPS validation after each infrastructure change
  • Deletion of obsolete source environments and legacy resources only after functional checks passed
  • Load testing and response-time validation to avoid under-provisioning production traffic

Controlled change

Key implementation challenges

Cost reduction could not come at the expense of availability, security, domain behaviour, or future capacity.

Validate first. Remove only after production checks pass.
  • Reducing cloud spend without interrupting production availability
  • Migrating CRM infrastructure while preserving login and domain behaviour
  • Choosing the lowest viable App Service SKU from evidence rather than guesswork
  • Converting a server-rendered website deployment into a static artifact where static hosting was sufficient
  • Maintaining apex-domain HTTPS during the move to Static Web Apps
  • Separating durable run-rate savings from Month-to-Date billing noise
  • Cleaning up old resources only after production services, SSL, and HTTP responses were verified

Engineering detail

Technical specifications

The final operating model combined right-sized hosting, validated migrations, and clearer cost visibility.

  • Fixed Azure run-rate separated from usage-based billing noise for clearer cost decisions
  • Production website right-sized to a validated mid-tier Linux SKU
  • CRM application hosting moved to a lower-cost Linux App Service SKU
  • CRM PostgreSQL moved to a smaller flexible-server configuration with preserved operational behaviour
  • Static website hosting moved from paid App Service to Azure Static Web Apps Free
  • k6 and HTTP-level checks used to validate production behaviour after right-sizing
  • Public material excludes tenant IDs, resource IDs, DNS tokens, and internal command history

Operational impact

Results

80%Approximate reductionin fixed Azure run-rate
  • Production domains and HTTPS remained working after migration, right-sizing, and cleanup
  • Production website capacity was validated with 0% HTTP errors up to a realistic active-user test level
  • Higher-concurrency testing established a practical capacity boundary before HTTP failure
  • Static hosting replaced unnecessary paid server hosting for a static corporate site
  • Old environments, source resources, and test infrastructure were removed after validation
  • Remaining Azure cost drivers became clearer for future monitoring and governance

Summary

A cleaner Azure estate with a lower fixed operating cost

The project turned an accumulated Azure estate into a cleaner, lower-cost operating model. By combining cost modelling, staged infrastructure changes, production validation, and load testing, the team lowered fixed run-rate while preserving the services, domains, and HTTPS behaviour the business depended on.