Terms used by Nextstrain CLI. Primarily intended for developers new to the codebase, though some terms are also used in user-facing messages and documentation.
- computing environment
A general term for any given set of software, configuration, and other resources available for running programs. Computing environments are often nested, with inner environments inheriting to varying degrees from the outer environments. The isolation and reproducibility of different computing environments varies widely.
Nextstrain runtimes are examples of specific computing environments.
- computing platform
The foundation of a computing environment (or part of it), such as Docker, Conda, AWS Batch, etc.
The code (i.e. Python module, e.g.
nextstrain/cli/runner/docker.py) which arranges to execute things inside a runtime.
Used by commands like
nextstrain view, for example, to execute
Runners have a 1:1 mapping to runtimes.
A specific computing environment (e.g. container image or Conda environment) in which Nextstrain CLI expects to find and execute other Nextstrain programs.
Docker with the nextstrain/base image
Conda with the nextstrain-base meta-package
AWS Batch with the nextstrain/base image
Each runtime provides specific versions of Nextstrain’s software components, like Augur and Auspice.
Runtimes are managed (maintained, tested, versioned, released) by the Nextstrain team, except for the ambient runtime. The ambient runtime is special in that it’s whatever computing environment in which Nextstrain CLI itself is running (i.e. managed by the user).