Skip to main content
Cloud DevOps Solutions
Get a quote Talk to an engineer

Cloud platforms

Azure environments designed for security, governance and cost

Microsoft Azure is Microsoft's cloud platform, closely integrated with Entra ID, Microsoft 365 and the Windows ecosystem. We design Azure landing zones with management groups, subscriptions, policy, identity and network topology, then build them with Terraform so governance and cost control are part of the platform from day one.

Key takeaways

  • Management groups, subscriptions and Azure Policy are the backbone of a governable Azure estate.
  • Entra ID is the control plane: Conditional Access, privileged identity management and managed identities do most of the security work.
  • Hub and spoke networking gives you central inspection and shared services, at the price of more design effort and some egress cost.
  • Azure is strongest when you already live in the Microsoft ecosystem, and weaker as a choice if you do not.
  • Cost control depends on subscriptions per environment, tags enforced by policy, budgets and regular review.

What teams use Microsoft Azure for

Microsoft-centred organisations

Teams already using Microsoft 365, Entra ID and Windows Server who want one identity and licensing story across cloud and office.

Enterprise customers and compliance

Environments that must satisfy customer security reviews, using policy, logging and private networking to show control.

.NET and SQL Server workloads

App Service, Azure SQL or SQL Managed Instance and Container Apps for applications built on the Microsoft stack.

AKS and container platforms

Managed Kubernetes with workload identity, private clusters and Azure Container Registry, run through a delivery pipeline.

Azure DevOps delivery

Boards, repositories and pipelines integrated with Azure resources through service connections that use federated credentials.

What Azure is and who it suits best

Microsoft Azure is a full cloud platform, but its defining strength is integration. If your people sign in with Entra ID, your documents live in Microsoft 365, your applications run on .NET and SQL Server, and your procurement already has a Microsoft agreement, Azure removes a great deal of friction. Identity, licensing, device management and developer tooling share one model.

That integration is also how you should judge whether Azure fits. If none of those ties exist, you are choosing it on its merits, and the honest comparison with AWS or Google Cloud matters more. We cover that at the end of this page. Our own background includes Microsoft certified engineering, so Azure consulting is a core part of what we do rather than a side offering.

Landing zone: management groups, subscriptions and policy

Azure organises resources in a hierarchy: tenant, management groups, subscriptions, resource groups, resources. The useful insight is that policy and role assignments inherit downward, so structure is a governance tool, not just filing.

We keep the hierarchy small. A typical layout for a scale-up has a platform group (connectivity, identity, management) and a workloads group with separate subscriptions for production and non-production. Subscriptions are the unit of billing, quota and access, so splitting them early makes cost and permission questions simple to answer.

Azure Policy then enforces the rules you would otherwise write in a wiki:

  • Require approved regions and deny public IP addresses on selected resource types.
  • Require tags such as environment and owner, and inherit them from the resource group.
  • Deploy diagnostic settings automatically so logs always reach the central workspace.
  • Audit or deny storage accounts that allow public blob access.

Start policies in audit mode, review what would break, and only then switch to deny. Switching on deny blindly is a common way to halt a team.

Defined in code

We build the hierarchy, subscriptions, policy assignments and networks with Terraform, with separate state per layer and a pipeline that plans on pull request. A minimal example of a resource group with enforced tagging inputs:

resource "azurerm_resource_group" "app" {
  name     = "rg-app-prod-weu"
  location = "westeurope"

  tags = {
    environment = "prod"
    owner       = "platform-team"
    service     = "orders-api"
  }
}

If your estate was created in the portal, our Terraform service imports it safely rather than rebuilding it.

Identity and access with Entra ID

In Azure, identity is the perimeter. Our baseline:

  • Conditional Access requiring MFA for all users and stronger controls for administrators, with break-glass accounts excluded and monitored.
  • Privileged Identity Management so elevated roles are time-bound and approved, not permanent.
  • Azure RBAC assignments to groups, never to individuals, at the lowest scope that works.
  • Managed identities for resources, and workload identity federation for CI pipelines, so there are no client secrets to leak or rotate.
  • Key Vault for the secrets that remain, with RBAC-based access and soft delete enabled.

A common mistake is granting Owner at subscription scope to a whole engineering team because it is convenient. We replace it with scoped roles and a documented path to elevation.

Networking: hub and spoke, used carefully

For anything beyond a single application, we use a hub and spoke topology: a hub virtual network holding shared services such as firewall, DNS and VPN or ExpressRoute connectivity, with spoke networks for workloads peered to it. This gives central inspection and one place to manage egress.

The trade-offs are worth stating plainly. A central firewall adds cost and a potential bottleneck, and peering data transfer is charged. For a small team with one application, a single virtual network with network security groups and private endpoints may be enough, and simpler to run. We choose the lightest design that meets your security requirements. Private endpoints for PaaS services such as storage, Key Vault and databases are almost always worth it.

Cost control

Azure Cost Management shows spend by subscription, resource group and tag, which is why the hierarchy matters. We set budgets with alerts per subscription, enforce tags through policy, schedule non-production shutdowns and review Advisor recommendations for idle or oversized resources. Reservations and savings plans come after right-sizing, applied only to steady baseline usage. Dev and test environments deserve special attention, because they are frequently left running at production size.

Managed services we lean on

We prefer platform services to virtual machines wherever the workload allows: Azure Kubernetes Service for container platforms, App Service or Container Apps for simpler web workloads, Azure SQL or PostgreSQL flexible server for data, Storage for objects, and Service Bus for messaging. Delivery commonly runs through Azure Pipelines or GitHub Actions; our Azure DevOps pipelines guide covers the patterns we use.

Common failure modes

  • Everything in one subscription. Quotas, permissions and cost all tangle together.
  • Permanent Owner roles. Standing privilege is the easiest thing for an attacker to inherit.
  • Policy switched to deny without testing. Deployments fail unexpectedly across teams.
  • Missing diagnostic settings. You find out logs were never collected after an incident.
  • Unplanned address space. Overlapping ranges block peering and VPN later.

When Azure is not the right choice

Choose AWS if you want the broadest service catalogue and have no Microsoft ties, or Google Cloud if analytics and data engineering define your product. Portal-heavy administration and naming differences can also slow teams who come from another cloud. If you are weighing options, talk to us and we will give you a straight comparison for your workload.

Official documentation: azure.microsoft.com

How we work with Microsoft Azure

  1. 01

    Audit tenant and subscriptions

    We review the Entra tenant, subscriptions, role assignments, policy state and recent cost with read-only access.

  2. 02

    Design the landing zone

    Management group hierarchy, subscription layout, naming, tagging, network ranges and policy set, agreed in writing.

  3. 03

    Codify with Terraform

    Subscriptions, networks, policy assignments and role assignments are defined in code and applied from a pipeline.

  4. 04

    Harden identity

    Conditional Access, MFA, privileged identity management, and managed identities in place of stored secrets.

  5. 05

    Enable logging and governance

    Activity logs, diagnostic settings and Defender for Cloud recommendations routed to a central workspace.

  6. 06

    Control cost and operate

    Budgets, tag policy, right-sizing, reservation modelling and a monthly review of risk and spend.

Microsoft Azure compared with the alternatives

We recommend the tool that fits your team, not the one we know best. Here is when each option makes sense.

OptionChoose it when
Microsoft AzureMicrosoft Azure is Microsoft's cloud platform, closely integrated with Entra ID, Microsoft 365 and the Windows ecosystem.
AWSChoose AWS if you want the widest catalogue of managed services and you have no strong Microsoft identity or licensing ties.
Google CloudChoose Google Cloud for data and analytics led products, or if you value its managed Kubernetes and simpler project model.
Microsoft 365 and SaaS onlyChoose SaaS products over Azure infrastructure if you do not need to run custom software at all.
Hybrid with on-premisesKeep workloads on-premises if latency, data residency or sunk hardware cost outweighs the flexibility of cloud.

Tools we use alongside Microsoft Azure

TerraformBicepMicrosoft Entra IDAzure PolicyAzure MonitorLog AnalyticsAzure Kubernetes ServiceAzure DevOpsAzure Key VaultMicrosoft Defender for CloudAzure Cost ManagementGitHub Actions

Frequently asked questions

What is an Azure landing zone?
An Azure landing zone is the pre-built foundation that workloads are deployed into: a management group hierarchy, subscriptions, policy assignments, network topology, identity and logging. It gives every new workload consistent guardrails from day one. We implement ours with Terraform and adapt Microsoft's reference architecture to the size of your organisation rather than copying the enterprise version.
Terraform or Bicep for Azure?
Both are sound. Bicep is Azure-native and has same-day support for new resource features. Terraform covers Azure plus other providers such as GitHub, Kubernetes and DNS in one workflow and state model. We usually choose Terraform for teams that also run other platforms, and Bicep for Azure-only teams who prefer a native tool.
How should we organise Azure subscriptions?
Use subscriptions as boundaries for billing, access and limits. A common pattern is separate subscriptions for production, non-production, shared platform and identity or management, grouped under management groups so that policy applies by inheritance. Avoid one subscription for everything, which mixes cost, permissions and quotas.
What are managed identities and why use them?
Managed identities give an Azure resource an Entra ID identity, so it can obtain tokens to access Key Vault, storage or databases without any stored secret. They remove a whole class of leaked credentials and rotation work. We use them for compute and for federated credentials from CI pipelines wherever the target supports it.
How do we control Azure costs?
Put each environment in its own subscription, enforce tags with Azure Policy, and set budgets with alerts. Review recommendations for idle or oversized resources, switch off non-production out of hours, and only then consider reservations or savings plans. We do not promise a savings figure without seeing your actual usage.
Can you work in our existing Azure tenant?
Yes. We begin with read-only roles, document the current state and agree changes before making them. Changes then go through code and pull requests, and existing portal-created resources are imported into Terraform with plans that must show no unexpected differences.

Talk to an engineer about Microsoft Azure

Book a free 30-minute call. We review your current setup and tell you honestly whether and how we can help.

Written by Saddique Khan, DevOps / SRE / Cloud Consultant Engineer. Last updated 2026-10-09.