Search


Cloud customer?
Upgrade in MyJFrog >


Working with an older version?

JFrog Artifactory 6.x
JFrog Xray 2.x
JFrog Mission Control 3.x
JFrog Distribution 1.x
JFrog Enterprise+ (Pre-Platform Release)




Overview

The JFrog Platform Deployment (JPD) defines a single logical unit shared by all JFrog products. It must be comprised of one JFrog Artifactory service (standalone or HA) and optional additional external services. The below diagram represents a complete JPD containing all services in the JFrog Enterprise+ platform.

Each service should be installed separately according to the installation guide.

Page Contents

Each JFrog product can be deployed with 1 or more nodes. Each node has its microservices and a local router (service discovery and API gateway). All microservices of the same product are deployed on the same node/host.

The JFrog Artifactory service contains the following microservices:

  • Artifactory - The application server
  • Router - The central hub for communication between all the microservices, and cross-product.
  • Access - The authentication server and service registry. Used to manage Users, Groups, Permissions and Access Tokens for all products in the JPD
  • Event - The events distribution mechanism for JFrog products. Distributes Webhook events to external systems.
  • Frontend - The application user interface (UI for the entire JPD)
  • Metadata - The Components metadata server. Serves the Packages screen in the JPD UI. 
  • Replicator - The replication engine (available with an Enterprise+ license)

Additional external JFrog services are:

  • Xray
  • Mission Control
  • Distribution
  • Pipelines

Outside the JPD:

  • Load Balancer - The entry point to the unit, should be set up by the customer and to communicate with  Artifactory and Artifactory's Router service (as demonstrated in the diagram above).
  • Browser / JFrog CLI / Other Clients - External client(s) that interact with JFrog products in the JPD. Set up to only communicate with the LB.



JFrog Xray Service

The Xray service contains the following microservices:

  1. Indexer - Responsible for the indexing process, including:
    • Recursively extracting artifacts and builds
    • Collecting artifact metadata from accompanying files
    • Building an artifact components graph representation
  2. Persist - Responsibilities include:
    • Matching the given components graph with the public component information
    • Completing component naming
    • Storing graph data and component metadata in PostgreSQL
  3. Analysis - Responsible for enriching component metadata such as vulnerabilities, licenses and versions.
  4. Server - Responsibilities include:
    • Generating violations by matching analysis data with watches and policies
    • Hosting the API and UI endpoints
    • Running scheduled jobs such as the database synchronization process
  5. Router - Responsible for communication between all the microservices and cross-product.

JFrog Mission Control Service

The Mission Control service contains the following microservices:

  1. Mission Control - Core Mission Control service
  2. Insight -  Handles insight related data management and API functions
  3. Scheduler - Manages scheduling for different internal Mission Control tasks
  4. Executor - Executes tasks to collect data from services
  5. Router - Responsible for communication between all the microservices and cross-product.

JFrog Distribution Service

The Distribution service contains the following microservices:

  1. Distribution - Responsibilities include:
    • Hosting the API and UI endpoints
    • Sending distribution tasks via Redis to the Distributor
    • Syncing the other Distribution nodes with changes
  2. Distributor - Responsibilities include:
    • Processing distribution tasks
    • Communicate with Artifactory edge nodes
    • Communicate with the source Artifactory
  3. Router - Responsible for communication between all the microservices and cross-product.

JFrog Pipelines Service

The Pipelines service contains the following microservices:

  1. API - Responsible for hosting the API endpoints.
  2. Cron - Responsible for running internal jobs on intervals, including timing out steps and calculating statistics.
  3. HookHandler - Processes resource webhooks received by API.
  4. Logup - Transfers console logs from steps from the database to Artifactory as steps complete.
  5. Marshaller - Responsible for starting build nodes in dynamic node pools.
  6. Nexec - Responsible for running scripts on auto-initialized build nodes.
  7. PipelineSync - Reads the YML files in the pipeline source and updates the pipelines and resources with any changes.
  8. RunTrigger - Responsible for creating runs when a run is triggered manually or through a resource update.
  9. StepTrigger - Determines which waiting steps are able to run and queues them to be picked up by the build nodes.
  10. WWW - Hosts Pipelines UI pages that are supplemental to the JFrog Platform, including Pipeline History and Run Logs.
  11. Router - Responsible for communication between all the microservices and cross-product.
  • No labels
Copyright © 2020 JFrog Ltd.