- 9. Sep
JFrog Distribution is an on-premise, centralized platform that lets you provision software release distribution. It is a core part of JFrog Enterprise+, managing Release Bundles and their distribution processes, including release content, permission levels, and target destinations.
Distribution provides a secure and structured platform to distribute release binaries to multiple remote locations and update them as new release versions are produced. As part of the release flow, release bundles are verified by the source destination to ensure that they are signed correctly and safe to use.
JFrog Distribution securely manages the distribution of your software releases offering the following benefits:
- Structured platform to distribute release binaries as a single coherent release bundle
- Secure delivery and distribution by signing the release bundle
- Efficient network utilization by optimizing replication, dramatically reducing network load and release bundle synchronization time from source Artifactory to target instance or Edge node.
- Auditing and traceability by tracking all changes associated with a release bundle
This chart will do the following:
- Deploy Mongodb database.
- Deploy a Redis.
- Deploy a distributor.
- Deploy a distribution.
- A running Kubernetes cluster
- Dynamic storage provisioning enabled
- Default StorageClass set to allow services using the default StorageClass for persistent storage
- A running Artifactory Enterprise Plus
- Kubectl installed and setup to use the cluster
- Helm installed and setup to use the cluster (helm init)
- JFrog Distribution requires the following hardware:
- Processor: 8 cores
- RAM Memory: 8 GB
- Storage: 50 GB
JFrog Distribution supports any non-Windows platform that can run Docker v1.11 and above, and in addition, has been tested and verified to run as a non-Docker installation on the following 64-bit flavors of Linux:
- Ubuntu 14.04
- Centos 7.x
- Debian 8.x
- Red Hat 6.x
- Red Hat 7.x
The Distribution Flow
The high-level distribution flow has two main steps:
Creating a Release Bundle
A release bundle is created by calling the Create Release Bundle REST API endpoint on JFrog Distribution. This call specifies a variety of parameters including the files comprising the release bundle, and different properties associated with it. Since a release bundle is immutable, any file included in a release bundle cannot be deleted from Artifactory. JFrog Distribution collects the required metadata about the artifacts specified in the request (as an AQL query).
Distributing a Release Bundle
A release bundle is distributed by calling the Distribute Release Bundle REST API endpoint on JFrog Distribution. The distribution is itself split into three steps:
Start a distribution transaction
In this step, JFrog Distribution queries JFrog Mission Control for details on the distribution target nodes. It then primes the target nodes to receive the distributed packages by providing information about distributed files such as their checksum, and providing a GPG key to validate the authenticity of the bundle as a whole.
Transfer files with smart replication
In this step, JFrog Distribution invokes the Replicator on Artifactory which distributes files over to the target node by replicating them.
End a distribution transaction
In this step, JFrog Distribution notifies the Edge node that the transaction is complete. In turn, the Edge node validates authenticity of the transferred bundle using the GPG key provided when the transaction started. It then validates the integrity of the transferred files by validating their checksum and hosts them in the correct place as specified in the release bundle.