Harbor / Nexus / Artifactory — Advanced
High-Availability Deployment
A single-replica Harbor instance is a single point of failure for every team's ability to push or pull images cluster-wide — a real HA deployment scales each Harbor component independently, backed by externally-managed, already-HA data stores rather than Harbor's own bundled (single-instance-oriented) PostgreSQL/Redis:
The specific thing worth being deliberate about: Harbor's own bundled PostgreSQL and Redis (the defaults in a basic install) are fine for evaluation or single-instance use, but aren't themselves highly available — a genuine HA Harbor deployment needs those backing stores to be independently HA (a managed PostgreSQL cluster, a Redis Sentinel/Cluster setup), or scaling the Harbor application components alone doesn't actually remove the single point of failure, it just moves it to the database layer.
Enterprise Auth Integration — OIDC and LDAP
Managing Harbor-local user accounts separately from an organization's existing identity provider doesn't scale past a small team — Harbor supports both OIDC and LDAP/AD integration, so access is managed through the organization's existing identity system rather than a parallel Harbor-specific one:
Group-based RBAC mapping (via the groups scope) is what makes this actually useful at organizational scale — a user's project-level Harbor permissions can be driven directly by their IdP group membership, so onboarding/offboarding a user from Harbor access happens automatically as part of the org's existing identity lifecycle process, rather than needing a separate manual step in Harbor specifically.
API Automation at Scale — Project Provisioning as Code
Manually creating a project, configuring its RBAC, scan policy, and retention rules through the UI doesn't scale once onboarding new teams/projects is a routine, frequent event — the same "self-service platform" logic from Platform Engineering's golden-path pattern applies directly here, using Harbor's Terraform provider (or direct API calls) to make project provisioning declarative and repeatable:
This is the direct application of "provision infrastructure via code review, not manual UI clicks" to Harbor specifically — a new project's RBAC, quota, and scan policy are all reviewable in a pull request before being applied, rather than configured once by hand and undocumented afterward.
P2P Image Distribution — Preheat for Large-Scale Pulls
A large cluster (hundreds of nodes) all pulling the same new image simultaneously after a deploy can genuinely saturate a single registry's network bandwidth — preheat, via Harbor's Dragonfly P2P integration, pre-distributes an image across nodes using peer-to-peer transfer rather than every node pulling independently from the central registry:
The practical effect at real scale: instead of N nodes each independently pulling the full image from Harbor (linear load on the registry as node count grows), Dragonfly-based preheat has nodes share chunks of the image with each other P2P-style, so registry load stays roughly flat regardless of how many nodes are pulling — a meaningful difference for a large cluster's rollout speed and the central registry's bandwidth cost.
Disaster Recovery for Harbor Itself
Harbor's own DR story has two genuinely separate concerns: the database (project/user/RBAC/scan-result metadata — PostgreSQL) and the image content (the actual layer data — object storage or the registry's own storage backend). A DR plan needs both covered, and they typically need different backup mechanisms — standard PostgreSQL backup/restore tooling for the database, and either object-storage-native replication (if using S3/GCS as the registry backend) or Harbor's own replication rules (covered in Overview/Intermediate) targeting a genuinely separate DR Harbor instance for the image content. A DR plan that backs up only the database and assumes image content is "just re-pullable from somewhere" is a real, common gap — if the primary registry's storage is lost, there may be no other copy of images that were only ever pushed to that one instance.

