Aller au contenu principal

🚀 Déploiement Commerce Tracking

Commerce Tracking utilise une architecture microservices containerisée avec déploiement modulaire permettant de démarrer les services indépendamment selon les besoins.

🎯 Objectifs du déploiement​

✅ Objectifs atteints​

  • 6 services déployés de manière modulaire et indépendante
  • Communication NATS pour la scalabilité et la résilience
  • Point d'entrée unique via API Gateway
  • Infrastructure haute disponibilité avec cluster NATS
  • Déploiement simplifié avec scripts automatisés

🏗️ Architecture de déploiement​

Composants principaux​

🌐 Point d'entrée​

  • API Gateway (Port 3005) - Seul service HTTP exposé publiquement
  • Point d'entrée unique pour toutes les requêtes clients
  • Routage vers les microservices internes via NATS

🔧 Microservices NATS​

ServiceRôleQueue NATS
Auth ServiceAuthentification et autorisationauth_queue
Admin ServiceAdministration systèmeadmin-service
TradeFlow ServiceGestion des flux commerciauxtradeflow_queue
Model ServiceGestion des modèles de donnéesmodel_queue

🗄️ Infrastructure​

ComposantPortRôle
MySQL Database3340Base de données principale
Adminer8080Interface d'administration DB
NATS Server4222Message broker

📊 Diagramme d'architecture​

┌─────────────────┐    HTTP     ┌─────────────────┐
│ Client Web │ ──────────► │ API Gateway │
└─────────────────┘ │ (Port 3005) │
└─────────────────┘
│
│ NATS
▼
┌─────────────────┐
│ NATS Server │
│ (Port 4222) │
└─────────────────┘
│
┌────────────────────┼────────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Auth Service │ │TradeFlow Svc │ │ Admin Service│
│ (NATS) │ │ (NATS) │ │ (NATS) │
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
└────────────────────┼────────────────────┘
│
▼
┌─────────────────┐
│ Model Service │
│ (NATS) │
└─────────────────┘
│
▼
┌─────────────────┐
│ MySQL Database │
│ (Port 3340) │
└─────────────────┘

🎯 Stratégie de déploiement modulaire​

Principe​

Chaque service peut être déployé, mis à jour ou redémarré indépendamment sans affecter les autres composants.

Avantages​

  • ✅ Développement flexible - Travail isolé sur chaque service
  • ✅ Débogage simplifié - Redémarrage ciblé en cas de problème
  • ✅ Scalabilité - Déploiement sur différentes machines
  • ✅ Maintenance - Mises à jour sans interruption globale
  • ✅ Ressources optimisées - Démarrage sélectif selon les besoins

📁 Structure des fichiers​

tradeflow-server/
├── 🗄️ db-docker-compose.yml # MySQL + Adminer
├── 📡 nats-docker-compose.yml # NATS Server
├── 🌐 gateway-docker-compose.yml # API Gateway
├── 🔐 auth-docker-compose.yml # Auth Service
├── ⚙️ admin-docker-compose.yml # Admin Service
├── 💰 tradeflow-docker-compose.yml # TradeFlow Service
├── 📦 model-docker-compose.yml # Model Service
├── 📄 init.sql # Script d'initialisation DB
└── 📚 Documentation # Cette documentation

🔧 Configuration technique​

Technologies utilisées​

  • Runtime : Node.js 18 Alpine
  • Framework : NestJS
  • Base de données : MySQL 8.0
  • Communication : NATS (Message Broker)
  • ORM : TypeORM
  • Containerisation : Docker + Docker Compose

Optimisations Docker​

  • Multi-stage builds - Images optimisées pour la production
  • Cache layers - Réutilisation optimale du cache Docker
  • Volumes de développement - Hot reload pour le développement

Réseau et Communication​

  • Réseau Docker : bridge par défaut
  • Communication externe : HTTP via API Gateway uniquement
  • Communication interne : NATS entre microservices
  • Persistance : Volumes Docker pour MySQL

🚀 Prochaines étapes​

  1. Commandes Docker - Guide des commandes Docker Compose
  2. Déploiement Manuel - Procédure de déploiement étape par étape
  3. Monitoring - Surveillance des services
  4. Troubleshooting - Résolution des problèmes courants

Note : Cette architecture est conçue pour être évolutive et maintenable, permettant une croissance future du système selon les besoins métier.