-
Epic
-
Resolution: Unresolved
-
Undefined
-
None
-
None
-
None
-
Quay Golang rewrite PoC
-
Product / Portfolio Work
-
False
-
-
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