egmsft / ArtistAnywhere

Azure Artist Anywhere (AAA) is a modular and configurable Infrastructure as Code (IaC) solution deployment framework for Azure HPC Rendering & Visualization.

Home Page:https://aka.ms/aaa

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Azure Artist Anywhere (AAA) Deployment Framework

Azure Artist Anywhere (AAA) is a modular & configurable Infrastructure as Code (IaC) solution deployment framework
for Azure HPC Rendering & Visualization. Ignite your remote artist creativity and productivity with Azure global scale
and distributed computing fleet innovation across Azure HPC Virtual Machines and Azure GPU Virtual Machines.

The following design principles are implemented throughout each AAA solution deployment framework module.

Module Name Module Description Required for
Burst Render?
(Compute Only)
Required for
Full Solution?
(Compute & Storage)
0 Global Foundation Defines global config (Azure region) and foundation services (Terraform state storage, Managed Identity). 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 images via image.id No, use your custom images via image.id
3 File Storage Deploys native (Blob [NFS], Files, NetApp Files, Qumulo) or hosted (Weka, Hammerspace) storage. No Yes
4 File Cache Deploys HPC Cache or Avere vFXT cache clusters for highly-scalable storage file caching near compute. Yes No
5 Render Manager Deploys Virtual Machines for render job scheduling and management. No No
6 Render Farm Deploys Virtual Machine Scale Sets
for scalable render farm compute.
Yes, Azure OpenAI (DALL-E 3) is optional Yes, Azure OpenAI (DALL-E 3) is optional
7 Artist Workstation Deploys Virtual Machines for remote artist workstations with HP Anyware. No No

Local Installation Process

The following installation process is required for local deployment orchestration.

  1. Make sure the Azure CLI is installed locally and accessible in your PATH environment variable.
  2. Make sure the Terraform CLI is installed locally and accessible in your PATH environment variable.
  3. Run az login locally to authenticate into your Azure account. This is how Terraform connects to Azure.
  4. Run az account show to ensure your current Azure subscription context is set as expected.
    To change your current Azure subscription context, run az account set --subscription <subscriptionId>
  5. Clone this GitHub repo to your local workstation for module configuration and deployment orchestration.

Module Configuration & Deployment

For each module, here is the recommended configuration and deployment process. IMPORTANT: Key Vault is a core security service integrated throughout the Azure Artist Anywhere solution deployment framework. Therefore, the current user deploying the solution must have the Key Vault Administrator role assigned via Role-Based Access Control (RBAC).

  1. Review and edit the config values in config.\*.auto.tfvars as needed for your target deployment.
    • For module 0 Global Foundation, review and edit the following config files.
      • module/backend.config
      • module/variables.tf
    • For modules 2 Image Builder, 5 Render Manager, 6 Render Farm and 7 Artist Workstation,
      • Make sure you have sufficient compute cores quota available on your Azure subscription for each configured virtual machine size.
      • By default, Spot is enabled in module 6 Render Farm configuration. Therefore, Spot cores quota should be approved for your Azure subscription and target region(s).
    • For modules 5 Render Manager, 6 Render Farm and 7 Artist Workstation, make sure each image.id config references the correct custom image in your Azure subscription.
  2. For module 0 Global Foundation, run terraform init to initialize the module local directory (append -upgrade if older providers are detected).
  3. For all modules except 0 Global Foundation, run terraform init -backend-config ../0.Global.Foundation/config/backend.config to initialize the module local directory (append -upgrade if older providers are detected).
  4. Run terraform apply to generate the Terraform deployment Plan (append -destroy to delete Azure resources).
  5. Review the Terraform deployment Plan before confirming to add, change and/or destroy Azure resources.
    • For module 2 Image Builder to build virtual machine images, use the Azure portal or Image Builder CLI to start image build runs as needed.

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) v4 render engine.

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

deadlinecommand -SubmitCommandLineJob -name moana-island -executable pbrt -arguments "--outfile /mnt/content/pbrt/moana/island-v4.png /mnt/content/pbrt/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 and/or Windows artist workstation.

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

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

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

deadlinecommand -SubmitCommandLineJob -name blender-splash -executable blender -arguments "--background /mnt/content/blender/3.4/splash.blend --render-output /mnt/content/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 and/or Windows artist workstation.

deadlinecommand -SubmitCommandLineJob -name blender-splash -executable blender.exe -arguments "--background X:\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 opencode@microsoft.com 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 configurable Infrastructure as Code (IaC) solution deployment framework for Azure HPC Rendering & Visualization.

https://aka.ms/aaa

License:MIT License


Languages

Language:HCL 79.5%Language:PowerShell 11.3%Language:Shell 6.4%Language:C# 2.8%