ProGet Migration
How to Back-up and Restore in ProGet for Artifactory Users
This article is part of a series on Migrating from Artifactory to ProGet, also available as an eBook.
When it comes to development, the safety of your assets is vital. Losing valuable data can set projects back significantly. However, the reality is that any software or hardware is susceptible to failure, making backups essential.
With this in mind, Artifactory offers solutions to address data security. Inedo believes it’s just as important to have you covered, providing comprehensive solutions for your security needs with ProGet. We value simplicity, and don’t mess around with over-complicated storage systems, instead keeping it to simple package storage on disk.
In this article, we’ll look at how Artifactory and ProGet store your data, and how they handle back-ups for both small and large instances. We’ll also take a look at additional methods, including redundancy and disaster recovery.
How Data is Handled in Artifactory and ProGet
Artifactory acts as a repository that stores binaries and their metadata. By default, metadata is stored in a Derby database and includes checksums, repository details, paths, etc, with the binaries themselves stored elsewhere. Depending on the filestore setup, these files may be distributed across one or more locations. SHA1 checksum values are used as both file and folder names.
Metadata in ProGet is stored the same way, but in an SQL database. The package files themselves are stored individually on disk in a directory structure. This means that each package is directly accessible and identifiable within the file system. This simplifies management and access to individual packages as they are stored as separate items. Developers can easily locate and access specific packages without the need to deal with binaries or checksums.
In ProGet a package is a package. Packages by default are stored in the directory of a feed, created by combining the root storage path, package path, and feed ID. For example:
%ProgramData%\ProGet\PackagesRoot.nugetv2\F1
This format will also make importing, exporting, and migration much easier.
Backing Up Your Data
Artifactory handles it’s backups depending on the size of the instance:
- Small: Instances less than 500GB
- Large: Instances greater than 500GB
It offers a built-in backup tool for “small” instances. For “large” ones it recommends using external tools, such as Amazon’s S3 Versioning Service.
ProGet doesn’t differentiate between small and large instances. Realistically it doesn’t really make much sense to store your files locally. Software that backs up data by itself is prone to failure. Even JFrog appears to agree with us, which is why they only recommend their built-in backup for smaller instances.
As modern software, we feel it’s important to make it very easy for third-party tools to backup and restore your data.
Backing up a ProGet instance is very simple. It only involves backuping up three main components:
- Configuration file
- SQL Server database
- Package Files
Additional Ways to Keep Your Data Safe
In addition to backing up, JFrog recommends two additional approaches to securing your data:
- Redundant Storage
- Replication
Redundant Storage
In terms of Redundant Storage, Artifactory has built-in “File Sharding.” This takes the form of a Sharding Binary Provider that lets you manage your binaries in a sharded filestore.
ProGet does not offer such a built-in solution, considering it an outdated method. It’s regarded as risky, complex, and prone to failure. These days it’s best handled at hardware or operating system level, and has been a feature in operating systems for over a decade.
Even JFrog admits that creating too many shards causes performance impact. Instead, ProGet recommends using RAID to provide redundancy as a storage solution.
Replication
As for Replication, Artifactory employs this via its “Mission Control” tool. It copies artifacts from a “Master” instance to a “Target” instance by synchronizing each local repository on the Target instance with the corresponding Master instance repository.
As with Artifactory, ProGet also includes replication, and works much in the same way. It involves setting one instance as outgoing, much like a “Master”, and another as the incoming, like the “Target”. You can also set two feeds to mirror each other, and push/pull from each other to synchronize.
ProGet, the Modern Solution to Backing-up and Restoring
Like Artifactory, ProGet offers solutions to data security; modern solutions based on reliable, modern methods. Regardless of instance size we believe it’s best to always trust backups with actual backup solutions, rather than built-in features or software.
ProGet’s file system is designed for ease of backups. It stores simple individual files with no binary or checksum complications to deal with. It also uses modern solutions at operating system level for its redundant storage, instead of outdated built-in features.
This article is part of our eBook on Migrating from Artifactory to ProGet, walking you through everything from setting up repositories to managing your vulnerabilities, licenses and much more. Download your free copy of “Migrating from Artifactory to ProGet” today!