Uploaded image for project: 'Project Quay'
  1. Project Quay
  2. PROJQUAY-9936

Quay Golang rewrite PoC

XMLWordPrintable

    • Icon: Epic Epic
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • None
    • None
    • Quay Golang rewrite PoC
    • Product / Portfolio Work
    • False
    • Hide

      None

      Show
      None
    • False
    • Not Selected
    • To Do
    • 100% To Do, 0% In Progress, 0% Done

      Overview

      This epic tracks the proof-of-concept implementation of a Go-based container registry to evaluate performance improvements over the current Python-based Quay registry. The PoC wraps the distribution/distribution library and is scoped exclusively to the read-only (RO) pull path.

      Goals

      • Primary Goal: Evaluate performance improvements by moving to Golang
      • Scope: Read-only pull path only (image pulls, manifest retrieval, blob downloads)
      • Non-Goals: Push operations, image management, user management, and other write operations are out of scope for this PoC

      Key Components (RO Pull Path Focus)

      • HTTP Server: Gorilla/mux-based routing for registry API v2 read operations
      • Distribution Integration: Wraps official distribution/distribution library for registry v2 API (GET operations)
      • Storage Drivers:
        ** Quay S3 driver with database-backed manifest reads and S3 signed URLs for blob access
        ** Quay Akamai driver for CDN-enhanced blob delivery with signed tokens
      • Database Layer: PostgreSQL integration for reading manifests, tags, and repository metadata
      • Caching System: Redis-based caching layer to accelerate repeated reads
      • Authentication: JWT-based token validation for pull authorization
      • Metrics & Monitoring: Prometheus metrics for performance benchmarking

      Performance Evaluation

      The PoC will be used to benchmark:
      * Request latency for manifest and blob retrieval
      * Throughput under concurrent pull operations
      * Resource utilization (CPU, memory) compared to Python implementation
      * CDN integration efficiency with Akamai

      Technical Stack

      • Language: Go
      • HTTP Router: gorilla/mux
      • Registry: distribution/distribution library
      • Database: PostgreSQL (read-only queries)
      • Cache: Redis
      • Metrics: Prometheus

              syahmed@redhat.com Syed Ahmed
              syahmed@redhat.com Syed Ahmed
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: