🔧 Déploiement Manuel
Guide détaillé pour le déploiement manuel de Commerce Tracking étape par étape.
📋 Prérequis
Vérification de l'environnement
# Vérifier Docker
docker --version
docker-compose --version
# Vérifier l'espace disque disponible
df -h
# Vérifier la mémoire disponible
free -h
Préparation de l'environnement
# Créer un répertoire pour le projet
mkdir -p /opt/commerce-tracking
cd /opt/commerce-tracking
# Cloner le projet (si applicable)
# git clone <repository-url> .
🗄️ Étape 1 : Infrastructure de base
1.1 Base de données MySQL
# Démarrer MySQL avec Adminer
docker-compose -f db-docker-compose.yml up -d
# Vérifier le démarrage
docker logs freetrade-mysql
# Tester la connexion
docker exec -it freetrade-mysql mysql -u root -p -e "SHOW DATABASES;"
Configuration attendue :
- Port : 3340
- Utilisateur : root
- Base de données : tradeflow_db
- Adminer accessible sur : http://localhost:8080
1.2 NATS Server
# Démarrer NATS
docker-compose -f nats-docker-compose.yml up -d
# Vérifier le démarrage
docker logs freetrade-nats
# Tester la connexion NATS
docker exec -it freetrade-nats nats server info
Configuration attendue :
- Port : 4222
- Monitoring : http://localhost:8222
- Cluster : Mode standalone
🔐 Étape 2 : Services d'authentification
2.1 Auth Service
# Démarrer le service d'authentification
docker-compose -f auth-docker-compose.yml up --build -d
# Vérifier les logs
docker logs freetrade-auth-service
# Tester la connexion NATS
docker exec -it freetrade-auth-service sh -c "echo 'test' | nats pub auth_queue"
Vérifications :
- ✅ Service démarré sans erreurs
- ✅ Connexion NATS établie
- ✅ Base de données accessible
- ✅ Logs sans erreurs critiques
2.2 Admin Service
# Démarrer le service d'administration
docker-compose -f admin-docker-compose.yml up --build -d
# Vérifier les logs
docker logs freetrade-admin-service
# Tester la communication interne
docker exec -it freetrade-admin-service sh -c "echo 'ping' | nats pub admin-service"
💰 Étape 3 : Services métier
3.1 TradeFlow Service
# Démarrer le service TradeFlow
docker-compose -f tradeflow-docker-compose.yml up --build -d
# Vérifier les logs
docker logs freetrade-tradeflow-service
# Tester les endpoints internes
docker exec -it freetrade-tradeflow-service sh -c "echo 'health_check' | nats pub tradeflow_queue"
3.2 Model Service
# Démarrer le service Model
docker-compose -f model-docker-compose.yml up --build -d
# Vérifier les logs
docker logs freetrade-model-service
# Tester la communication
docker exec -it freetrade-model-service sh -c "echo 'model_check' | nats pub model_queue"
🌐 Étape 4 : API Gateway
4.1 Démarrage du Gateway
# Démarrer l'API Gateway (en dernier)
docker-compose -f gateway-docker-compose.yml up --build -d
# Vérifier les logs
docker logs freetrade-gateway-api
# Tester l'endpoint de santé
curl http://localhost:3005/health
Vérifications finales :
- ✅ API Gateway accessible sur le port 3005
- ✅ Health check répond correctement
- ✅ Tous les services NATS connectés
- ✅ Base de données accessible
🔍 Vérification complète
Test de connectivité
# Vérifier tous les services
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
# Test des endpoints
curl -s http://localhost:3005/health | jq .
curl -s http://localhost:8080 | grep -i adminer
Test de communication NATS
# Tester la communication entre services
docker exec -it freetrade-gateway-api sh -c "echo 'test_communication' | nats pub auth_queue"
docker exec -it freetrade-auth-service sh -c "nats sub auth_queue --count=1"
Test de base de données
# Vérifier les tables créées
docker exec -it freetrade-mysql mysql -u root -p -e "USE tradeflow_db; SHOW TABLES;"
# Vérifier les données d'initialisation
docker exec -it freetrade-mysql mysql -u root -p -e "USE tradeflow_db; SELECT COUNT(*) FROM users;"
📊 Configuration post-déploiement
Variables d'environnement
# Vérifier les variables d'environnement
docker exec -it freetrade-gateway-api env | grep -E "(NATS|DATABASE|JWT)"
# Vérifier la configuration NATS
docker exec -it freetrade-auth-service env | grep NATS
Permissions et sécurité
# Vérifier les permissions des volumes
docker exec -it freetrade-mysql ls -la /var/lib/mysql
# Vérifier la sécurité des containers
docker exec -it freetrade-gateway-api whoami
🚨 Résolution des problèmes courants
Problème : Service ne démarre pas
# Vérifier les logs détaillés
docker logs freetrade-auth-service --tail 50
# Vérifier les ressources système
docker stats freetrade-auth-service
# Redémarrer avec rebuild
docker-compose -f auth-docker-compose.yml down
docker-compose -f auth-docker-compose.yml up --build -d
Problème : Erreur de connexion NATS
# Vérifier le statut NATS
docker logs freetrade-nats
# Tester la connectivité réseau
docker exec -it freetrade-auth-service ping freetrade-nats
# Redémarrer NATS
docker-compose -f nats-docker-compose.yml restart
Problème : Base de données inaccessible
# Vérifier MySQL
docker logs freetrade-mysql
# Tester la connexion
docker exec -it freetrade-mysql mysql -u root -p -e "SELECT 1;"
# Vérifier les volumes
docker volume ls | grep mysql
📈 Optimisations de production
Configuration des ressources
# Exemple d'optimisation dans docker-compose.yml
services:
gateway-api:
deploy:
resources:
limits:
memory: 512M
cpus: '0.5'
reservations:
memory: 256M
cpus: '0.25'
Monitoring et logs
# Configurer la rotation des logs
docker-compose -f gateway-docker-compose.yml up -d --log-driver=json-file --log-opt max-size=10m --log-opt max-file=3
Sauvegarde
# Sauvegarder la base de données
docker exec freetrade-mysql mysqldump -u root -p tradeflow_db > backup_$(date +%Y%m%d_%H%M%S).sql
# Sauvegarder les configurations
tar -czf config_backup_$(date +%Y%m%d).tar.gz *.yml .env
Note : Ce déploiement manuel permet un contrôle total sur chaque étape. Pour un déploiement automatisé, utilisez les scripts fournis ou un système CI/CD.