Architettura della piattaforma
Panoramica
CodeRS è costruita su un'architettura a microservizi distribuiti. Ogni componente è scalabile indipendentemente e comunica tramite event streaming (Kafka).
┌───────────────────────────────────────────────────┐
│ API Gateway │
│ (rate-limit, auth, routing) │
└────────────────────────┬──────────────────────────┘
│
┌────────────────┼────────────────┐
│ │ │
┌───────▼──────┐ ┌───────▼──────┐ ┌──────▼───────┐
│ Build Svc │ │ Deploy Svc │ │ Observe Svc │
│ (CI runner) │ │ (edge CDN) │ │ (logs/APM) │
└──────────────┘ └──────────────┘ └──────────────┘
Componenti principali
API Gateway
Punto d'ingresso unico per tutte le richieste. Si occupa di:
- Autenticazione JWT e API key
- Rate limiting per tenant
- Routing verso i microservizi
Build Service
Gestisce l'intero ciclo di build:
- Checkout del codice sorgente
- Analisi del manifest
coders.yaml - Esecuzione dei test in parallelo
- Creazione dell'artefatto di build (OCI image)
Deploy Service
Distribuisce l'artefatto su infrastruttura edge con zero downtime grazie al rolling deploy.
Observe Service
Raccoglie metriche, log e trace da ogni deployment. Basato su OpenTelemetry.
Stack tecnologico
| Layer | Tecnologia |
|---|---|
| Runtime | containerd + Firecracker microVM |
| Networking | WireGuard mesh |
| Storage | S3-compatible (MinIO) |
| Queue | Apache Kafka |
| Cache | Redis Cluster |
| DB | CockroachDB |