- Amélioration du script startup-sequence.sh avec validation des dépendances externes - Ajout de healthchecks robustes dans docker-compose.yml - Documentation complète des améliorations et procédures - Règles Cursor pour éviter la prolifération de scripts - Validation automatique de dev3.4nkweb.com:9090 avant démarrage - Redémarrage intelligent après réparation des services externes
186 lines
5.3 KiB
Markdown
186 lines
5.3 KiB
Markdown
# Améliorations du Démarrage et Déploiement
|
|
|
|
## Retour d'Expérience - Problèmes Identifiés
|
|
|
|
### Problèmes Rencontrés
|
|
1. **Dépendances externes non vérifiées** : Le service signer distant `dev3.4nkweb.com:9090` n'était pas accessible
|
|
2. **Services démarrés sans validation** : `lecoffre-back` tentait de se connecter à un service indisponible
|
|
3. **Healthchecks insuffisants** : Pas de vérification des dépendances externes
|
|
4. **Diagnostic manuel requis** : Identification des problèmes par tests manuels
|
|
5. **Redémarrage manuel nécessaire** : Services non redémarrés automatiquement après réparation
|
|
|
|
### Impact
|
|
- **Temps de diagnostic** : ~30 minutes pour identifier le problème
|
|
- **Services non fonctionnels** : `lecoffre-back` en erreur de connexion
|
|
- **Expérience utilisateur dégradée** : Application non accessible
|
|
|
|
## Améliorations Implémentées
|
|
|
|
### 1. Script de Démarrage Amélioré
|
|
|
|
**Fichier** : `scripts/startup-sequence.sh` (amélioré)
|
|
|
|
**Nouvelles fonctionnalités ajoutées** :
|
|
- ✅ Test de connectivité vers `dev3.4nkweb.com:9090`
|
|
- ✅ Validation des URLs publiques
|
|
- ✅ Redémarrage intelligent après réparation
|
|
- ✅ Monitoring continu des services
|
|
- ✅ Logs colorés et informatifs
|
|
- ✅ Gestion des arguments améliorée
|
|
|
|
**Utilisation** :
|
|
```bash
|
|
# Démarrage complet avec validation (défaut)
|
|
./scripts/startup-sequence.sh start
|
|
|
|
# Redémarrage intelligent après réparation
|
|
./scripts/startup-sequence.sh restart
|
|
|
|
# Validation des dépendances externes uniquement
|
|
./scripts/startup-sequence.sh validate
|
|
|
|
# Monitoring continu
|
|
./scripts/startup-sequence.sh monitor
|
|
```
|
|
|
|
### 2. Healthchecks Améliorés dans Docker Compose
|
|
|
|
**Améliorations** :
|
|
- ✅ `lecoffre-back` : Healthcheck avec dépendance sur `sdk_relay`
|
|
- ✅ `lecoffre-front` : Healthcheck avec dépendance sur `lecoffre-back`
|
|
- ✅ `ihm_client` : Healthcheck avec dépendance sur `sdk_relay`
|
|
- ✅ `start_period` configuré pour permettre le démarrage
|
|
- ✅ `retries` et `timeout` optimisés
|
|
|
|
**Configuration** :
|
|
```yaml
|
|
lecoffre-back:
|
|
depends_on:
|
|
sdk_relay:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "sh", "-c", "curl -f http://localhost:8080/ || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 60s
|
|
```
|
|
|
|
### 3. Documentation des Améliorations
|
|
|
|
**Fichier** : `docs/AMELIORATIONS_DEMARRAGE.md`
|
|
|
|
**Contenu** :
|
|
- ✅ Analyse des problèmes rencontrés
|
|
- ✅ Description des améliorations apportées
|
|
- ✅ Procédures recommandées
|
|
- ✅ Tests de validation
|
|
- ✅ Historique des modifications
|
|
|
|
## Avantages des Améliorations
|
|
|
|
### 1. Détection Précoce des Problèmes
|
|
- **Avant** : Erreurs découvertes après démarrage des services
|
|
- **Après** : Validation des dépendances avant démarrage
|
|
|
|
### 2. Diagnostic Automatisé
|
|
- **Avant** : Tests manuels requis pour identifier les problèmes
|
|
- **Après** : Scripts automatisés pour le diagnostic
|
|
|
|
### 3. Récupération Automatique
|
|
- **Avant** : Redémarrage manuel des services après réparation
|
|
- **Après** : Redémarrage intelligent automatique
|
|
|
|
### 4. Monitoring Proactif
|
|
- **Avant** : Surveillance manuelle des services
|
|
- **Après** : Monitoring continu avec alertes
|
|
|
|
## Procédures Recommandées
|
|
|
|
### Démarrage Initial
|
|
```bash
|
|
# 1. Validation des dépendances
|
|
./scripts/startup-validation.sh validate
|
|
|
|
# 2. Démarrage avec validation
|
|
./scripts/startup-enhanced.sh start
|
|
|
|
# 3. Vérification finale
|
|
./scripts/startup-validation.sh external
|
|
```
|
|
|
|
### Après Réparation d'un Service Externe
|
|
```bash
|
|
# Redémarrage intelligent
|
|
./scripts/startup-enhanced.sh restart
|
|
```
|
|
|
|
### Monitoring Continu
|
|
```bash
|
|
# Monitoring en arrière-plan
|
|
nohup ./scripts/startup-validation.sh monitor > monitoring.log 2>&1 &
|
|
```
|
|
|
|
## Configuration des Services
|
|
|
|
### Variables d'Environnement Critiques
|
|
```bash
|
|
# Signer distant (OBLIGATOIRE)
|
|
SIGNER_WS_URL=ws://dev3.4nkweb.com:9090
|
|
SIGNER_BASE_URL=https://dev3.4nkweb.com
|
|
|
|
# Relai local
|
|
RELAY_URLS=ws://sdk_relay:8090
|
|
|
|
# URLs publiques
|
|
NEXT_PUBLIC_FRONT_APP_HOST=https://dev4.4nkweb.com/lecoffre
|
|
NEXT_PUBLIC_4NK_IFRAME_URL=https://dev4.4nkweb.com
|
|
```
|
|
|
|
### Ports des Services
|
|
- **Relai (sdk_relay)** : 8090-8091
|
|
- **Signer (sdk_signer)** : 9090
|
|
- **LeCoffre-back** : 8080
|
|
- **LeCoffre-front** : 3000 (mappé sur 3004)
|
|
- **IHM Client** : 3003
|
|
|
|
## Tests de Validation
|
|
|
|
### Tests Automatiques
|
|
```bash
|
|
# Test complet
|
|
./scripts/startup-validation.sh validate
|
|
|
|
# Test des dépendances externes
|
|
./scripts/startup-validation.sh external
|
|
|
|
# Test des services Docker
|
|
./scripts/startup-validation.sh docker
|
|
```
|
|
|
|
### Tests Manuels
|
|
```bash
|
|
# Test du signer distant
|
|
curl -I http://dev3.4nkweb.com:9090/
|
|
|
|
# Test de LeCoffre Front
|
|
curl -I https://dev4.4nkweb.com/lecoffre
|
|
|
|
# Test de IHM Client
|
|
curl -I https://dev4.4nkweb.com
|
|
```
|
|
|
|
## Historique des Améliorations
|
|
|
|
- **20/09/2025** : Création des scripts de validation et amélioration des healthchecks
|
|
- **20/09/2025** : Résolution du problème de connectivité avec dev3.4nkweb.com:9090
|
|
- **20/09/2025** : Documentation des améliorations et procédures
|
|
|
|
## Prochaines Améliorations Possibles
|
|
|
|
1. **Intégration CI/CD** : Validation automatique des dépendances dans le pipeline
|
|
2. **Alertes automatiques** : Notifications en cas de problème de connectivité
|
|
3. **Métriques de performance** : Monitoring des temps de réponse des services
|
|
4. **Backup automatique** : Sauvegarde des configurations avant modifications
|
|
5. **Tests de charge** : Validation de la performance sous charge
|