Take the free IT Readiness Test and see where you stand, 10 quick questions.
Azure is powerful but unforgiving. You can spin up resources in seconds and forget about them for months. That's not just inefficient; it's expensive. When you're new to cloud, those forgotten resources and misconfigured permissions become expensive mistakes very quickly.
The fundamental problem is this: Azure doesn't stop you from doing things wrong. It stops you only when you violate permissions or hard limits. Everything else? You can misconfigure storage accounts, leave virtual machines running 24/7, set incorrect backup policies, or grant overly broad permissions. Azure will happily charge you for all of it.
This article covers seven mistakes beginners consistently make, why they hurt, and how to avoid them before they become part of your production bill.
Why beginners do this: It's tempting to dump everything into one resource group or use random naming conventions. When you're learning, names like "Test-VM-1" or "VM-for-testing-backup" feel fine.
Why it matters: Once you have dozens of resources across multiple projects, subscriptions, or cost centres, you cannot tell which resource belongs to what. You cannot track costs by department, project, or environment. You cannot automate cleanup scripts because you cannot identify which resources matter.
The real impact: You inherit a subscription with 200 resources and have no idea which ones support production workloads. You cannot safely delete anything. You end up paying for resources that should have been decommissioned months ago.
How to avoid it: Before you create a single resource, define a tagging strategy. At minimum, use these tags: Environment (dev, test, prod), CostCentre, Owner, and ExpiryDate. Apply tags consistently using Azure Policy. Use resource groups to match your organisation's structure: one per application, per team, or per project. Enforce naming conventions (e.g., `[env]-[app]-[resource-type]-[region]`) using Azure Policy so new team members follow them without thinking.
Why beginners do this: You create a test VM to try something, finish testing, and forget about it. It's still running. In a week it costs less than a coffee. In three months it costs more than your course fees.
Why it matters: Compute is the largest cost lever in Azure. A D2s_v3 VM running continuously costs around £50 per month. That sounds small until you have five "test" VMs you forgot about, which is now £250 per month or £3,000 per year.
The real impact: Your Azure bill grows faster than your projects. You cannot explain the cost to your manager. You begin to distrust cloud pricing without realising the waste is your own.
How to avoid it: Set a rule now: every non-production VM must have an auto-shutdown policy. In Azure, this takes 90 seconds to configure. Set it to 19:00 or 20:00 daily so test resources shut themselves down. For production workloads, use Azure Cost Management to set spending alerts. If a resource is truly temporary, tag it with an ExpiryDate and use a runbook to delete it automatically. Consider using Azure Dev/Test subscriptions if you are doing heavy testing; the pricing is significantly lower.
Why beginners do this: You create a storage account, enable public access, and assume you will remember to restrict it later. You don't. Someone finds your container URL on a code repository, accesses it, and you have a data exposure incident.
Why it matters: Public storage accounts are one of the most common vectors for data breaches in Azure. If your storage account contains customer data, configuration databases, or backups, public access is a serious compliance violation. It violates data protection regulation and will cost you time and reputation to remediate.
The real impact: You spend a week investigating who accessed what and when. You notify your data protection officer. You file a breach notification. You regain trust slowly.
How to avoid it: Make this a habit: the moment you create a storage account, set its public access level to "Private". Use Azure Entra ID (the new name for Azure Active Directory) and shared access signatures (SAS) tokens with explicit time limits for any access outside your organisation. Never share a storage account key in email or version control. Use managed identities for applications so they authenticate securely without keys. Test this now: create a test storage account with default public settings, then try to access it from an incognito browser. Once you see how exposed it is, you will never leave one public again.
Why beginners do this: Your application needs to connect to a database or read from a storage account. Instead of using managed identity, you hardcode a connection string or store credentials in a config file.
Why it matters: Credentials stored in code or config files get committed to version control. They leak to GitHub. They end up in logs. Someone finds them and uses them to access your resources. You have no audit trail of who accessed what because the credential is not tied to an Azure principal.
The real impact: A compromised credential that was supposed to be deleted last quarter is still granting access to your database.
How to avoid it: For any application running on Azure (App Service, Virtual Machine, Container Instance, Kubernetes), use managed identity instead. Managed identity means Azure itself provides the credential; your code never touches a key. Your application authenticates transparently. Azure logs every access. If you need to revoke access, you change a role assignment, not a secret everywhere it is stored. This takes no longer to implement and is more secure.
Why beginners do this: Your organisation hands you three Azure subscriptions. You think they are for Dev, Test, and Prod, but nobody enforced it. Everyone creates resources wherever they want.
Why it matters: Without clear subscription boundaries, you lose cost tracking, access control, and auditability. You cannot tell which subscription supports which workload. You cannot separate dev costs from production costs. You cannot isolate a security breach to a single subscription.
The real impact: You spend weeks untangling which team should be charged for which resources. You have a compliance audit and cannot prove who had access to what.
How to avoid it: Define subscription strategy before resources exist. Typically: one subscription per environment (Dev, Test, Prod) or one per business unit or cost centre. Apply Azure Policy at the management group level to enforce consistent configuration across all subscriptions. Use Azure Cost Management to track spending by subscription. Assign Owner and Contributor roles at subscription level only, never at resource level unless there is a specific reason.
Why beginners do this: Azure Advisor sends you emails with recommendations. You assume they are optional suggestions, not actual problems.
Why it matters: Azure Advisor flags cost optimisation (you have unused disks), performance (your VM is under-utilised), reliability (your backup policy is incomplete), and security (you have overly broad permissions) issues. These are not nice-to-haves; they are concrete problems with quantified impact.
The real impact: You miss easy wins to reduce cost by 20-30 per cent. You miss security vulnerabilities before an audit exposes them.
How to avoid it: Check Azure Advisor weekly for your first three months working with Azure. Most recommendations take under 10 minutes to implement. Treat "High" severity recommendations as blocking work. Set a calendar reminder to review Advisor monthly for the first year.
Why beginners do this: You create a database and assume Azure handles backups automatically. It does, but only for 7 days. You forget to set up longer retention. Then your database gets corrupted and you have no backup older than a week.
Why it matters: Backups are not optional. You will lose data. The question is whether you have a restore point or not.
The real impact: You lose a day's transactions or months of data. You restore from a week-old backup. Customers are unhappy. You spend a weekend in the office explaining why data is missing.
How to avoid it: Before you deploy anything to production, define your Recovery Point Objective (RPO: how much data loss is acceptable?) and Recovery Time Objective (RTO: how fast do you need to recover?). Configure backups accordingly. For databases, use automated backups with retention of at least 30 days. For VMs, set up Azure Backup. For critical data, test your restore process at least once to prove it works.
The common thread through all these mistakes is this: Azure rewards planning and discipline. Beginners often think they will "sort governance later". Later becomes never, and small mistakes compound into months of cleanup work.
If you are starting Azure and want structured training that covers these real-world mistakes from day one, the Microsoft Azure Administrator Course takes you through Azure architecture, security, and cost management systematically. It is designed for people moving into cloud from healthcare and other fields, and it assumes no prior experience. The course is available as part of a waitlist for Q1 2026; you can also book a free 2-hour live course session to see how hands-on training works before committing.
Leaving virtual machines running 24/7 when they should shut down after hours or be deleted entirely. A single forgotten test VM costs £50-100 per month; five of them cost your annual training budget.
Use Azure Cost Management and Billing in the Azure portal, or ask Azure Advisor. Both show costs by resource, resource group, and subscription. Set up budget alerts so you are notified if spending exceeds a threshold you define.
Yes, but with a plan. Most organisations use separate subscriptions per environment (Dev, Test, Prod) or per business unit. Without clear boundaries, cost tracking and security become impossible to audit.
Never grant Owner or Contributor at subscription level unless they are platform engineers. Use role-based access control (RBAC) to assign specific roles like "Virtual Machine Contributor" or "Storage Account Reader" at the resource group level. This limits the damage if a credential is compromised.
Weekly for the first three months after you start, then monthly. Azure Advisor flags security, cost, and reliability issues with quantified impact. Most high-severity recommendations take under 10 minutes to fix.
SmoothOps 365 runs live instructor-led training every Saturday and Sunday. 3 months. 50 contact hours. Keep your job while you train.