Architecture & Requirements

Architecture of Sanbox Runtime and possible configurations.

Composition

Lumisan Sanbox Runtime is a web server comprised of just one executable file. It runs on Linux and Windows and can run on bare metal, a virtual machine, or in Docker. It may be ran as a simple process, behind a network appliance like a reverse proxy / load balancer, or as a Windows or Linux service. You are allowed to distribute the Runtime as part of a digital product offering.

Components

Configuration

Lumisan Sanbox Runtime can run without any other files, however the Runtime requires a configuration. Configuration for the Runtime can be represented as either a file runtime.json found in the working directory of the Runtime, or as a JSON string in the SANBOX_RUNTIME_CONFIG environment variable. Read more about configuring the Runtime.

Image

Not to be confused with Docker Images, Lumisan Sanbox Runtime stores all Workflows, Models, Files, and everything else created in Sanbox Designer in a image file (default runtimeImage.sbimg). This file is updated real-time and can easily be transferred from one Runtime to another. You can also configure your Runtime to backup your image file on a schedule.

If no image file is found, Sanbox Runtime creates a demo image comprised of a landing page.

You should shutdown a Runtime before you manually replace its image file otherwise cache will be out of sync.

Lumisan Sanbox provides a variety of tools for you to automate deployments of images between Runtimes.

Click here to learn how to incorporate automated deployments in your DevOps CI/CD Process.

Afterwards, click here to check out how to deploy images right in Sanbox Designer.

Each instance of the Runtime can support unlimited Designer connections. Sanbox Designer is an IDE that runs on a Windows 10 desktop. When open, Sanbox Designer maintains a duplex HTTP2 connection with the Runtime.

Logs

Sanbox Runtime creates a directory Logs in the working directory for storing logs.

System Requirements

Operation System

Sanbox Runtime is supported and tested to run on the following operation systems. (Sanbox Runtime can run on additional Linux distributions, but thorough testing has not been done.)

OS

Version

Architecture

Windows 10

Version 1607+

x64

Windows Server

2008 R2 SP1+

x64

Nano Server

Version 1709+

x64

Linux (Ubuntu)

18.10, 18.04, 16.04

x64

Ubuntu distributions require the following libraries installed (these libraries are automatically installed with the Linux Express Install Script):

  • liblttng-ust0

  • libcurl3 (for 14.x and 16.x)

  • libcurl4 (for 18.x)

  • libssl1.0.0

  • libkrb5-3

  • zlib1g

  • libicu52 (for 14.x)

  • libicu55 (for 16.x)

  • libicu57 (for 17.x)

  • libicu60 (for 18.x)

HTTP2 protocol support is also required.

Resource Requirements

The hardware requirements for Sanbox Runtime will vary depending on what is running inside of it, however, the minimum requirements for a clean instance of Sanbox Runtime are listed below.

Build

Free Disk Space

RAM

Processor

Windows

~150MB

500MB

400 MHz

Linux

~150MB

500MB

400 MHz

Network Configurations

Listed below are possible network configurations of Sanbox. However, they are not the only ways Sanbox can be configured.

Shared Development Configuration

Shared Development Setup

In this configuration, a Runtime is situated in a VM/Container hosted on-premise or in the cloud. We have 3 users who contribute to this Runtime instance. Each can modify the same workflows, models, files, etc, and each shares the same debug context. When debugging workflows, all users who are viewing Workflow A see the same data flowing through the system when Workflow A executes.

Single Development Configuration

Single Development Setup

In this configuration, a Runtime is running on a machine with the Designer. It is either running as a Windows Service or an ephemeral console. This configuration is great for freelance developers.

Production Configuration - Edge Server

In this configuration, it is recommended you turn off Designer access in the runtime.json configuration file found in the Runtime directory. This configuration simply has the Runtime on a VM/Container accessible to the internet.

Production Configuration - Reverse Proxy

In this configuration, Sanbox Runtime is configured behind a reverse proxy.

Please advise that IIS Support has been dropped at the moment.