Microservizi
Questa sezione raccoglie la documentazione dei servizi orchestrati tramite Docker Compose.
Profili Docker Compose
Nel progetto i servizi applicativi sono gestiti con profiles (es. tickerscanner, scheduler, decision-engine).
Variabile principale per abilitare/disabilitare i profili:
COMPOSE_PROFILES
Esempio:
COMPOSE_PROFILES="tickerscanner,scheduler" docker compose -f docker-compose.paper.yml --env-file .env up -d
Nota operativa:
- Lo script
deploy-with-profiles.shcalcola i profili da DB (service_flags) in base all'ambiente (PAPER/LIVE) e poi impostaCOMPOSE_PROFILES.
Avvio e spegnimento servizi
Avvio stack completo (compose file selezionato)
docker compose -f docker-compose.paper.yml --env-file .env up -d
Avvio solo alcuni profili
COMPOSE_PROFILES="cachemanager,decision-engine,tickerscanner" \
docker compose -f docker-compose.paper.yml --env-file .env up -d
Avvio singolo servizio
docker compose -f docker-compose.paper.yml --env-file .env up -d tickerscanner
Stop singolo servizio
docker compose -f docker-compose.paper.yml --env-file .env stop tickerscanner
Stop e rimozione stack
docker compose -f docker-compose.paper.yml --env-file .env down
Rebuild / ricompilazione
Rebuild singolo servizio (da sorgente)
docker compose -f docker-compose.local.yml --env-file .env build --no-cache tickerscanner
docker compose -f docker-compose.local.yml --env-file .env up -d --force-recreate tickerscanner
Rebuild tutti i servizi (da sorgente)
docker compose -f docker-compose.local.yml --env-file .env build --no-cache
docker compose -f docker-compose.local.yml --env-file .env up -d --force-recreate
In ambiente paper/live con immagini versionate
./deploy-with-profiles.sh PAPER
# oppure
./deploy-with-profiles.sh LIVE
Lo script effettua pull/refresh delle immagini e riallinea i servizi in base ai profili attivi.
Organizzazione directory e Dockerfile
Pattern usato nel repository:
- ogni microservizio ha una directory dedicata;
- nella root del servizio e presente un
Dockerfile; - i file compose (
docker-compose.local.yml,docker-compose.paper.yml) referenziano immagine/build e variabili env.
Esempio struttura:
trading-system/
authService/Dockerfile
datahub/Dockerfile
cacheManager/Dockerfile
decision-engine/Dockerfile
market-data-service/Dockerfile
redisWsBridge/Dockerfile
ibkr-bridge/Dockerfile
ibkr-keepalive/Dockerfile
alertingService/Dockerfile
scheduler/Dockerfile
tickerScanner/Dockerfile
serviceControlPlane/Dockerfile
docker-compose.local.yml
docker-compose.paper.yml
Gruppi documentati
- Microservizi a supporto: Traefik, MySQL, Redis.
- Microservizi specifici: servizi applicativi sviluppati nel progetto (incluso datahub).