Garder Semaphore disponible lorsqu’un nœud applicatif s’arrête
Placez les nœuds Semaphore actifs derrière une adresse de service unique. Gardez l’interface et l’API accessibles pendant la maintenance des nœuds, avec base partagée et coordination Redis.
Votre infrastructure dépend de la disponibilité de l’automatisation
Lors d’un incident, votre équipe a besoin de Semaphore pour exécuter les opérations de reprise et les modifications d’infrastructure. Un nœud applicatif indisponible ne devrait pas supprimer cet accès.
Garder Semaphore disponible avec Enterprise HA
Enterprise HA garde l’interface et l’API disponibles via les nœuds applicatifs sains lorsqu’un autre s’arrête.
Ce dont Semaphore a besoin pour la HA
Deux nœuds Semaphore ou plus
Exécutez au moins deux instances Semaphore équivalentes. Gardez leur configuration partagée cohérente et attribuez à chaque nœud un identifiant unique ha.node_id.
Répartition de charge HTTP et WebSocket
Faites passer HTTP et WebSocket par un répartiteur capable de retirer les nœuds défaillants de son groupe.
Base SQL partagée et Redis
Connectez chaque nœud à la même base PostgreSQL ou MySQL et au même backend Redis. Protégez aussi ces services partagés contre les pannes. SQLite n’est pas pris en charge pour la HA.
Voir le résultat capturé de la tâche depuis le nœud restant →
Préparer le reste du déploiement de production
Prévoir la disponibilité de tout le déploiement
Rendre l’état partagé visible dans l’architecture
La topologie documentée est active-active : des nœuds Semaphore équivalents partagent une base PostgreSQL ou MySQL et une coordination Redis. La base contient l’état applicatif ; Redis prend en charge verrous distribués, état des files et mises à jour entre nœuds. SQLite et BoltDB ne sont pas pris en charge pour cette conception HA.
Prendre en charge requêtes et mises à jour en direct
Le répartiteur doit gérer HTTP et WebSocket pour que les clients atteignent les nœuds sains et reçoivent les mises à jour en direct. Sa redondance, sa configuration TLS, ses vérifications de santé et son comportement opérationnel relèvent du déploiement. Ajouter des nœuds applicatifs ne configure pas ces propriétés automatiquement.
Dimensionner séparément application et exécution
Les nœuds applicatifs fournissent l’interface web, l’API et la coordination. Les runners peuvent placer et étendre l’exécution des tâches indépendamment. L’équipe peut ainsi déterminer si une évolution de capacité concerne la charge utilisateur/API, le parallélisme des tâches ou l’accès à un autre réseau, au lieu de supposer qu’un nœud applicatif supplémentaire résout les trois.
Donner à chaque domaine de panne son plan de reprise
La disponibilité des nœuds applicatifs, la récupération de la base, la disponibilité de Redis et la reprise après sinistre du site sont des responsabilités distinctes. Sauvegardes, tests de restauration, objectifs de reprise et procédures de mise à niveau compatibles restent nécessaires. Une topologie peut tolérer un type de panne tout en restant vulnérable à un autre.
Maintenir la coordination avec Redis Sentinel
Utilisez le backend Redis Sentinel si la coordination nécessite aussi un basculement. Chaque nœud Semaphore découvre le maître Redis actif via Sentinel et suit une réplique promue sans redémarrage. Configurez le même déploiement Sentinel sur les nœuds applicatifs avec le plan de disponibilité de la base partagée et du répartiteur.
Inclure les dépendances partagées dans le plan de disponibilité
La base SQL, Redis et le répartiteur servent tous les nœuds applicatifs. Configurez redondance et récupération de ces services avec les nœuds Semaphore.
Conserver un parcours de récupération des données
La redondance applicative et la récupération des données répondent à des problèmes différents. Conservez des sauvegardes et testez la restauration de la base et de la configuration dont dépend votre automatisation.
Documentation et fonctions associées
FAQ
Quels composants faut-il pour la haute disponibilité Semaphore ?
L’architecture active-active documentée utilise plusieurs nœuds Semaphore, une base PostgreSQL ou MySQL partagée, une coordination Redis et un répartiteur compatible HTTP et WebSocket. Chaque nœud nécessite les paramètres partagés appropriés et un identifiant HA unique. Planifiez la disponibilité de ces dépendances avec les nœuds applicatifs. Un second processus seul ne fournit ni l’état partagé ni la coordination de la topologie complète.
Semaphore HA est-il actif-actif ou actif-passif ?
L’architecture décrite est active-active, avec des nœuds applicatifs équivalents participant au service. Elle ne dépend pas d’un nœud primaire dédié et d’un secours passif. Utilisez le guide HA actuel pour configurer la conception prise en charge et ne déduisez pas une architecture active-passive distincte de termes généraux sur la disponibilité. Si votre infrastructure nécessite une autre topologie, clarifiez état et basculement avant déploiement.
Puis-je utiliser SQLite ou BoltDB dans un déploiement HA ?
Non. La conception HA documentée nécessite une base PostgreSQL ou MySQL partagée et Redis. La base est la source commune de l’état applicatif des nœuds participants. Si vous partez d’une installation à un nœud avec un autre stockage, planifiez séparément migration, sauvegardes et validation. N’attendez pas d’ajouter des nœuds applicatifs pour vérifier que la base partagée contient et fournit les données nécessaires.
La HA applicative protège-t-elle aussi la base, Redis et le répartiteur de charge ?
Ces composants nécessitent leur propre stratégie de résilience. L’architecture multi-nœuds Semaphore ne crée pas automatiquement basculement de base, répartition de charge redondante ou service Redis disponible. Identifiez domaine de panne, reprise et capacité de chaque dépendance. Testez tout le parcours, de la requête client au résultat de tâche, pour que votre plan couvre le service utilisé et pas uniquement le nombre de nœuds actifs.
Les tâches en cours survivent-elles à une panne ou mise à niveau de nœud applicatif ?
La présence de plusieurs nœuds applicatifs ne garantit pas la continuité d’une exécution en cours. Le comportement dépend du parcours d’exécution, du composant défaillant et de la version utilisée. Testez le cycle de vie dont vous dépendez, y compris les états et l’intervention éventuelle d’un runner. Planifiez aussi compatibilité des mises à niveau et migrations, au lieu de considérer chaque changement de version comme une mise à jour progressive sans interruption garantie. Disponibilité de l’interface et continuité des tâches sont des exigences différentes.
Quelle offre inclut la HA et comment l’évaluer ?
La haute disponibilité est une fonction Enterprise. Commencez par vos horaires de service requis, processus de maintenance, objectifs de reprise et services de base de données et de répartition de charge existants. Repérez les manques avec la topologie documentée, puis testez retrait de nœud, reprise des dépendances et sauvegardes dans un environnement représentatif. Une discussion d’architecture est utile pour des exigences critiques, car le résultat dépend du déploiement complet, pas d’un simple interrupteur de fonction.
Les utilisateurs peuvent-ils garder la même URL lorsqu’un nœud applicatif est arrêté ?
C’est l’objectif de placer les nœuds actifs derrière une adresse de service unique avec répartition de charge. Le répartiteur doit cesser d’envoyer les requêtes au nœud indisponible et prendre en charge HTTP et WebSocket. Le nœud restant doit toujours accéder à la base partagée, Redis et une configuration applicative correspondante pour servir le projet.
Ai-je besoin de la HA pour exécuter des tâches dans plusieurs réseaux privés ?
Non. Les runners gèrent les emplacements d’exécution multiples. La haute disponibilité concerne la couche applicative Semaphore ; les runners déterminent où s’exécutent les tâches et les systèmes accessibles. Un déploiement de production peut combiner nœuds HA pour interface et API partagées et runners de projet près de l’infrastructure privée.
