3.6. Deployments

A deployment is essentially a bundle that has been deployed to an environment. A deployment represents a separate installed instance of a bundle. For loadable bundles, this instance is just a reference to the original bundle. However, for an executable bundle, this instance has its own 'work' directory for all its runtime files like configuration and logs. This allows multiple instances of an application to co-exist.

Consider the MySQL database server as an example. You can create a BundleWorks bundle for MySQL (using either the mysql-source or mysql-ref bundler). This bundle either contains or references the MySQL binaries, depending on how the bundle was built. When the bundle is deployed to an environment, an instance of that MySQL bundle is created. This instance contains a work directory which holds the MySQL configuration, database files, and temp directory. As long as unique port numbers are chosen, multiple instances of this MySQL bundle can be deployed and run on a single machine.