🚀 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
| Service | Rôle | Queue NATS |
|---|---|---|
| Auth Service | Authentification et autorisation | auth_queue |
| Admin Service | Administration système | admin-service |
| TradeFlow Service | Gestion des flux commerciaux | tradeflow_queue |
| Model Service | Gestion des modèles de données | model_queue |
🗄️ Infrastructure
| Composant | Port | Rôle |
|---|---|---|
| MySQL Database | 3340 | Base de données principale |
| Adminer | 8080 | Interface d'administration DB |
| NATS Server | 4222 | Message 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
- Commandes Docker - Guide des commandes Docker Compose
- Déploiement Manuel - Procédure de déploiement étape par étape
- Monitoring - Surveillance des services
- 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.