Aller au contenu principal

🔧 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 :

🔐 É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.