Architecture CLI

La CLI Flowz est l’outil central de gestion de la plateforme, conçu pour faciliter les opérations de développement, déploiement et maintenance.

Structure technique

flowz/
├── run.sh              # Script principal de la CLI
├── scripts/
│   ├── backup.sh      # Système de sauvegarde automatisé
│   ├── check_services.sh    # Vérification des services
│   ├── check_production_env.sh  # Validation environnement
│   └── set_production_env.sh    # Configuration production
├── backups/
│   ├── mongodb/       # Sauvegardes MongoDB
│   └── redis/         # Sauvegardes Redis
├── docker-compose.yaml        # Configuration dev
└── docker-compose.prod.yaml   # Configuration prod

Composants principaux

Gestion des environnements

La CLI gère deux environnements distincts :

  • Développement : Configuration locale avec rechargement automatique
  • Production : Configuration optimisée avec monitoring avancé

Système de backup automatisé

Notre système de sauvegarde intègre plusieurs fonctionnalités avancées :

Sauvegarde multi-bases

  • MongoDB : Sauvegarde complète via mongodump avec compression gzip
  • Redis : Sauvegarde des données via fichier AOF avec compression

Gestion automatisée

  • Horodatage précis des sauvegardes (format : YYYYMMDD_HHMMSS)
  • Rotation automatique des anciennes sauvegardes
  • Durée de rétention configurable (par défaut : 7 jours)
  • Compression automatique des fichiers de sauvegarde

Structure des sauvegardes

backups/
├── mongodb/
│   └── backup_20240113_143000.gz
└── redis/
    └── backup_20240113_143000.aof.gz

Système de monitoring

Intégration d’un système de monitoring multi-niveaux :

{
  "system": {
    "cpu_usage": 45.2,
    "memory_usage": 62.8,
    "disk_usage": 38.5
  },
  "api": {
    "status": "healthy",
    "response_time": 0.245
  }
}

Système de logs

Gestion centralisée des logs avec différents niveaux :

  • Logs applicatifs
  • Logs système
  • Logs de déploiement

Architecture de déploiement

Sécurité

La CLI intègre plusieurs niveaux de sécurité :

  • Validation des configurations
  • Vérification des dépendances
  • Isolation des environnements
  • Chiffrement des sauvegardes
  • Gestion sécurisée des accès aux bases de données