VM Build Executors

VM build executors are OCI VM Compute instances dedicated to run builds of jobs, which your organization’s members define in VB Studio projects.

A VM executor is always associated with a build executor template. When your organization's members create jobs, they simply associate the appropriate executor template with the job. When the job's build triggers, the VM executor that's associated with the executor template starts automatically. Oracle charges you only when a VM executor is active, runs a build, or is preparing itself to run a build.

This table describes the different states of a VM executor:

State What does it mean? Does it cost?
Pending After you add a VM executor, it is in this state until it runs a build.

When a VM executor starts from this state, it takes some time to install the operating system and software packages.

No
Starting The VM executor is starting.

If the VM executor starts from the Pending state, VB Studio installs the operating system and software packages on the VM executor's assigned boot volume. This takes time.

If the VM executor starts from the Stopped state, VB Studio uses software packages and the operating system from the previous run's saved boot volume.

VB Studio periodically checks all executor templates for updates. If an executor template is found with new updates, VB Studio deletes the preserved boot volume of all stopped VM executors that reference the executor template and changes their status from Stopped to Pending.

Yes
Available Operating system and software packages are installed, and the VM executor is ready to run a build. Yes
In Use The VM executor is running a build.

After the running build is complete, the VM executor returns to the Available state.

Yes
Stopping The VM executor is shutting down.

Before shutting the VM executor down, VB Studio saves the operating system and software packages to the VM executor's assigned boot volume.

Yes
Stopped The VM executor has shut down. No
Error There's a hardware or a software issue on the VM executor. Check the VM executor's log to find more about the cause. No
Destroying The VM executor is being deleted. No
Error Unrecoverable

This state is most likely caused when a customer changes the Compute account's OCI access so that control of the VM executor OCI resources are blocked.

This state can also occur if the build executor is in an Error status and VB Studio is not able to remove all used OCI resources or if there is a temporary network glitch during the removal process.

VB Studio tries once a day to clear OCI resources used by the VM executor in the Error Unrecoverable state. To manually clear these resources, you can also use the Try to Reset action.

No

Some key points to remember about VM executors:

  • After creating a VB Studio instance, VB Studio creates a VM executor when you create your first project (assuming you don’t already have one). The VM executor is associated with the System Default OL7 for Visual Builder executor template in the connected OCI account.
  • When you add a VM executor manually, you must specify the executor template, choose an OCI region from the connected OCI account's subscribed regions, specify the OCI Compute VM's shape, and select the VCN (optional).
  • Your OCI account may have some Compute instance limits set. When you add a VM executor, VB Studio looks into the specified OCI region's Availability Domains, finds available OCPUs with the specified shape, calculates the number of Compute instances, and displays the number of Compute VM instances you can add from your OCI account's set limit.

    Here's an example of the VB Studio's Add VM Build Executors dialog box that displays the number of VM executors you can add with the VM.Standard.E2.1 shape:


    Add Build VM dialog box with a message about number of VMs available

  • When you add a VM executor, it is added in the Pending state and doesn't cost you anything. You can add more VM executors than the number of available Compute VM instances.

    Remember, VB Studio creates a Compute VM instance when a VM executor starts, not when you add it.

  • You can add standard and legacy VM shapes with these series:
    • VM.Standard1
    • VM.Standard2
    • VM.Standard.E2
    • VM.Standard3.Flex
    • VM.Standard.E3.Flex
    • VM.Standard.E4.Flex
    • VM.Standard.E5.Flex
    • VM.Standard.B1
    • VM.Standard.Intel.Generic
    • VM.Standard.x86.Generic
    • VM.Standard.AMD.Generic

    For more details about the above shapes, see Standard shapes and Legacy shapes.

  • A VM executor can run one build at a time.
  • When a job's build runs, if VB Studio finds multiple VM executors allocated for the job's executor template, it runs the build on any one of them. You can't choose or specify a particular VM executor to use for the build.
  • If you expect your organization's members to run parallel builds of jobs that refer to a common executor template, add multiple VM executors for that executor template. If you're not sure, you can start with one VM executor and add more VM executors later.
  • While adding multiple VM executors that reference a common executor template:
    • Add all VM executors in the same VCN. If you add VM executors with a common executor template in different VCNs (such as some VM executors in the default VCN and other VM executors in a custom VCN), your builds might behave unpredictably.
    • Add all VM executors with the same shape. If you add VM executors with different shapes (such as some VM executors of the VM.Standard1.1 shape and some of the VM.Standard2.8 shape), your builds may run slow or fast depending on the VM executor it runs on.
  • After a build is complete, a VM executor continues to be in the Available state and waits for some time for any queued builds. This wait time is called sleep timeout. If no builds run on the VM executors in this duration, VB Studio automatically stops the VM executors.
  • The more VM executors you have running at a specific time, the higher the cost. To minimize the higher cost, configure the sleep timeout to stop inactive VM executors after some time. The sleep timeout setting applies to all your organization's VM executors.

Build Executor Templates

A build executor template defines the operating system and the software packages your organization's members need to run builds on VM executors.

VB Studio offers some executor templates out-of-the-box, but you can create more templates if the default templates don't meet your requirements. See Create and Manage Build Executor Templates.

Some key points to remember about executor templates:

  • Each executor template contains an Oracle Linux operating system, Java, and some required software packages. If required, you can install more software packages available in the VB Studio Software Catalog.
  • You can't add a software package or a version that's not available in the VB Studio Software Catalog.
  • In the Software Catalog, some software packages have multiple versions. You can add only one version to the executor template. However, you can add multiple versions of Java to an executor template.
  • Executor templates don't consume storage space or increase your cost. You can create as many executor templates as you require.
  • Some software packages, such as Fn and Oracle Jet, require other software packages in the same executor template. When you add these software packages, VB Studio prompts you to add the dependent software packages.
  • Don't add unnecessary software packages to an executor template. The more software packages you add to an executor template, the more storage space its VM executors consume when they run builds.

What Happens When a Build Runs in a Build Executor?

When VB Studio runs a build, it follows a set order to select a VM executor. You can't choose or specify a particular VM executor to use for the build. If no VM build executors are found, VB Studio fails the build.

When multiple VM executors are found, VB Studio selects a VM executor to run the build in this order:

  • If a VM executor is in the Available state, VB Studio runs a build on it.
  • If no VM executors are in the Available state, VB Studio starts a Stopped VM executor, installs the operating system and the executor template's software packages from the saved boot volume, and then runs the build on it.
  • If no VM executors are in the Available or the Stopped state, VB Studio starts a Pending VM executor, installs the operating system and the executor template's software packages, and then runs the build on it.
  • If all VM executors are running builds, VB Studio waits for a VM executor to complete its build, and then runs a build on it.
Note

A VM executor in the Stopped or Pending state will take several minutes to start because VB Studio installs the operating system and the executor template's software packages before running the build.

The VM executor should start subsequent builds more quickly. You can adjust the sleep timeout to avoid start-up delays.

The steps for a build running in a build executor include:
  1. VB Studio checks the job's build executor template and then finds a VM executor allocated to it.
  2. VB Studio checks the job's configuration and runs the commands in the specified order.
  3. After the build is complete, VB Studio copies any generated artifacts to the configured OCI Object Storage bucket.
  4. The VM executor waits for some time for any queued builds. If no builds run during the wait time period, the VM executor stops.

    Before stopping the VM executor, VB Studio saves the operating system and software packages to the VM executor's assigned boot volume.