ARTIFACTORY: Replications in Artifactory Edge

Anand Das
2023-01-22 11:06

To understand how replication works for Artifactory Edge nodes, we must first understand the purpose and uses of Artifactory Edge.

Artifactory Edge is a special edition of Artifactory that exists specifically to provision releases to runtime environments. It is intended for use with JFrog Distribution, which allows users to create release bundles and efficiently publish release Artifacts to Edge Nodes. 

Release bundles are designed to be immutable.

In order to efficiently distribute release artifacts, Distribution and Artifactory use replication to push the Artifacts to Edge nodes.

To keep the distribution model intact, there are limitations to how replication works on an Edge Node as compared to a full Artifactory Pro installation.

The Replicator

In order to properly use JFrog Distribution and Artifactory Edge Nodes, customers using these products should enable the Replicator. This is an additional microservice that optimizes the replication process when distributing Release Bundles. More information can be found below.

Pull Replication

Pull replication refers to a replication process unique to Artifactory remote repositories. When configured, pull replication allows a remote repository to pre-populate its cache with Artifacts available in a repository on another Artifactory instance.

Pull Replication is not supported at all on Artifactory Edge Nodes.

In order to fit the distribution model, Artifactory Edge Nodes can only create Smart Remote Repositories. These are special remote repositories that proxy other Artifactory Repositories, which allows for keeping certain properties synchronized with cached artifacts upstream.

The use of Smart Remote Repositories allows customers who do not want to create full release bundles to avoid the overhead of doing so.

Because customers would still want to curate which artifacts would actually be available for release in this scenario, it doesn’t make sense to synchronize the full contents of these repositories via replication, thus this feature is not supported on Edge nodes.

Push Replication

Push replication is a type of replication that occurs between local repositories on two different Artifactory instances. When push replication is configured, the Artifactory instance on which the job has been configured pushes the contents of the repository to be replicated to the destination repository.

The distribution of release bundles to edge nodes is an optimized form of push replication performed by the replicator. Normal push replication directly from a local repository is not supported for edge nodes.

Similarly to reasons for pull replication, artifacts that are pushed to Edge nodes are curated for release, as such, it does not make sense to push entire repositories to edge nodes.