Earlier this month I wrote a post about my key takeaways from 2023, related to core foundational elements that need consideration when planning and deploying an Azure Environment. In this post, I wanted to focus on 5 key items I’ve found helpful when designing, enhancing, and supporting Azure environments – with a specific focus on key foundational areas, aligned to relevant frameworks and resources.
As a reminder, the items below are 5 resources that I find useful – they are not exhaustive!
Naming and Tagging
Getting naming and tagging right is not just essential for a Cloud Environment, but essential to ensure any technical environment can be operated and maintained in an optimal manner. Being able to identify resources effectively using Naming and Tagging is key to also being able to manage their health, lifecycle and security. Naming and Tagging also goes way beyond appearances, and helps group resources, enable more effectively control (for example, automation via Tagging), and many more items that lead to an optimal cloud environment.
The great news here is that Microsoft has extensive guidance on developing a naming and tagging strategy – and also provides guidance on this – with examples. See the URLs below from the Cloud Adoption Framework:
Azure Naming Tool
A great tool that can help here is the Azure Naming Tool – https://github.com/mspnp/AzureNamingTool
This provides a way to develop a naming convention that also includes aspects like different Organisations, Units/Departments, Projects/Apps/Services, Functions and more – so really allows you to develop a comprehensive naming convention that provides a framework-aligned approach. Using the Azure Naming Tool is very simple, and a range of deployment options are provided – check out the Wiki for more information and guidance: https://github.com/mspnp/AzureNamingTool/wiki.
Reliability
Well-Architected Framework
Reliability is a key pillar of the Well-Architected Framework, which is primarily concerned with the Resiliency, Availability, and Recovery of Workloads within Azure. You can read more about the Pillars here: https://learn.microsoft.com/en-us/azure/well-architected/pillars
Designing for Reliability in Azure requires a range of considerations – beyond just technical aspects too. In many cases, it’s important to start with a detailed understanding of an application or workload function within a business, and it’s success metrics, before engaging from a technical standpoint. Fortunately, there’s a range of checklists available within the Well Architected Framework that can help here:
It’s also important to take a pragmatic approach to Reliability. In reality, we could make every single Business Application and Service completely resilient, replicated, and available should there be an outage – but the likelihood of this scenario is that the costs would outweigh the benefits. With this in mind – consider looking at the Reliability tradeoffs section to understand where and how compromises can be made: https://learn.microsoft.com/en-us/azure/well-architected/reliability/tradeoffs
Finally, it is also a hugely valuable exercise to run through the Azure Well-Architected Review, which allows you to review a specific workload, in around 60 minutes: https://learn.microsoft.com/en-us/assessments/azure-architecture-review/.
Azure Proactive Resiliency Library (APRL)
I would also recommend visiting the Azure Proactive Resiliency Library: https://azure.github.io/Azure-Proactive-Resiliency-Library/
“This library is built with the intention of being a staging area for guidance and recommendations that can be used by customers, partners and the field in Well-Architected Framework reliability engagements/assessments; with the intent of the guidance and recommendations being promoted, once tested and validated with customers and partners, into the official Well-Architected Framework documentation.” (APRL, from GitHub Page: https://azure.github.io/Azure-Proactive-Resiliency-Library)
Within APRL we can look at specific services that we need to understand more about from a Resiliency perspective (using WAF Guidelines), and then explore these in more detail. For example, in the below screenshot, you can see the Recommendation of using Managed Disks for Virtual Machines, along with a Resource Graph query to find all VMs not using Managed Disks:
It is worth calling out that the APRL is great for also looking into specific vendor solutions – and can help architect for availability, for example consider a deployment like Citrix DaaS, applying the guidance from Citrix and the APRL in combination will help strengthen availability across all areas. As always – refer to vendor documentation primarily, and use supporting tooling where applicable.
Frameworks and Accelerators
Frameworks
Another important focus area for any Azure Environment is the various Frameworks that exist to help. Perhaps the most important, and probably most well known – is the Microsoft Cloud Adoption Framework (CAF) – https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/. For most organisations, this is the starting point for adopting Cloud, and defines a range of activities and steps that are recommended as part of your Cloud journey.
However, whilst the Cloud Adoption Framework is often consulted before a Cloud journey, it’s an important reference point throughout the lifecycle of a Cloud environment – helping define key ongoing areas like Governance, Innovation, and Migration for example. Many of these areas change throughout the lifecycle of an environment, so require continual adjustment and evaluation for optimal running. There’s a great section of the CAF related to Maturity Vectors, and understanding how these can improve various baselines throughout your environment: https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/govern/foundation-improvements#maturity-vectors.
There’s also huge range of tools and templates that can help with many of the Cloud Adoption Framework areas: https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/resources/tools-templates.
I’d recommend spending time running through the various areas of the Framework, even if you are already established in Azure – it’s a Framework that is regularly updated, and contains a wealth of knowledge, information, and tools to help on your cloud journey.
Accelerators
As well as comprehensive documentation within the Cloud Adoption Framework, there is also a range of accelerators that can be used to accelerate and enhance your deployment into Azure. These are often provided from the Azure GitHub repo, and usually focus around a particular service in Azure – for example AVD or AKS. These are a great place to start if you are deploying a specific service, and provide guidance and deployable samples.
You can check them out here, in the Azure GitHub account: https://github.com/orgs/Azure/repositories?q=accelerator
Assess and Optimise
As well as many other opportunities to continually enhance Cloud Environments, there are a range of assessment tools that can help to provide defined action items for Azure Environments. These tools often provide a clear “this should be set to XYZ” or “consider adding XYZ” style of approach – giving clear actions that can be carried out to improve the posture of an environment.
Check out the Azure Review Checklists GitHub repo here: https://github.com/Azure/review-checklists
The Azure Review Checklists is a great example of these types of assessment – providing an easy to use assessment tool, that runs in Excel, with which you can assess an environment, and provide a dashboard overview of the findings. All of the assessment items provide a link to additional information, which can help explain a particular area or assessment item. At the time of writing there are a number of areas covered, with additional areas in preview:
I’ve used the Azure Review Checklists in many environments, and found it to be an extremely valuable way to provide rapid assessment and remedial guidance for a range of environments.
Also worth checking out, is the Azure Quick Review tool, which is a command-line interface tool designed to analyse Azure resources and identify if they comply with Microsoft recommendations and best practices. The tool is very simple to use, and provides an Excel-based output providing an Overview, Recommendations, Services, Defender, Advisor and Costs. You can read more, including installation and usage instructions, here: https://azure.github.io/azqr/
Community
Another area that’s hugely valuable, is that of the Microsoft Azure Community Ecosystem. As an Azure MVP, I’m involved in a variety of different areas and events – and these are a great way to network, share knowledge, and discuss common challenges, success stories, and more. Throughout the last few years I’ve had the pleasure of blogging, speaking, hosting and more. As a final section for this post, I wanted to call out some of the awesome community resources and events out there to help! Again – these are not exhaustive, I’m just calling out some that I’ve interacted with over the last few months, as I feel others would benefit from their great work:
User Groups / Meetups / Events
-
Welsh Azure User Group – https://www.meetup.com/MSFT-Stack/
-
EUC Forum – https://www.eucforum.tech/
-
Azure Lean Coffee – https://daniel.mcloughlin.cloud/azure-lean-coffee
-
Azure Community Enthusiasts – https://www.meetup.com/azure-community-enthusiasts/
-
Experts Live – https://expertslive.org/
-
Azure Back to School – https://azurebacktoschool.github.io/
-
Festive Tech Calendar – https://festivetechcalendar.com/
Resources / Blogs / Articles
-
Awesome Azure Architecture – https://github.com/lukemurraynz/awesome-azure-architecture
-
cmd.ms – https://cmd.ms/
-
Azure Citadel – https://www.azurecitadel.com/
-
luke.geek.nz – https://luke.geek.nz/
-
Thomas Maurer – https://www.thomasmaurer.ch/
-
Daniel McLoughlin – https://daniel.mcloughlin.cloud/
-
Also check out, the Cloud Pirate, a Project that Daniel runs which aggregates community content: https://www.linkedin.com/company/the-cloud-pirate/
-
-
Thomas Thornton – https://thomasthornton.cloud/
-
Dan Rios – https://rios.engineer/
I hope this post and the associated links and resources are helpful – until next time!