Azure Proactive Resiliency Library v2
Tools Glossary GitHub GitHub Issues Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

imageTemplates

Summary

RecommendationImpactCategoryAutomation AvailablePG Verified
Use Generation 2 virtual machine source imageLowHigh AvailabilityNoVerified
Replicate your Image Templates to a secondary regionLowDisaster RecoveryYesVerified

Details


Use Generation 2 virtual machine source image

Impact:  Low Category:  High Availability PG Verified:  Verified

APRL GUID:  19b6df57-f6b5-3e4f-843a-273daa087cb0

Description:

When building Image Templates, use sources for gen 2 VMs. Gen 2 offers more memory, supports >2TB disks, uses UEFI for faster boot/installation, has Intel SGX, and virtualized persistent memory (vPMEM), unlike gen 1's BIOS-based architecture.

Potential Benefits:

More memory, supports >2TB disks, faster boot
Learn More:
Generation 1 vs generation 2 virtual machines

ARG Query:

Click the Azure Resource Graph tab to view the query

// under-development



Replicate your Image Templates to a secondary region

Impact:  Low Category:  Disaster Recovery PG Verified:  Verified

APRL GUID:  21fb841b-ba70-1f4e-a460-1f72fb41aa51

Description:

The Azure Image Builder service, used for deploying Image Templates, lacks availability zones support. By replicating Image Templates to a secondary, preferably paired, region, quick recovery from a region failure is enabled, ensuring continuous virtual machine deployment from these templates.

Potential Benefits:

Enhances disaster recovery capability
Learn More:
Image Template resiliency
Azure Image Builder Supported Regions

ARG Query:

Click the Azure Resource Graph tab to view the query

// Azure Resource Graph Query
// List all Image Templates that are not replicated to another region
resources
| where type =~ "microsoft.virtualmachineimages/imagetemplates"
| mv-expand distribution=properties.distribute
| where array_length(parse_json(distribution).replicationRegions) == 1
| project recommendationId = "21fb841b-ba70-1f4e-a460-1f72fb41aa51", name, id, param1=strcat("replicationRegions:",parse_json(distribution).replicationRegions)