Links

Sandbox Hosts

This page describes sandbox hosts, the provisioning process of sandbox hosts, and support for choosing which host to use.

What is a sandbox host?

A sandbox host is a container or a virtual machine, and you can add multiple hosts to a sandbox.

Provisioning sandbox hosts

Before a learner can access the sandbox environment, Instruqt provisions all sandbox hosts. During provisioning, Instruqt starts the host and runs your setup scripts. You can install your software packages and configuration on a sandbox host by using:
  • Host-specific track setup scripts while the learner is waiting for the track to load
  • Custom container images or Compute Engine machine images
Let's walk through the container and virtual machine provisioning process to make the most of these options.

Container provisioning process

To provision a container, Instruqt performs these steps:
  1. 1.
    Pull the image from a container registry like Docker Hub.
  2. 2.
    Start the container image to create a container.
  3. 3.
    Run the host-specific track setup script on the container.
  4. 4.
    Add the host to the sandbox.

Virtual machine provisioning

To provision a virtual machine, Instruqt performs these steps:
  1. 1.
    Start a virtual machine using a Compute Engine machine image stored on Google Cloud.
  2. 2.
    Run the host-specific track setup script on the virtual machine.
  3. 3.
    Add the host to the sandbox.

Container or virtual machine?

Instruqt supports using containers and virtual machines as sandbox hosts. Containers start faster, which means your learners start playing the track sooner. Reasons to choose a virtual machine over a container include:
  • You need access to the Docker daemon to build container images and run containers.
  • You require more than 8GB of system memory.
Long-running system services like databases or web servers
If you want to install long-running system services you can choose either a container or a virtual machine. However, since most base container images do not have a process manager, the experience is better on a virtual machine.

Using custom and public images

You can use the following custom and public image types:

Track setup scripts to provision hosts

Track setup scripts run while the learner is waiting for the track to load, and they are executed sequentially on all sandbox hosts. Check this topic for more information: