Skip to content

Azure Artist Anywhere (AAA) is a modular and flexible Infrastructure as Code (IaC) deployment framework for Azure High-Performance Compute (HPC) workloads (Render, Electronic Design Automation).

License

Notifications You must be signed in to change notification settings

Azure/ArtistAnywhere

Repository files navigation

Azure Artist Anywhere (AAA) Deployment Framework

Azure Artist Anywhere (AAA) is a modular & flexible Infrastructure as Code (IaC) solution deployment framework for
Azure High-Performance Computing (HPC) workloads. Enable remote user productivity with global Azure scale via AI-
enabled Compute Fleet deployments with up to 10,000 Spot VMs / Standard VMs and up to 15 VM sizes per request.

The following solution design principles and features are implemented throughout the AAA deployment framework.

Module Name Module Description Required for
Burst Compute?
Required for
Full Solution?
(Compute & Storage)
0 Global Foundation Defines global config (Azure Region) and core services (Terraform Storage, Managed Identity, Key Vault, etc) Yes Yes
1 Virtual Network Deploys Virtual Network with VPN
or ExpressRoute gateway services
Yes, if Virtual Network is not yet deployed Yes, if Virtual Network is not yet deployed
2 Image Builder Deploys Image Builder and Compute Gallery with image customize scripts No, use your custom image config here No, use your custom image config here
3 File Storage Deploys Blob NFS, Files, NetApp Files, Hammerspace or Lustre storage No, use your current NAS via 4 File Cache Yes
4 File Cache Deploys Hammerspace, HPC Cache or Avere vFXT for scalable caching Yes No
5 Job Scheduler Deploys scheduler Virtual Machines or CycleCloud Workspace for Slurm No No
6 Compute Farm Deploys Compute Fleet or VM Scale Sets for scalable compute farms Yes Yes
7 Artist Workstation Deploys Virtual Machines for remote user workstations with HP Anyware No No

Local Installation Process

The following local installation process is required for deployment orchestration.

  1. Make sure the Azure CLI is installed locally and accessible in your PATH environment variable.
  2. Install Application Insights extension via az extension add --name application-insights.
  3. Make sure the Terraform CLI is installed locally and accessible in your PATH environment variable.
  4. Clone this GitHub repository to your local workstation for module configuration and deployment.

Module Configuration & Deployment

The following table highlights key AAA module configuration settings and required Terraform deployment commands (terraform init and terraform apply). In each module, review and edit the config.auto.tfvars file for your target Azure deployment as needed.

Module Name Module Configuration
0 Global Foundation 1. Ensure the current user has the required Key Vault Administrator role assignment
2. Review and edit the following config files. For example, your Azure subscription id must be set in the /config/global.tf file.
    * /config/backend - defines Terraform backend state Azure Blob storage account
    * /config/global.tf - defines global settings (subscription id, default region, etc)
    * /config/file.system.tf - defines the file system for compute farm node mounts
3. Run terraform init in your local directory command shell (append -upgrade as needed if older Terraform providers are detected in your local directory).
4. Run terraform apply in your local directory command shell to generate the Terraform deployment Plan (append -destroy to generate an Azure resource delete plan).
5. Review the displayed Terraform deployment Plan before confirming deployment.
1 Virtual Network 1. Run terraform init -backend-config ../0.Global.Foundation/config/backend in your local directory command shell (append -upgrade as needed).
2. Run terraform apply in your local directory command shell to generate the Terraform deployment Plan (append -destroy to generate an Azure resource delete plan).
3. Review the displayed Terraform deployment Plan before confirming deployment.
2 Image Builder 1. Ensure you have sufficient Standard compute cores quota approved on your Azure subscription for each configured VM type / size in your target region.
2. For Linux images, the following Azure Marketplace Rocky Linux image terms must be accepted on each of your Azure subscriptions as a 1-time setup prerequisite.
  az vm image terms accept --publisher RESF --offer RockyLinux-x86_64 --plan 9-Base
3. Run terraform init -backend-config ../0.Global.Foundation/config/backend in your local directory command shell (append -upgrade as needed).
4. Run terraform apply in your local directory command shell to generate the Terraform deployment Plan (append -destroy to generate an Azure resource delete plan).
5. Review the displayed Terraform deployment Plan before confirming deployment.
6. Use the Azure portal or Image Builder CLI to start Image Template build runs.
3 File Storage 1. Run terraform init -backend-config ../0.Global.Foundation/config/backend in your local directory command shell (append -upgrade as needed).
2. Run terraform apply in your local directory command shell to generate the Terraform deployment Plan (append -destroy to generate an Azure resource delete plan).
3. Review the displayed Terraform deployment Plan before confirming deployment.
4 File Cache 1. Run terraform init -backend-config ../0.Global.Foundation/config/backend in your local directory command shell (append -upgrade as needed).
2. Run terraform apply in your local directory command shell to generate the Terraform deployment Plan (append -destroy to generate an Azure resource delete plan).
3. Review the displayed Terraform deployment Plan before confirming deployment.
5 Job Scheduler 1. Ensure you have sufficient Standard compute cores quota approved on your Azure subscription for each configured VM type / size in your target region.
2. Ensure each image reference in config.auto.tfvars points to your Compute Gallery.
3. Run terraform init -backend-config ../0.Global.Foundation/config/backend in your local directory command shell (append -upgrade as needed).
4. Run terraform apply in your local directory command shell to generate the Terraform deployment Plan (append -destroy to generate an Azure resource delete plan).
5. Review the displayed Terraform deployment Plan before confirming deployment.
6 Compute Farm 1. Ensure you have sufficient Standard and/or Spot compute cores quota approved on your Azure subscription for each configured VM type / size in your target region.
2. Ensure each image reference in config.auto.tfvars points to your Compute Gallery.
3. Run terraform init -backend-config ../0.Global.Foundation/config/backend in your local directory command shell (append -upgrade as needed).
4. Run terraform apply in your local directory command shell to generate the Terraform deployment Plan (append -destroy to generate an Azure resource delete plan).
5. Review the displayed Terraform deployment Plan before confirming deployment.
7 Artist Workstation 1. Ensure you have sufficient Standard compute cores quota approved on your Azure subscription for each configured VM type / size in your target region.
2. Ensure each image reference in config.auto.tfvars points to your Compute Gallery.
3. Run terraform init -backend-config ../0.Global.Foundation/config/backend in your local directory command shell (append -upgrade as needed).
4. Run terraform apply in your local directory command shell to generate the Terraform deployment Plan (append -destroy to generate an Azure resource delete plan).
5. Review the displayed Terraform deployment Plan before confirming deployment.

Render Job Samples

The following sample images were rendered on Azure via multiple render farm, engine and job submission options.

The following Disney Moana Island scene was rendered on Azure via the Physically-Based Ray Tracer (PBRT) renderer.

moana-island

To render the Disney Moana Island scene on an Azure Linux render farm, the following job submission command can be submitted from a Linux or Windows user workstation.

deadlinecommand -SubmitCommandLineJob -name moana-island -executable pbrt -arguments "--outfile /mnt/storage/moana-island.png /mnt/cache/moana/island/pbrt-v4/island.pbrt"

To render the Disney Moana Island scene on an Azure Windows render farm, the following job submission command can be submitted from a Linux or Windows user workstation.

deadlinecommand -SubmitCommandLineJob -name moana-island -executable pbrt.exe -arguments "--outfile X:\moana-island.png Y:\moana\island\pbrt-v4\island.pbrt"

The following Blender 3.4 Splash screen was rendered on Azure via the Blender renderer.

blender-splash

To render the Blender Splash screen on an Azure Linux render farm, the following job submission command can be submitted from a Linux or Windows user workstation.

deadlinecommand -SubmitCommandLineJob -name blender-splash -executable blender -arguments "--background /mnt/cache/blender/3.4/splash.blend --render-output /mnt/storage/blender/3.4/splash --enable-autoexec --render-frame 1"

To render the Blender Splash screen on an Azure Windows render farm, the following job submission command can be submitted from a Linux or Windows user workstation.

deadlinecommand -SubmitCommandLineJob -name blender-splash -executable blender.exe -arguments "--background Y:\blender\3.4\splash.blend --render-output X:\blender\3.4\splash --enable-autoexec --render-frame 1"

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

About

Azure Artist Anywhere (AAA) is a modular and flexible Infrastructure as Code (IaC) deployment framework for Azure High-Performance Compute (HPC) workloads (Render, Electronic Design Automation).

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •