In order for all readers to put our posts in perspective, here’s a listing of the terminology that will be used with explanations.

  • Environment
    An environment is a distinct “Farm” of computers designed to run an application. Multiple environments are required to exist to facilitate the “Full lifecycle” of a given application. Common examples of environments would be called:

    • dev: common environment for a development team to test new code
    • sit: “systems integration testing” an environment used to test the interaction of multiple components of an application before testers do.
    • qa: An environment used to run automated and manual test cases
    • uat: An environment used for common use cases by stakeholders or testers.
    • stage: An environment used to test the deployment of the application.
    • production: Real, customer facing environment.
  • Farm
    A collection of  “roles” in a given environment. In a common lamp stack scenario, one may see a farm consisting of, a mysql role and an apache role, and perhaps a memcache role.
  • Role
    A role is a distinct role that 1 or many servers can perform. To clarify, just because multiple servers run jboss doesn’t mean they are all performing a ‘jboss role’. These jboss servers can be performing very different functions, requiring different configuration and even versions of jboss. A role is essentially a logical grouping of servers in the service of creating a conceptual reality, which together, all roles in an environment create a “farm”.
  • Host
    A host is a distinct server or VM that exists inside a “role”.
  • Buildlife
    A buildlife is a distinct instance of 1 or more artifact sets consisting of all required components to run an application, including all configurations for all environments.
  • Artifact set
    An artifact set is a collection of files which are logically separated based upon their use and / or destination. Typically, one would create separate artifact sets for configurations for each environment, while configuration themselves may be separated into separate artifact sets. Example:  “apache dev configs”, “apache qa configs”, “apache prod configs”  “jboss dev configs”, “jboss qa configs”, “jboss prod configs”.