4NK_env/IA_agents/deployment-architecture.md
2025-09-22 15:45:47 +00:00

5.9 KiB

Architecture de Déploiement LeCoffre Node

📋 Vue d'ensemble

Ce document définit l'architecture de déploiement optimale pour LeCoffre Node, basée sur le principe de séparation des responsabilités et l'ordre de démarrage par phases.

🏗️ Architecture par Phases

Principe Fondamental

Les services sont organisés en phases pour optimiser le démarrage et éviter les dépendances inutiles :

  1. Services applicatifs : Fonctionnent indépendamment du monitoring
  2. Services de monitoring : Observent sans impacter les applications
  3. Dépendances : Seules les dépendances métier sont respectées

Phase 1: Services de Base (Parallèle)

Ces services peuvent démarrer en parallèle car ils sont indépendants :

Service Port Dépendance Script
tor 9050 Aucune start-with-progress.sh
sdk_storage 8081 Aucune start-with-progress.sh
sdk_signer 3001 Aucune start-with-progress.sh
status-api 3006 Aucune start-with-progress.sh

Phase 2: Services Blockchain (Séquentiel)

Ces services suivent la chaîne blockchain :

Service Port Dépendance Script
bitcoin 8332 tor (healthy) start-with-progress.sh
blindbit 8000 bitcoin (healthy) start-with-progress.sh
sdk_relay 8090-8091 blindbit (healthy) start-with-progress.sh

Phase 3: Services Applicatifs (Séquentiel)

Ces services suivent la chaîne applicative :

Service Port Dépendance Script
ihm_client 3003 sdk_relay + sdk_storage start-with-progress.sh

Phase 4: Services de Monitoring (Séquentiel, Indépendant)

Ces services sont indépendants des applications :

Service Port Dépendance Script
loki 3100 Aucune start-monitoring.sh
promtail 9080 loki (healthy) start-monitoring.sh
grafana 3005 loki + promtail (healthy) start-monitoring.sh

Phase 5: Services Utilitaires

Services de maintenance et surveillance :

Service Port Dépendance Script
watchtower 8080 Aucune start-with-progress.sh

🔧 Scripts de Déploiement

Scripts OBLIGATOIRES

./scripts/start-with-progress.sh

Usage : Démarrage complet avec phases Fonction : Démarre les services applicatifs dans l'ordre correct Phases : 1, 2, 3, 5

./scripts/start-monitoring.sh

Usage : Démarrage monitoring indépendant Fonction : Démarre les services de monitoring dans l'ordre correct Phases : 4 uniquement

./scripts/monitor-progress.sh

Usage : Aperçu des services Fonction : Affiche le statut de tous les services

./scripts/watch-progress.sh

Usage : Surveillance temps réel Fonction : Surveillance continue avec rafraîchissement

./scripts/logs-with-progress.sh

Usage : Logs avec progression Fonction : Affiche les logs avec informations de progression

Scripts INTERDITS

# ❌ JAMAIS utiliser directement
docker compose --env-file .env.master up -d
docker compose up -d
docker compose start

📊 Flux de Déploiement

Déploiement Complet

# 1. Démarrage services applicatifs
./scripts/start-with-progress.sh

# 2. Démarrage monitoring indépendant
./scripts/start-monitoring.sh

# 3. Surveillance
./scripts/monitor-progress.sh

Déploiement Monitoring Seul

# Redémarrage monitoring sans impacter les applications
./scripts/start-monitoring.sh

Surveillance Continue

# Surveillance temps réel
./scripts/watch-progress.sh

# Logs avec progression
./scripts/logs-with-progress.sh bitcoin -p -f

🎯 Avantages de cette Architecture

1. Séparation des Responsabilités

  • Services applicatifs : Fonctionnent même sans monitoring
  • Services de monitoring : Peuvent être redémarrés sans impact
  • Dépendances claires : Seules les dépendances métier

2. Optimisation du Démarrage

  • Phase 1 : Services indépendants en parallèle
  • Phases 2-3 : Chaîne de dépendances respectée
  • Phase 4 : Monitoring indépendant
  • Phase 5 : Services utilitaires

3. Maintenance Facilitée

  • Redémarrage monitoring : Sans impact sur les applications
  • Redémarrage applications : Sans impact sur le monitoring
  • Diagnostic : Scripts spécialisés par fonction

4. Robustesse

  • Isolation : Pannes de monitoring n'impactent pas les applications
  • Récupération : Redémarrage sélectif possible
  • Monitoring : Surveillance continue et détaillée

🔍 Points d'Attention

Dépendances Critiques

  1. bitcoinblindbitsdk_relay : Chaîne blockchain
  2. sdk_relaylecoffre-front : Chaîne applicative
  3. lokipromtailgrafana : Chaîne monitoring

Healthchecks

  • Tous les services ont des healthchecks informatifs
  • Les dépendances attendent que les services soient "healthy"
  • Timeouts adaptés selon la criticité

Variables d'Environnement

  • Configuration centralisée dans .env.master
  • Tous les scripts utilisent --env-file .env.master
  • Pas de fichiers .env dispersés

📝 Validation

Tests de Déploiement

  1. Services applicatifs : URLs publiques accessibles
  2. Services de monitoring : Dashboards Grafana alimentés
  3. Dépendances : Chaîne de démarrage respectée
  4. Performance : Temps de démarrage optimisé

Tests de Maintenance

  1. Redémarrage monitoring : Applications non impactées
  2. Redémarrage applications : Monitoring non impacté
  3. Pannes sélectives : Récupération isolée
  4. Surveillance : Détection et diagnostic facilités

Document créé le 2025-09-21 Version : 1.0 Architecture : LeCoffre Node Deployment