All Hands on Deck: P2P Distribution Combats Latency to Speed Delivery
With any huge task, more helpers make it go faster. That’s the solution large organizations increasingly seek for deploying large applications to hundreds of nodes. When others pitch in, many hands make light work.
JFrog is pleased to introduce Peer-to-Peer (P2P) Distribution to help deliver content to huge K8s cluster runtime environments efficiently and at scale. Available for Enterprise+ users, this cooperative method of delivery helps overcome download burst latency challenges that can occur from exhausting a single distribution server.
Deploy Docker Images to Kubernetes at Scale
Many large enterprises have turned to DevOps to help improve their software delivery speed through containerized microservices and Kubernetes. The Docker images generated can be very large and are typically served to clusters consisting of hundreds of nodes. These heavy volumes make challenging the handling of download bursts and consumption of these base images or layers used by the containers that are essential to the application. So how do you deliver updates to hundreds of nodes that need to download and update a new image or package simultaneously without exhausting the distribution node’s resources and incurring high latency?
JFrog P2P Distribution is ideal to handle short bursts of distribution of a large Docker image or package to hundreds or thousands of local endpoints to consume concurrently in a highly secure environment. The P2P solution dramatically increases the scalability of download bursts and increases deployment speed to clients by enabling faster distribution with reduced latency.
The peers stand between the Artifactory Edge node and Docker clients, as local processes that run on the client machines. The peers work together to transfer pieces of the Docker image and layers. This flattens the burst, utilizing the network more efficiently by reducing the demand on the Edge node and transferring the image faster.
Reduce Latency for Steady Response Time
The P2P architecture enables you to increase the number of concurrent downloads while reducing the load on the repository manager server – all without affecting the total download time. When looking at the curve below of download time versus the number of peers, using P2P flattens the curve throughout the graph; the download time remains constant as the number of peers increases.
P2P Architecture
The P2P architecture is based on a network of interconnected peers located between Artifactory and the Docker or HTTP clients. The P2P topology serves as an alternative to the traditional client/server file download process that requires performing a direct download request to Artifactory each time a client submits a pull or push request. The P2P architecture consists of the following main components:
- Tracker: An Artifactory service responsible for advertising and tracking available artifacts located on the peers and serves as the initial artifact seeder
- Peer: A dedicated JFrog standalone application deployed on every host which is interconnected with other peers. The peer communicates with the Tracker to download artifacts and to announce the availability of downloaded artifacts to the Tracker
- P2P Swarm: A collection of peers that form a decentralized network for artifact sharing within a cluster
- Client: A software client used for interacting with the peer. For example a Docker or an HTTP client
P2P Artifact Download Workflow
P2P enables users to download artifacts and packages via peers connected to the JFrog peer network. Peers serve both as suppliers and consumers of the packages, reducing the load on the Artifactory node by downloading packages directly from member peers in the network. The P2P artifact download process includes the following workflow:
- The Client requests the download of the Docker image from the local peer.
- The peer connects to the Artifactory Edge and is registered within the tracker that serves as an initial seeder. All download communication is SSL-encrypted using a certificate-chain created by Artifactory. The tracker sends a list of peers and Docker image metadata (checksum) from where the local peer can download the Docker image from. The local peer then requests pieces of the Docker image from other peers.
- As the local peer download files on behalf of a client, and assemble the files and validate the checksum. The peer then regularly posts information about pieces of their stored files to the tracker serving Artifactory. The tracker stores this information.
- Files cached on a peer can be downloaded concurrently by other peers, according to Artifactory user permissions. Multiple peers serve the file download process, to distribute the network load for fast and efficient transfers from Artifactory.
Give Deployment a Hand Up
Continuous delivery succeeds when obstacles to deployment are removed. JFrog’s Peer-to-Peer Distribution can help you overcome your delivery challenges to large infrastructure, by spreading the workaround to eliminate burst latency.
P2P Distribution is the latest technology in the JFrog Platform that enables you to scale your operations to infinity, whether your organization serves a global enterprise or a fast-growing startup. Try the JFrog Platform yourself with an Enterprise+ free trial.