1. Home
  2. Docs
  3. Yonohub
  4. Deployment Regions

Deployment Regions

Deployment regions allow users to access and execute on remote computational clusters and add their own nodes to Yonohub. This feature enables users to use their hardware, while leveraging all Yonohub features (e.g., launching YonoArc pipelines, developing YonoArc blocks, running jobs using YonoJobs, building environments using YonoEBuilder).

 

The user can add one or more nodes in a deployment region. These nodes can be servers, vehicles, robots, drones, etc. As an example, a user can add two on-premises servers, which are of high specifications and GPU processing power, as two nodes in a deployment region. Hence, the benefit of such deployment region resides in the fact that the user can actually use their own hardware (i.e., the servers) being accessible from Yonohub with all its capabilities. 

 

Users can run their apps, jobs, or pipelines in Yonohub or any of their deployment regions. You can even run some blocks (e.g., data acquisition or simple processing) in a deployment region, while the rest of the pipeline is running at Yonohub.

Getting Access to Deployment Regions

The deployment regions feature is a Pro feature. You can purchase it from YonoStore as follows:

  • Navigate to the Deployment Regions purchase page on YonoStore. 
  • Click Request Early Access. 
  • Fill in the form with the required information and click Submit. 
  • Your purchase order will be reviewed first before approval. Once the order is approved, you can start using the deployment regions feature. 

Creating Deployment Regions

To create a deployment region:

  • Click on your account picture on the top right of Yonohub’s homepage, and select Deployment Regions. 
  • In the Deployment Regions main page, you will find three tabs named Deployment Regions, Special Resources, and Resources Mapping. 
  • Under the Deployment Regions tab, click on the Create Region button on the top right corner.
  • In the dialog panel that will appear, type a name for your deployment region and choose the resources of the gateway. The gateway is the node which handles all communication between external nodes and other nodes on the cloud.
  • Click on the Add button and you should see the deployment region listed now after the dialog closes. 

  •  Wait for the deployment region until its status changes from initializing to initialized.

Adding Nodes to Deployment Regions

To add a node to the deployment region:

  • After the deployment region becomes initialized, click anywhere on it, and then click on Edit on the top left corner of the page. 
  • Click on Create Node to start adding a node to the deployment region. 

  • In the dialog panel that appears, type a name for your node and select whether this node should be burstable or not. A node can be:
    • Burstable: 
      • A node can be shared by multiple users at the same time, and this option controls whether they can exceed their requests or not. 
      • For example, if a server having two cores and running two jobs submitted by two different users, each requesting one core, then setting this option as burstable means that these jobs can consume more than what they requested or asked. 
      • If this option is selected, it can’t be modified (i.e., users who launch jobs can’t control the burstability of their jobs). 
    • Non-burstable
      • This option should be selected if the workloads or jobs running on this node will be limited to the resources they request.
    • Configurable: 
      • If the administrator of the deployment region specifies the option of burstability to be configurable, then the decision is left for the user who launches the job. 
      • For example, if a user launches a job marking it as burstable, then this job can exceed its requested resources. However, if another user launches a different job at the same time marking it as non-burstable, then they will never be allowed to exceed this request. 

  • Click on Add. You should see the new node listed in the list of Nodes. You will find the name of the node, and whether it is burstable or not. The node is still inactive, and hence its capacity, in terms of CPU cores and RAM, has not been detected yet. Soon enough, we will download a script to activate the node. 

  • Click on Save, and exit the dialog. 

Attaching Special Resources to Nodes

To add a resource to the node:

  • In the Deployment Regions main page, under Special Resources tab, you need to specify the resources you may use in any of your deployment regions. 
  • Click on Create Resource. The resources you add in this section are just types of your hardware or software. 
  • Add a name for every resource together with the category it belongs to. Click on Add. 
    • For example, your system may have two cameras, and three laser scanners mounted on the vehicle. If the two cameras are exactly the same type and there is no difference between them, you may just need to add one resource with a given name and category Camera. You may attach this resource multiple times later.
    • However, if your laser scanners are of different models and you want to differentiate between them, you may need to add a resource for every type of laser scanner. 
  • After all the resources has been successfully defined. Navigate back to the Deployment Regions tab, and click again on your newly created deployment region to edit. 
  • Click on Resources next to the node and then Attach Resource. You can attach more than one resource. For each resource you attach, you need to specify:
    • Category: The category that the resource belongs to. 
    • Name: The specific name of the resource in that selected category.
    • Mount Path: The path of the folder on which this resource is mounted in this node.
    • Maximum Number of Users: How many users should be allowed to use this resource simultaneously?
  • Click on Attach, and then press Save on the Edit Region dialog.

Common Resources of Deployment Regions

If you have multiple nodes and there is a common resource that is attached to every single node, it will be much easier to define a common resource that will be automatically added to every node instead of defining the same resource over and over for every single node.

To add a common resource all the nodes in the deployment region:

  • Navigate to the Deployment Regions tab, and click again on your newly created deployment region to edit.
  • Under Common Resources at the lower part of the dialog, click on Attach resources. You can attach more than one common resource. For every common resource you attach, you need to specify:
    • Category: The category that the resource belongs to. 
    • Name: The specific name of the resource in that selected category. 
    • Mount Path: The path of the folder on which this resource is mounted in all nodes. If the mount path is different in each node, you can’t define the resource as a common resource. It has to be attached separately in each node. 
    • Maximum Number of Users: How many users should be allowed to use this resource simultaneously in each node? 
  • Click on Attach, and then press Save on the Edit Region dialog.  

Launching and Terminating Deployment Regions

  • After all nodes and resources have been clearly defined and set up, you can launch the deployment region by choosing Launch or Express Launch. 
  • The process of launching the deployment region will take some time, and soon enough it will change is status from being Initialized with a black background to Active with a green background. 
  • At any time after the deployment region is active, you can terminate it by clicking on Terminate. Note that you can not terminate a region while its status is still Initializing. You can only terminate a deployment region if it is initialized or active.

Connecting Deployment Region Nodes

  • After the deployment region becomes active, click on View on the top left corner of the page. 
  • The node is inactive yet. However, you can download the script that will run on the remote node to activate it and add it to the deployment region. Click on the Download Script icon under the Actions section. 
  • Power up the remote node and set it up ready for running the downloaded script. The remote node can be anything from a virtual machine up to a giant server. 
  • Download the script on this node. Then, run the script as follows. This will take some time. 
chmod +x connect_script.sh
sudo ./connect_script.sh --connect
  • If a message on the node’s terminal shows that the node is set up properly and that the node is successfully connected, then the node has been launched and you are ready to use your deployment region to launch a pipeline on YonoArc, build an environment on YonoEBuilder, start a job on YonoJobs, etc. 
  • After the node is active, click on the deployment region and click on View  the top left corner of the page.
  • The node details should now show the capacity of the node in terms of number of cores and the amount of memory in GBs. The node is in an active status now.
  • If the node fails for any reason or the user terminates the script (e.g., by pressing Ctrl+C), the node will turn inactive again.

Sharing Deployment Regions

  • You can share the deployment region with one or more of your teams. Click on your deployment region, and then click the Share button on the deployment regions main page. 
  • Choose the teams you want to share the deployment region with and choose Apply

Using Deployment Regions in Yonohub Apps

To use deployment regions in any of Yonohub apps:

  • For any custom app, job, or YonoArc block, you can specify whether it will be running on Yonohub or a deployment region. This is achieved by selecting the deployment region and the node on which this workload should be running. For YonoArc blocks, you can find the deployment region settings in the advanced settings section of the block.
  • From the Count dropdown menu, select how much resources to allocate for this workload. Resources are allocated in multiples of one tenth of the node resources. For example, selecting 3 means 0.3 of the node cores and RAM.
  • You can select whether this workload is burstable, which means that it can consume resources more than the allocated resources, if needed. Since the node burstable option is chosen as configurable, you are able to configure the burstability option on this node. Otherwise, the checkbox will be disabled.
  • Select from Special Resources the resources that this workload needs.
  • Note: Any choice regarding deployment regions (i.e., region, node, count, and special resources) may appear in black which indicates a valid choice, or red which means the resources are currently being used by other workloads, or gray which indicates an invalid choice. If you hover over a gray or red choice, you should see the reasons why it is gray or red.
  • The developers of environments and blocks can determine which special resources are needed by their environments or blocks, if any. That’s why when you drag a YonoArc block or start a custom app based on an environment, Yonohub populates the list of special resources based on the developer recommendations. If one of these resources doesn’t exist in your deployment regions (indicated by its gray color), you can map it to another resource if you are sure the two resources are the same.
  • To map a resource, click on the arrow icon next to the selected resource. Choose Map Resource. Select the name of your target resource. You should see the resource attached with this node in black now. 

  • You can then launch by clicking on Launch or Express Launch.
  • For YonoArc, you may have some of the blocks running on Yonohub and other blocks leveraging your hardware and running on your deployment region. If you need the entire pipeline to run in your deployment region, you can configure the deployment region of the dashboard and monitor by clicking the settings icon on the top right corner of the canvas. 

Developing Environments and Blocks Requiring Special Resources

To create an environment on YonoEBuilder using your deployment regions:

  • Navigate back to Yonohub’s homepage. Click on YonoEBuilder.
  • Click on Create Environment at the top right corner of the main page.
  • Under the Special Resources tab, select all categories of resources needed to develop your environment or block.
  • Configure every chosen category (i.e., camera, laser sensor, etc) by setting the following properties:
    • Is Required: Check this box if the environment or block can not be launched (as a custom app for the environment or in YonoArc for the block) without giving access to a resource from this category.
    • Multi Select: Check this box if the user can provide multiple resources from this category to the environment/block.
    • Supported Resources: Choose the list of resources supported by this environment/block.
    • Default Resource: Choose the resources from the set of supported resources that the environment/block will default to.