I recently reached out to a bunch of developers and infrastructure pros here at ShareGate for help building our Ultimate Azure cost optimization checklist for cloud teams. The resulting brainstorm generated a ton of tips and insights, most of which were learned by experience and way too valuable not to share. Here are 26 of them, in no particular order, to add to your list of Azure best practices to follow for optimal security, scalability, cost-effectiveness, and more.
On mobile? Want to learn more about one of the items on the list? Jump to the text version (it's got links!)
26 Azure best practices + links
- 1. Prefer virtual machine scale sets over individual VMs for similar workloads; they offer several benefits on the management front.
- 2. Plan from the start for redundancy, backups, and disaster recovery.
- 3. When provisioning compute, target a higher SKU at first, then downscale, to ensure the destination cluster stamp supports that size/pricing plan.
- 4. Disposable environments are hard to achieve and often leave behind orphaned resources.
- 5. Make sure the VM size and family you need are available in your target region.
- 6. Use a messaging approach (queues, messages, web jobs/serverless) to prevent monoliths.
- 7. Use Logic App to enable a richer notification and alerting experience.
- 8. Prefer resource sharing over individual resources if isolation is not required.
- 9. Use DevTest Labs for development teams.
- 10. A good tagging convention is more important and more valuable than a strict naming convention.
- 11. Use infrastructure-as-code (IaC) instead of creating resources manually—this will also help self-document your infrastructure.
- 12. When you scale up/out compute, set a reminder or an autoscale rule to make sure it gets downscaled/scaled in.
- 13. Review App Service deployment slots. These are in fact collocated resources in your App Service Plan and could impact the performance of other environments.
- 14. Split ARM templates into smaller pieces to facilitate the development feedback loop (this helps you deploy only what is needed).
- 15. If you need to scale up multiple times to address performance issues, it might be a good idea to revisit the design. Further reading: Microsoft's Azure architecture center.
- 16. Prefer horizontal scaling over vertical scaling.
- 17. Perform backup restore drills (you’ll be happy you did).
- 18. Enable soft delete on storage accounts.
- 19. Use Just in Time mechanisms like Privileged Identity Management (PIM) and just-in-time (JIT) VM access.
- 20. Use a network security group (NSG) on subnets and/or network cards.
- 21. Pay attention to Azure Security Center recommendations.
- 22. Whenever possible, restrict traffic to essential IP addresses via firewall and whitelisting.
- 23. Enable Azure Key Vault logging to keep track of vault access.
- 24. Always use standard disks (not premium) for snapshots.
- 25. Keep an eye on egress - bandwidth costs can sneak up on you.
- 26. Don't forget that deleting a VM won't delete related resources like attached disks and public IP addresses. You need to remove those manually as well.
Optimize your Azure environment for big savings
Looking for ways to save money on Azure? The Ultimate Azure cost optimization checklist for cloud teams will help you thoroughly audit your environment for sources of wasted spend.