Skip to content
Alessandro Bellucci edited this page May 11, 2015 · 6 revisions

Denv is a tool to build, deploy, launch and monitor versioned Docker environments.

Denv operates on three different entity types :

  • static environment configuration
  • environment configuration version
  • runtime environment (or simply environment)

An environment is a set of arbitrarily linked processes. Currently Denv only supports Docker based environments, where an environment is defined as a set of linked containers.

An environment static configuration is the formal description of all the artifacts and the interconnections that are necessary for the environment to run. Resource constraints and environment variable definitions are also part of the static configuration.

An environment static configuration may include a number of free variables, to define for example the version of some artifacts, or the amount of allocated memory.

An environment configuration version is an environment configuration where all the free variables used to specify artifact versions are bound to a value. An environment configuration version can also bind some or all of the remaining free variables. Many versions can be registered for each static configuration.

An environment must reference a static configuration and a version. Many environments can share the same configuration as well as the same version. An environment must bind any free variable still unbound (not bound in the version definition), so making its instantiation completely unambiguous.

Denv keeps track of registered environments, environment configurations and versions. Currently all this information is stored in a MongoDB repository.

The goal with Denv is to provide an easy way to run and monitor multiple instances and versions of the same single or multiprocess application, and to support the common use cases. For example, the implementation of pipelines may be considered in the future to support the continuous delivery use case.

Clone this wiki locally