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”.