With each new update, HCL UrbanCode Deploy becomes a more powerful CI/CD tool for deploying anything, anywhere. In UrbanCode Deploy 7.0.5, we made several updates that make this tool more flexible for growing enterprises.
Moving Codestation to S3
Version 7.0.5 of HCL UrbanCode Deploy includes a few solutions that aim to address the growing storage footprint that comes with extended usage of the Deliver server. The two areas that will see the most growth over time are the versioned database tables used to preserve information about past deployments should they ever need to be reviewed in an audit, and the collection of build artifacts stored locally in the Codestation artifact repository.
Versioned database record growth has been mitigated by <link> Compressing Versioned Configuration Records </link>. With version 126.96.36.199, we’ve introduced the ability to store build artifacts in an S3 bucket.
Any cloud storage solution that implements the S3 specification is compatible for artifact storage. Once a UCD server is configured to store artifacts in an S3 bucket, it will no longer look at the local codestation repository for version artifacts – it will only retrieve artifacts from the bucket.
There are two scenarios to consider when configuring the UCD server to use an S3 bucket: configuring a fresh instance that has not yet imported any artifacts, and migrating previously imported version artifacts from an existing Deliver server into S3.
The migration scenario is described in this documentation. Migrating many build artifacts to S3 will take time, so we provided an S3 Migrator tool in the Tools section of UCD that will upload artifacts while the UCD server is running. We recommend that the S3 migrator tool is run multiple times until the time it takes to upload new artifacts to the S3 bucket can fit in a single downtime window.
Configuring S3 Codestation on a fresh UCD instance is as simple as following step 4 in the previously mentioned documentation. Not all properties defined need to be added to the server’s installed.properties file, since it depends on how the S3 bucket is configured. Work with your S3 provider to determine what parameters are relevant.
UrbanCode Deploy is a powerful tool for auditing compliance due to the fact that we store a new version of configurable objects such as processes, properties, and templates whenever they are modified. This allows the server to accurately show all information about past deployments, but also means that those records have to be stored in the database indefinitely.
One of the goals of UrbanCode Deploy 7.0.5 was to address the growing size of a heavily used server. To accomplish that, we now compress the vc_persistent_record data in the database. Starting with 7.0.5, all newly created records will be stored in the compressed format. Internal tests have shown that a fully compressed vc_persistent_record table takes up 70% less space than its uncompressed counterpart.
7.0.5 also includes an optional way to compress the existing vc data. More information about that can be found here as it requires further database actions to clean up the old, uncompressed data after the records are upgraded to store compressed data.
The end result is UrbanCode Deploy’s storage footprint grows at a much smaller rate than before.