Share

Comparative Analysis of Orchestrator Polyglot Approaches

by Mayank Goyal · 24 Apr 2025

Aria Automation Orchestrator (vRO) offers three distinct methodologies for integrating Polyglot scripting capabilities into automation workflows and actions: Zip Bundles, Script Environments, and Native Libraries. Each approach caters to specific operational requirements, dependency management strategies, and infrastructure constraints.

Orchestrator supports 3 languages called Runtimes: Python, Node.js and PowerShell (+ PowerCLI which comes with extra VMware Modules). Note that steps may slightly change for each runtime like installation command for modules, using environment variable etc.

This blog highlights the architectural nuances, use cases, and practical considerations for these methodologies.

1. Zip Bundles: Legacy Dependency Management

Overview

Zip Bundles represent the legacy approach for incorporating custom Python modules into vRO workflows, primarily used in pre-vRO 8.8 environments or air-gapped deployments lacking internet access. This method involves manually bundling third-party libraries into a ZIP archive with a predefined directory structure.

Implementation Steps

  1. Directory Preparation: Create a working directory (e.g., vro-python) with a mandatory lib subfolder.
mkdir vro-python
cd /vro-python
mkdir lib
  1. Dependency Installation: For Python, use pip install --target=<lib_path> to install modules (e.g., datetime) into the lib directory.
pip install --target=<lib_path> <module_name>
  1. Script Integration: Develop a single Python (/Node.js/PowerShell) script outside the lib folder, ensuring imports reference the bundled modules.
  2. ZIP Creation: Compress the entire directory using tools like 7-Zip and import it into vRO as a Python (/Node.js/PowerShell) action and call it based on fileName.functionName.

Strengths and Limitations

  • Strengths:
    • Operates without internet connectivity, ideal for restricted environments.
    • Compatible with older vRO versions (pre-8.8).
  • Limitations:
    • Manual dependency resolution increases setup complexity.
    • No native version control, risking dependency conflicts.

2. Script Environments: Modern Dependency Automation

Overview

Introduced in vRO 8.8, Script Environments streamline dependency management by enabling direct integration with package repositories like PyPI, PowerShell Gallery and npm. This approach eliminates manual bundling and supports version-controlled module installations.

Implementation Workflow

  1. Environment Creation: Navigate to Assets > Environments in the vRO client and define a new environment.
  2. Dependency Specification: Declare required packages (e.g., moment for Node.js) and versions via the UI.
  3. Memory Allocation: Adjust memory limits (128 MB to 1024 MB) based on module size, critical for PowerShell-heavy workflows.
  4. Script Assignment: Associate the environment with workflows or actions, enabling automatic module resolution at runtime.

Strengths and Limitations

  • Strengths:
    • Automated dependency retrieval reduces maintenance overhead.
    • Supports environment variables (e.g., process.env.TIMEZONE_IN) for dynamic configuration.
    • Integrated with vROโ€™s version control and export tools.
    • Support using in-house libraries.
  • Limitations:
    • Requires internet access for package downloads.
    • Limited to vRO 8.8 and newer deployments.

3. Native Libraries: Built-In Module Utilization

Overview

Native Libraries leverage preinstalled Python (/Node.js/PowerShell) modules within vROโ€™s runtime (e.g., http, xml), eliminating external dependencies. This approach is optimal for simple tasks requiring minimal external integration.

Implementation Workflow

  1. Module Identification: Reference vROโ€™s native Python 3.7 (/Node.js/PowerShell) modules, such as ssl for certificate validation or xml for parsing.
  2. Script Development: Directly import modules without external installations (e.g., import http.client).

Strengths and Limitations

  • Strengths:
    • Zero dependency management overhead.
    • Ideal for lightweight scripts leveraging built-in capabilities.
    • Test Postman Code instantly as shown here.
  • Limitations:
    • Restricted to modules available in vROโ€™s default Runtimes.
    • Limited scalability for complex integrations requiring third-party libraries.

Comparative Analysis

AspectZip BundlesScript EnvironmentsNative Libraries
Dependency SourceManually bundled modulesDirect from package repositoriesPreinstalled in vRO
Internet Requirement inside vRONoYes (and No if used internal repos)No
Setup ComplexityHigh (manual ZIP creation)Low (UI-driven)None
Version ControlManualIntegrated with vROYes
Use CaseAir-gapped environments.Where External modules are a necessitySimple scripts with built-in modules
Version supported8.0+8.8+8.0+

Operational Recommendations

When to Use Zip Bundles

  • Older versions: Organizations using vRO versions older than 8.8.
  • Offline Deployments: Environments without internet access, such as secure government projects.
  • Minimize unwanted code changes: External dependencies can make changes that may break your code. With zip bundle, you can lock your dependencies forever.

When to Use Script Environments

  • Modern Workflows: Teams prioritizing automation and maintainability in vRO 8.8+.
  • Collaborative Development: Scenarios requiring reproducible environments across deployments.
  • In-house Libraries: Teams developing in-house libraries can be easily tested with script environments.

When to Use Native Libraries

  • Rapid Prototyping: Quick scripts utilizing vROโ€™s built-in modules (e.g., REST calls with http.client).
  • Minimalist Design: Tasks where external dependencies introduce unnecessary complexity.

Conclusion

vROโ€™s Polyglot methodologies offer flexible solutions tailored to diverse operational needs. Zip Bundles remain indispensable for legacy and offline use cases, while Script Environments modernize dependency management for cloud-native workflows. Native Libraries provide a no-frills approach for lightweight automation. By aligning methodological choices with infrastructure constraints and project requirements, organizations can optimize their vRO deployments for scalability, maintainability, and performance.

For implementation details, refer to:

Citations:

  1. https://cloudblogger.co.in/2022/07/20/getting-started-vrealize-orchestrator-script-environments-cb10098/
  2. https://cloudblogger.co.in/2023/02/18/run-a-simple-custom-python-script-in-vro-cb10106/
  3. https://cloudblogger.co.in/2023/08/16/working-with-orchestrator-python-action-with-just-native-libraries/
  4. https://blogs.vmware.com/management/2022/02/cr-vro-aws-eks.html
  5. https://cloudblogger.co.in/2023/06/05/run-postman-code-directly-into-orchestrator/


Discover more from Cloud Blogger

Subscribe to get the latest posts sent to your email.

You may also like