Fiabilité du Web Cluster — Script Python

Fiabilité du Web Cluster

Le Web Cluster proposé reposait à l’origine sur un script Python exécuté sur une machine virtuelle Proxmox VE sous Ubuntu 25.10. Dans cette première version, la solution n’était pas totalement fiable : des comportements instables pouvaient survenir lors de conditions imprévues telles que des interruptions réseau, une surcharge système, une perte de connexion avec les clusters DX en amont, ou des erreurs non gérées dans le code.

Conséquences possibles

  • Coupures du flux de spots DX
  • Données incomplètes ou figées
  • Arrêt total du service nécessitant une intervention manuelle

Causes identifiées

  • Script Python dépourvu d’un mécanisme robuste de gestion des erreurs et de reprise automatique
  • Absence de supervision avancée (watchdog, redémarrage automatique via systemd)
  • Contraintes liées à l’environnement virtualisé (CPU, RAM, I/O) sous Proxmox
  • Dépendance à des sources externes (clusters DX) elles-mêmes parfois instables

Solution retenue : refonte en Django avec API REST

Pour répondre à ces limites, le script a été entièrement repensé et adapté en Django, adossé à une API REST dédiée. Cette architecture s’est révélée nettement plus stable : la logique de collecte est désormais découplée de la diffusion des données, la gestion des erreurs est centralisée, et le flux de spots reste disponible même lorsqu’une source en amont rencontre un incident.

L’API REST expose les spots de façon structurée et permet une intégration propre côté WordPress, dans la continuité de l’infrastructure existante.

Pistes d’amélioration complémentaires

  • Redémarrage automatique du service via systemd ou Supervisor
  • Journalisation détaillée pour mieux diagnostiquer les pannes
  • Reconnexion automatique aux clusters DX en cas de rupture de lien
  • Migration éventuelle vers DXSpider, reconnu pour sa stabilité dans le monde radioamateur
  • Supervision via Netdata ou Prometheus, déjà présents dans l’infrastructure

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *