Skip to main content
Parallel Mode
This feature is currently in Beta. Update to the latest Hoop version to access it.

What You’ll Accomplish

Parallel Mode lets you run the same command across multiple resource roles at once. Instead of connecting to each server individually, you can:
  • Restart services across multiple servers simultaneously
  • Run the same query on multiple databases
  • Execute maintenance scripts on all production hosts
  • Check status across your entire infrastructure

How It Works

1

Select Resources Roles

Choose multiple resources roles to run your command on
2

Enter Command

Type the command or query once
3

Execute

Hoop runs the command on all selected resources roles in parallel
4

View Results

See results from all resource roles in a unified view

Quick Start

Step 1: Open Parallel Mode

  1. Go to the Web Terminal in the Hoop Web App
  2. Click the Parallel Mode toggle in the top-right corner

Step 2: Select Resources

  1. Use the resources roles picker to select multiple resources
  2. Filter by type, tags, or name to find resource roles quickly
  3. Click resources roles to add them to your selection

Step 3: Run a Command

  1. Type your command in the input field
  2. Click Execute or press Enter
  3. Watch results stream in from all resources

Step 4: Review Results

The Execution Summary shows:
  • Success - Command completed successfully
  • Error - Command failed (click to see details)
  • Approval Required - Waiting for access request approval

Use Cases

1. Service Restarts

Restart a service across all application servers:
sudo systemctl restart myapp
Select all app-server-* resources roles and execute once.

2. Database Health Checks

Check replication status on all database replicas:
SELECT pg_is_in_recovery(), pg_last_wal_receive_lsn();
Run on db-replica-1, db-replica-2, db-replica-3 simultaneously.

3. Configuration Updates

Update a configuration file on multiple hosts:
sed -i 's/old_value/new_value/g' /etc/myapp/config.yaml

4. Log Collection

Check recent errors across all servers:
tail -100 /var/log/myapp/error.log | grep ERROR

5. Kubernetes Operations

Scale deployments across multiple clusters:
kubectl scale deployment myapp --replicas=5
Run on resource roles for each Kubernetes cluster.

Working with Results

Execution Summary

The summary panel shows the status of each resource role:
StatusIconMeaning
SuccessGreen checkCommand completed successfully
ErrorRed XCommand failed
RunningSpinnerCommand in progress
Pending ApprovalClockWaiting for access request

Viewing Output

Click on any resource role in the summary to see its full output:
  • stdout - Standard output from the command
  • stderr - Error output (if any)
  • Exit code - Command exit status

Comparing Results

Results are displayed side-by-side, making it easy to:
  • Spot differences between servers
  • Identify which servers have issues
  • Verify consistent state across infrastructure

Filtering and Selection

Filter by Type

Select resource role by resource type:
  • Databases
  • Servers
  • Kubernetes clusters
  • Applications

Filter by Tags

Use tags to group related resource roles:
  • environment:production
  • region:us-east
  • team:platform
Type to search resource roles by name.

Select All Matching

After filtering, click Select All to add all visible resource roles.

Access Requests in Parallel Mode

If resource roles require access request approval:
  1. JIT Access Requests: You’ll be prompted to request access for each resource role that requires it
  2. Action Access Requests: Each command submission creates approval requests
  3. Mixed: Some resource roles may execute immediately while others wait for approval
The Execution Summary shows which resource roles are waiting for approval.

Runbooks in Parallel Mode

You can also run Runbooks across multiple resource roles:
  1. Open Runbooks in the sidebar
  2. Select a runbook
  3. Enable Parallel Mode
  4. Select target resource roles
  5. Fill in runbook parameters
  6. Execute
All resource roles receive the same parameter values.

Best Practices

Test First

Run commands on one resource role before scaling to many

Use Tags

Tag resource roles for easy group selection

Start Small

Begin with a few resource roles, then expand

Review Carefully

Check all results, not just the first one

Safety Tips

  1. Dry run first: If your command supports it (e.g., --dry-run), test before executing
  2. Limit scope: Don’t select all resource roles unless you’re sure
  3. Check the list: Review selected resource roles before executing
  4. Monitor results: Watch for failures as they occur

Troubleshooting

Some Resource Roles Fail

If some resource roles succeed but others fail:
  1. Click the failed resource role to see the error
  2. Common causes:
    • Resource role is offline
    • Different OS or command not available
    • Permission issues on that specific host
  3. Fix the issue and re-run on just the failed resource roles

Command Timeout

Long-running commands may timeout:
  1. Check the command on a single resource role first
  2. Consider breaking into smaller operations
  3. For very long operations, use a runbook with proper timeout settings

Access Request Delays

If approvals are slow:
  1. Check that approvers are online
  2. Verify Slack/Teams notifications are working
  3. Consider pre-requesting access before running parallel commands

Limitations

Current beta limitations:
LimitationDetails
Maximum resource roles50 resource roles per parallel execution
Command size64KB maximum command length
Result size1MB maximum output per resource role
Timeout5 minutes default per resource role

Next Steps

Runbooks

Create reusable command templates

Access Requests

Configure approval workflows

Session Recording

Audit parallel executions

Web App Overview

Explore the Web Terminal