1. Home
  2. Docs
  3. Yonohub
  4. YonoEBuilder

YonoEBuilder

YonoEBuilder allows you to build custom environments (each with a set of package and dependencies) with just a few clicks and to use these environment with other Yonohub apps: develop YonoArc blocks, run jobs using YonoJobs, etc. You can also share your environments with your teams, publish your environments on YonoStore, or purchase existing ones.

To create an environment:

  1. Click Create environment.
  2.  If you would like to start with all the details of an existing environment and then modify it, you can use the autocomplete option at the top of the popup.
  3. Under the General tab, enter the basic info of the environment as follows:
    • Name is used to identify the environment and track its progress.
    • Version of the environment, e.g., 0.1.0.
    • Description explains the details of the environment.
    • Log File Path is the path of the file in which the logs of the build process will be written. The path should start with slash and end with .log.
    • Environment Folder Path is optionally used when you need to build complex environments whose dependencies are beyond the packages in APT, PIP, or Conda. You can include any other dependencies and scripts in this folder and execute these scripts using Linux commands as defined under the Requirements tab. For convenience, you can always copy the folder of an existing environment instead of setting up a dedicated folder.
    • Resource Model is used to build the environment. The resource model you select here does not limit your options for future uses of the environment. For example, you can build an environment using C1, but later use the same environment to start Jupyter using C2. 
  4. Under the Requirements tab, specify the requirements of the environment as follows:
    • Base: Each environment is based on one of our pre-defined bases. Select the appropriate base depending on:
      • The Python version you need. We strongly recommend using Python 3 because the End Of Life date for Python 2 is 2020. Python 3 environments get ready much faster than Python 2 environments when they are used with any Yonohub app.
      • Whether you need Conda for any of your packages. Please beware that using Conda makes the environment size larger, which slows down loading the environment when used in any Yonohub app.
      • Whether you need GPU support or not. If you select a GPU-based instance, NVIDIA Drivers and CUDA are installed.
    • Check Include Gazebo simulator in order to include it in the environment.
    • For convenience, there are many common requirements that you can add with just a single click. For example, if you click TensorFlow, a new row is added in the requirements table “pip tensorflow”. If your environment includes non-web-based tools and you need to access these tools later using a remote desktop technology, click noVNC to add several requirements and launch settings (explained below).
    • Add the requirements of the environment to the table. Requirements are installed in the same order as they appear in the table. Adding a new requirement requires:
      • Manger is the package manager used to install the package. YonoEBuilder supports APT, PIP, and Conda. You can also select Command if you need to execute a Linux command inside the Environment Folder Path that you specified under the General tab. This allows executing any custom scripts which makes building complex environments possible.
      • Package is the name of the package as listed in the corresponding manager.
      • Version is the desired version of the package. Beware that if you leave it blank, YonoEBuilder will get the latest version whenever you rebuild the environment. This may break your code because, for example, a newer version of TensorFlow may change the name of a method that your programs use.
      • Private Repository is the URL of the private repository (if any).
      • Click Add to add the requirement. Do the same for all the requirements you need.
  5. Under the Launch Settings tab, specify the attributes required to launch this environment as a custom app on the main view of Yonohub, if needed.
    •  Startup Command is the command executed once the environment is booted. If the startup command finishes execution, Yonohub terminates your custom app on the main view. Hence, you need the startup command to be blocking as long as you need the custom app running. That’s why the default value of the startup command is “sleep infinity” to make sure your custom app stays running until you manually terminate it from the main view.
      • Examples: If your environment includes non-web-based tools and you need to access them later using a remote desktop technology, the startup command should start the VNC server. If your custom app is an IoT server collecting data from many edge devices, the startup command should start the server.
      • Since an environment may contain main tools, the startup command may execute many independent commands, e.g., start a VNC server and start an SSH server. In these cases, we use the pattern: (COMMAND1) & (COMMAND2) & (COMMAND3) & sleep infinity to make sure that all commands are executed independently in the background while the entire startup command is blocking due to the “sleep infinity”. You can always edit the startup command for more customization.
      • Needless to say, the startup command may execute a script that is given inside the Environment Folder Path.
    • URLs are provided to the user after launching this environment as a custom app in order to access it. You can have several URLs, each with different Name, Protocol, Port, Path, and Description. Your environment should listen on the ports you specify here. For each port you specify here, to avoid conflicts, Yonohub generates a corresponding port and provides the final URL to the user.
    • Configurations are given by the user to the custom app before launch. These configurations are passed as environment variables, so they can be used by the startup command.
      • Name of the configuration.
      • Key is the name of the environment variable corresponding to this configuration.
      • Type of the configuration, e.g., text and number.
      • Default value of the configuration.
      • Description of the configuration.
  6. Click Build or Express Build.

YonoEBuilder shows the list of environments you have. Note that the size of the environments you build (including all their versions) affects your balance. However, the environments you purchase from YonoStore do not. An environment can have one of the following statuses:

  • Waiting while YonoEBuilder is allocating resources for the build process.

  • Building while the environment is currently being built. You can follow up with the build process using the log file.

  • Released if the environment has been built successfully and is ready to be used.

  • Failed if the build process has failed. You can check the error using the log file.

  • Purchased if this environment is purchased from YonoStore, so it is read-only.

You can select an environment by clicking its row. Then, you can select a version of this environment using the drop-down in the version column. Then, you can use the buttons at the top to perform many actions:

  • View the details of the environment
  • Create a new version of the environment. This doesn’t affect the old versions. In fact, older versions are always read-only since they can not be edited. However, they can be removed manually to save storage, if needed.
  • Cancel an environment that is Waiting or Building
  • Share the environment with your teams. Sharing an environment gives full access rights to all its versions.
  • Publish on YonoStore: This operation is version-specific, so only the version you select is published on YonoStore.
  • Get environment files: This allows downloading the files of the environment given in the Environment Folder Path under the General tab. If the selected version of the environment doesn’t have associated files, this button would be disabled.
  • Remove the selected version of the environment.
  • Remove all versions of the selected environment.

In order to help you get started, YonoEBuilder includes an Essentials bundle that is already purchased from YonoStore by default when you sign up. The bundle includes:

  1. YonoCommons – CPU includes common packages and machine learning frameworks, such as NumPy, OpenCV, Matplotlib, TensorFlow, Keras.
  2. YonoCommons – GPU includes NVIDIA drivers, CUDA, and the GPU versions of the same common packages.