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.