Edit

Move from Experiments (classic) to Chaos Studio Workspaces

Experiments (classic) is being replaced by Chaos Studio Workspaces, the current resource model for Azure Chaos Studio. It's still Chaos Studio, with the same Microsoft.Chaos resource provider and a new way to define and run tests. Use this guide to check which model you use, map your experiments to Scenarios, test them in a Workspace, and remove classic resources you no longer need.

Important

Chaos Studio Workspaces and Scenarios are in public preview. Microsoft provides this preview "as is" and "as available," and it isn't covered by service-level agreements or limited warranty. Microsoft provides customer support for the preview on a best-effort basis. This preview isn't meant for production use. For more information, see the following articles:

Identify which resource model you use

Both models use the Microsoft.Chaos resource provider, but each has different resource types. Check the resource type to identify the model when you review a resource or run, or submit a support request.

Detail Chaos Studio Workspaces Experiments (classic)
Resource types Microsoft.Chaos/workspaces, Microsoft.Chaos/workspaces/scenarios Microsoft.Chaos/experiments, Microsoft.Chaos/targets
Azure portal Chaos Studio > Workspaces Chaos Studio > Experiments and Targets
Azure CLI az chaos extension az rest calls to the REST API
Unit of testing Scenario, run from a Workspace Experiment

To find classic resources in your subscriptions, sign in to the Azure CLI and install the Resource Graph extension, and then run the following queries. Experiments are in the resources table, and targets are in the chaosresources table.

az graph query -q "resources | where type =~ 'microsoft.chaos/experiments' | project name, resourceGroup, subscriptionId"
az graph query -q "chaosresources | where type =~ 'microsoft.chaos/targets' | summarize count() by subscriptionId, resourceGroup"

Resource Graph returns only resources you have permission to read. If both queries return no results and you can read the relevant subscriptions, you don't have classic resources to move. For new tests, start with the Workspaces quickstart.

Map classic concepts to Workspaces

A Workspace handles most of the setup steps you do manually in Experiments (classic). Use this table to see how familiar concepts translate to Workspaces.

Experiments (classic) Chaos Studio Workspaces
Enable a target and capabilities on each resource. Set the Workspace scope to a subscription, resource group, or service group. The Workspace discovers supported resources automatically.
Build an experiment from faults, steps, and branches. Start from a Scenario template, or customize one in the Scenario designer. Use runAfter dependencies to sequence Actions.
Select target resources for each fault. The Scenario applies to the discovered resources in scope. Use resource exclusions to protect specific resources.
Assign a managed identity and roles to each experiment. Assign roles once to the Workspace identity. All Scenarios in the Workspace share this identity. The Workspace checks permissions before a run starts.
Deploy the experiment in a supported region, with targets in a targeting region. Deploy the Workspace in a supported Workspace region. It can act on resources in any Azure region.
Install the Chaos Studio agent on each VM for agent-based faults. Agent-based Scenarios install and remove the agent automatically during a run.
Review experiment execution details. Generate a Scenario report for each run.

Find the Scenario for each experiment

Use this table to find a starting point for common classic tests, not a one-to-one replacement. Compare the template's Actions, target resource types, parameters, and recovery behavior with your experiment. Some templates combine several disruptions. Customize the template in the Scenario designer, and exclude resources you don't intend to affect.

Classic test Workspaces Scenario
Simulate a DNS outage with NSG rules (classic) DNS Outage
Simulate a Microsoft Entra ID outage (classic) Microsoft Entra ID Outage
Simulate zone down on VM scale sets (classic) Compute Zone Down shuts down zonal compute resources, but doesn't include the classic template's Disable Autoscale Action.
VM or virtual machine scale set shutdown in an availability zone Compute Zone Down uses a zone filter; it isn't a replacement for every VM shutdown test.
Azure Cache for Redis primary-node reboot Zone Down reboots the primary node and also shuts down zonal scale set instances. The cache resilience Scenarios flush Azure Managed Redis instead; they don't reproduce an Azure Cache for Redis reboot.
Disable Service Bus queues or Event Hubs entities Event-Driven Messaging Disruption disables these entities and re-enables them after the run. For Service Bus topic or subscription state changes, build a custom Scenario with the Service Bus change topic state or change subscription state Action.
Azure Cosmos DB failover Build a custom Scenario with the Azure Cosmos DB offline region Action. It takes a region offline for a set duration and then brings it back online, rather than promoting a specific read region.
Virtual machine redeploy or restart VM Maintenance Reboot restarts the target virtual machines and then redeploys them to a different host.
Key Vault deny access Key Vault Public Endpoint Outage blocks Key Vault public endpoints with an NSG rule. It isn't a one-to-one replacement: it doesn't change Key Vault access policies, and it doesn't affect private endpoints or traffic that doesn't pass through a selected NSG.
Agent-based CPU pressure or physical memory pressure on a standalone VM CPU Pressure or Physical Memory Pressure
Zone resilience of AKS node pools Test AKS resilience with Chaos Studio Workspaces

Check for capabilities that aren't in Workspaces yet

Some classic capabilities aren't available in the Workspaces preview. If an experiment needs one of them, keep it in Experiments (classic) for now. Also keep tests in classic if you require a generally available resource model. Evaluate your other tests in Workspaces in a preproduction environment.

Required capability or configuration Status in Workspaces
Faults outside the supported Scenario catalog The full classic fault library isn't available. Check the Scenario templates and their Actions and the Actions available for custom Scenarios before moving a test.
AKS Chaos Mesh faults and other in-cluster pod faults Pod delete, pod CPU hog, pod memory hog, pod network latency, and pod network loss are in a limited preview through the Chaos Studio extension for AKS. For other faults, use AKS Chaos Mesh faults with Experiments (classic).
Agent-based faults other than CPU and physical memory pressure, and agent faults on virtual machine scale sets, Arm-based VM sizes, or VMs without public outbound connectivity Not available. Review Workspaces agent-based Scenario requirements. If you keep an agent-based test in classic, check the classic agent OS support and private networking requirements.
Dynamic targeting Not available. Use dynamic targeting with Experiments (classic).
Scheduled runs Not available. Use scheduled experiments with Experiments (classic).
Customer-managed keys Not available. Use customer-managed keys with Experiments (classic).
PowerShell, Python SDK, and JavaScript SDK Not available. Use the Azure portal, az chaos CLI, Bicep, ARM templates, the REST API, or the .NET SDK.

Service-direct Scenarios work with privately networked target resources; the public outbound connectivity requirement applies to agent-based Scenarios. Also check each Scenario's requirements, such as Windows-only support for Cache Stampede with Process Crash. For the current list of limitations, see Chaos Studio Workspaces limitations. To request a capability, open an issue on GitHub.

Run the equivalent Scenario in a Workspace

Run each replacement Scenario in a preproduction environment before you remove the classic experiment.

  1. Create a Workspace scoped to the subscription, resource group, or service group that contains the resources your experiment targets. Follow the Workspaces quickstart in the portal, or bootstrap a Workspace with the Azure CLI.
  2. Grant the Workspace identity the roles that the Scenario requires. See Permissions and identity in Chaos Studio Workspaces for the list of roles.
  3. Check that the Workspace discovers the resources your experiment targets. If any are missing, see Troubleshoot Chaos Studio Workspaces and Scenarios.
  4. Configure the Scenario with the Actions and supported parameters needed to reproduce your test, including zone and duration where applicable. Exclude any resources that your experiment didn't target.
  5. Run the Scenario, and then generate its Scenario report. Compare its Actions, affected resources, and recovery behavior with your experiment's execution details to confirm that it reproduces the intended test.
  6. Update any automation that starts the classic experiment to start the Scenario from its configuration with the az chaos CLI. To deploy the Scenario definition, use a Microsoft.Chaos/workspaces/scenarios template. For Terraform, use the AzAPI provider with Workspaces and Scenarios. Deploying these resources doesn't start a run.

Clean up classic resources

After the Scenario replaces your experiment, remove the classic resources to prevent further runs and remove permissions you no longer need.

  1. Delete the experiment. In the Azure portal, go to Chaos Studio > Experiments, select the experiment, and select Delete. To use the REST API, see Delete an experiment.
  2. Remove role assignments that are no longer needed from the experiment's managed identity on the target resources. If it uses a user-assigned identity, first check whether other experiments, Workspaces, or resources still use that identity and its permissions.
  3. Disable any targets that no other classic experiment uses. In the Azure portal, go to Chaos Studio > Targets, select the resources, and select Disable targets.
  4. If you installed the Chaos Studio agent for agent-based experiments and no remaining classic experiment needs it on the VM or scale set, uninstall the agent. Workspaces Scenarios install and remove the agent automatically.

Next steps