The artifact repository is primarily used to collect and store current and older versions of application components, as well as other types of software (and versions thereof) built using the build tool. An artifact repository is particularly useful when housing reusable components that have already been built and tested and that can be made available to different project teams.
Build Server (and Build Tool)
After code is submitted to the source code management repository, an application (or the individual components that comprise an application) can be built by compiling and combining the developed code sets, after testing has been completed. A build tool is used specifically to generate a built application or component. This tool is typically installed on a dedicated virtual or physical server that is known as the build server.
The CI server hosts a system designed specifically to support the process of continuous integration. This server hosts programs capable of automatically building new versions of software and then automating unit and integration tests. It subsequently sends forward test results to those responsible for reviewing and assessing them. The upcoming Working with Continuous Integration (CI) section illustrates the CI server in action.
Communication and Collaboration Tool
This platform provides an effective means of cross-team communication by offering a range of features, including open document sharing, push notifications and realtime collaboration toolsets. The communication and collaboration tool is often cloud-based and can integrate with existing project management software. Communication channels enabled by this tool can be public or private and security controls are provided to limit access to the overall environment to authorized participants only.
Configuration Approval Tool
When codified configurations need to be programmatically verified and approved or rejected, a configuration approval tool is used.
Configuration Management Database (CMDB)
A configuration management database is used for controlling, managing and recording configurations and configuration updates. The data stored in this database can be accessed by project teams whenever configuration information is required. It can further be used for auditing and monitoring purposes when historical information is required about changes made to an application, including the nature of each change and who made the change.