This topic explains the architecture of the artifact repository in Deployment Automation.
Artifact repository overview
Artifact versioning in Deployment Automation is handled by CodeStation.
You can direct Deployment Automation to introduce artifacts into CodeStation from the file system or from external source control tools that you identify when you select the Source Config Type for a component.
CodeStation artifacts represent deployable items such as files, images, databases, configuration materials, or anything else associated with a software project. By default, these are stored in the var subdirectory in the Deployment Automation server installation directory.
Deployment Automation's secure and tamper-proof artifact repository ensures that deployed components are identical to those tested in preproduction environments. Without the repository, artifacts have to be pulled from network shares or some other system, increasing both security risks and the potential for error.
The artifact repository uses content addressable storage to maximize efficiency while minimizing disk use. The repository tracks file versions and maintains a complete history for all components. Maximizing efficiency is important, since the artifact repository stores files that are much larger than source files.
Association of files with Components is built into the system. Without any configuration, each Component gets its own area of the repository for its files. There is no chance of confusion or mix-up of files to Components. And, each Component Package is mapped to a specific set of files and versions corresponding to the Component.
The artifact repository comes with a client application that provides remote access to the repository. Using the client, the user can add/modify files, create Packages, retrieve files, as well as view the history of changes.
The client application provides a file transfer capability that can be used to deliver files to target servers during deployments. This built-in transfer mechanism verifies the integrity of all transferred files against their expected cryptographic signatures, thus guaranteeing that files have not been corrupted during transmission or tampered with during storage.
In addition to the client application, the artifact repository exposes REST-based web services. These services are used to build integrations between build systems such as AnthillPro and Deployment Automation. Such integrations automatically place the artifacts produced by the build process in the artifact repository, thus making the artifacts available for deployment.
In an enterprise environment, the default installation might not be ideal. See Relocate the repository for a discussion about enterprise options.
For enterprise implementations, due to storage requirements, you may need to relocate your CodeStation files and store them on a different machine than your Deployment Automation server.
Use this formula to determine CodeStation storage requirements:
average artifact size * number of versions imported per day * average number of days before cleanup
By default, the Deployment Automation file storage is organized as follows:
|Execution log files||<da_profile_directory>\logs|
|CodeStation repository files||<da_profile_directory>\var\repository|
|Derby database files (if Derby is used)||<da_profile_directory>\var\db|
To relocate the CodeStation files:
- Stop the server before moving the folder location.
- To relocate log files, you must relocate the \logs directory.
- Relocate the whole var directory. If you want to relocate only the repository files, relocate just the \var\repository directory.
To configure your network storage in an optimal way, follow these guidelines:
- This data should be stored on robust network storage that is regularly synchronized with an off-site disaster recovery facility.
- The Deployment Automation server needs a fast network connection to storage (agents do not need access to the storage location).
- On UNIX, you can use symbolic links from the var subdirectory to network storage.
- On Windows 7 and later, you can use several options for redirecting logs and artifacts, including mklink.
- Distributed teams should also take advantage of location-specific CodeStation proxies to improve performance and lower WAN usage.