Mantenere Semaphore disponibile quando un nodo si ferma
Posiziona nodi Semaphore attivi dietro un unico indirizzo di servizio. Mantieni interfaccia e API raggiungibili durante la manutenzione dei nodi, con database condiviso e coordinamento Redis.
L’infrastruttura dipende dalla disponibilità dell’automazione
Durante un incidente il team deve poter usare Semaphore per job di recupero e modifiche infrastrutturali. Un nodo applicativo indisponibile non dovrebbe rimuovere questo accesso.
Mantenere Semaphore disponibile con Enterprise HA
Enterprise HA mantiene interfaccia e API disponibili tramite nodi sani quando un altro nodo si ferma.
Cosa serve a Semaphore per HA
Due o più nodi Semaphore
Esegui almeno due istanze Semaphore equivalenti. Mantieni allineata la configurazione condivisa e assegna a ogni nodo un identificativo unico ha.node_id.
Bilanciamento HTTP e WebSocket
Instrada HTTP e WebSocket attraverso un bilanciatore capace di rimuovere nodi non sani.
Database SQL condiviso e Redis
Collega ogni nodo allo stesso database PostgreSQL o MySQL e backend Redis. Proteggi anche questi servizi condivisi dai guasti. SQLite non è supportato per HA.
Pianificare il resto del deployment produttivo
Pianificare la disponibilità dell’intero deployment
Rendere visibile lo stato condiviso nell’architettura
La topologia è attiva-attiva: nodi equivalenti condividono PostgreSQL o MySQL e Redis. Il database contiene lo stato; Redis supporta blocchi distribuiti, code e aggiornamenti. SQLite e BoltDB non sono supportati per questa HA.
Supportare richieste e aggiornamenti in tempo reale
Il bilanciatore deve gestire HTTP e WebSocket per raggiungere nodi sani e ricevere aggiornamenti live. Ridondanza, TLS, health check e comportamento operativo sono parte del deployment. Aggiungere nodi non configura automaticamente queste proprietà.
Scalare separatamente applicazione ed esecuzione
I nodi applicativi forniscono interfaccia web, API e coordinamento. I runner possono posizionare ed espandere l’esecuzione indipendentemente. Il team può così distinguere se una variazione di capacità riguarda carico utenti/API, concorrenza dei task o accesso a un’altra rete, invece di presumere che ogni nuovo nodo risolva tutti e tre.
Dare a ogni dominio di guasto un piano di recupero
Disponibilità dei nodi, recupero del database, disponibilità Redis e disaster recovery del sito sono responsabilità distinte. Backup, prove di ripristino, obiettivi di recupero e aggiornamenti compatibili restano necessari. Una topologia può tollerare un guasto e rimanere vulnerabile a un altro.
Mantenere il coordinamento con Redis Sentinel
Usa Redis Sentinel se anche il coordinamento richiede failover. Ogni nodo scopre il master attivo tramite Sentinel e segue una replica promossa senza riavvio. Configura lo stesso Sentinel sui nodi con la disponibilità di database e bilanciatore.
Includere dipendenze condivise nel piano di disponibilità
Database SQL, Redis e bilanciatore servono tutti i nodi. Configura ridondanza e recupero insieme ai nodi Semaphore.
Mantenere un percorso di recupero dei dati
Ridondanza applicativa e recupero dei dati risolvono problemi diversi. Mantieni backup e testa il ripristino del database e della configurazione da cui dipende l’automazione.
Documentazione e funzionalità correlate
FAQ
Quali componenti servono per HA Semaphore?
L’architettura attiva-attiva usa più nodi Semaphore, database PostgreSQL o MySQL condiviso, Redis e bilanciatore HTTP/WebSocket. Ogni nodo richiede impostazioni condivise corrette e identificativo HA unico. Pianifica anche le dipendenze. Un secondo processo non fornisce da solo stato e coordinamento della topologia completa.
Semaphore HA è attivo-attivo o attivo-passivo?
L’architettura descritta è attiva-attiva con nodi equivalenti. Non richiede un primario dedicato e un nodo passivo. Usa la guida attuale per il modello supportato e non dedurre un’architettura attiva-passiva separata da descrizioni generiche di disponibilità. Per altre topologie chiarisci stato e failover prima del deployment.
Posso usare SQLite o BoltDB in un deployment HA?
No. L’architettura HA documentata richiede database PostgreSQL o MySQL condiviso insieme a Redis. Il database è la fonte comune dello stato applicativo dei nodi. Se parti da un singolo nodo con altro storage, pianifica migrazione, backup e validazione separatamente. Non aspettare di aggiungere nodi per verificare che il database condiviso contenga e fornisca i dati necessari.
La HA applicativa protegge anche database, Redis e bilanciatore?
Questi componenti richiedono una strategia di resilienza propria. Il modello multi-nodo non crea automaticamente failover database, bilanciamento ridondante o Redis disponibile. Identifica dominio di guasto, recupero e capacità di ogni dipendenza. Testa tutto dalla richiesta al risultato, perché il piano copra il servizio usato e non solo il numero di nodi.
I task attivi sopravvivono a guasti o aggiornamenti dei nodi?
Più nodi applicativi non garantiscono continuità delle esecuzioni in corso. Il comportamento dipende dal percorso di esecuzione, dal componente guasto e dalla versione utilizzata. Testa il ciclo di vita necessario, comprese segnalazioni di stato e coinvolgimento dei runner. Pianifica anche compatibilità degli aggiornamenti e migrazioni, senza considerare ogni cambio versione un aggiornamento progressivo senza interruzioni garantito. Disponibilità dell’interfaccia e continuità dei task sono requisiti diversi.
Quale offerta include HA e come valutarla?
L’alta disponibilità è una funzionalità Enterprise. Parti da orari operativi, manutenzione, obiettivi di recupero e servizi database e bilanciamento esistenti. Usa la topologia documentata per individuare lacune, poi testa rimozione di nodi, recupero delle dipendenze e backup in un ambiente rappresentativo. Un confronto architetturale è utile per requisiti critici, perché il risultato dipende dal deployment completo e non da un singolo interruttore.
Gli utenti possono mantenere lo stesso URL se un nodo applicativo viene fermato?
È lo scopo di avere nodi attivi dietro un unico indirizzo bilanciato. Il bilanciatore deve smettere di inviare richieste al nodo non disponibile e supportare HTTP e WebSocket. Il nodo superstite necessita comunque di database condiviso, Redis e configurazione coerente.
Serve HA per eseguire task in più reti private?
No. I runner gestiscono più posizioni. La HA riguarda l’applicazione Semaphore, i runner dove girano i task e cosa raggiungono. La produzione può combinare nodi HA per UI e API con runner di progetto vicini alle reti private.
