Concept

Workflow Diagram

Graphic 1

Reference VM

The Reference VM is a Virtual Machine that will always exist nor be destroyed by ImageStorm. This VM will be the machine that is configured, either manually or via automation. For simplicity, this should be an inexpensive VM that is not part of an operational cluster. However, it should be fully functional. The configuration of this machine is periodically tested, typically after patches or updates. Configuring this machine is a manual process (especially if COTS packages are involved), as automating this process is often frustrating and time-consuming. In some cases, automating COTS deployments is impossible.

OPS Responsibility

The Operations team typically has the responsibility to keep Virtual Machines up to date. Typically, this involves applying and validating OS Updates and COTS package updates. The Operations team also has the responsibility to update the Scale-Set when appropriate - typically, when a new Image has been added to the Shared Image Gallery.

Create Version Image

This process is performed by the Azure Function App Service. This can be performed manually or according to a Quartz CRON schedule.

Shared Image Gallery

The Shared Image Gallery is a repository for the Images created. Images based on different Reference VM's can are put in different Image Definitions. When a Scale-Set is created an ImageReferenceId is required. By replacing the Image's Resource ID with latest :

/subscriptions/abc...123/resourceGroups/ImageStorm/providers/Microsoft.Compute/galleries/ImageStormGallery/images/vmsstest1-imagedef/versions/1.01

/subscriptions/abc...123/resourceGroups/ImageStorm/providers/Microsoft.Compute/galleries/ImageStormGallery/images/vmsstest1-imagedef/versions/ latest

The Scale-Set will use the latest Image when creating new VM's or when the Scale-Set is re-initialized or updated.

For details see:

https://docs.microsoft.com/en-us/azure/virtual-machines/windows/shared-image-galleries

https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/shared-images-powershell