Mantenha o Semaphore disponível quando um nó da aplicação parar

Coloque nós Semaphore ativos atrás de um endereço de serviço. Mantenha UI e API acessíveis durante manutenção de nós, com banco compartilhado e coordenação Redis.

A automação continua disponível por um segundo nó Semaphore quando um nó da aplicação fica indisponível.

Sua infraestrutura depende da disponibilidade da automação

Durante um incidente, sua equipe precisa do Semaphore para executar trabalhos de recuperação e alterações de infraestrutura. Um nó da aplicação indisponível não deve remover esse acesso.

Um nó da aplicação offline
Abra a interface Use a API Inicie trabalhos

Mantenha o Semaphore disponível com Enterprise HA

Enterprise HA mantém UI e API disponíveis pelos nós saudáveis da aplicação quando outro nó para.

Outro nó da aplicação continua atendendo
Abra a interface Use a API Inicie trabalhos

O que o Semaphore precisa para HA

01

Dois ou mais nós Semaphore

Execute pelo menos duas instâncias equivalentes do Semaphore. Alinhe a configuração compartilhada e dê a cada nó um valor exclusivo de ha.node_id.

02

Balanceamento HTTP e WebSocket

Direcione conexões HTTP e WebSocket por um balanceador capaz de remover nós não saudáveis do conjunto.

03

Banco SQL compartilhado e Redis

Conecte todos os nós ao mesmo banco PostgreSQL ou MySQL e backend Redis. Proteja também esses serviços compartilhados contra falhas. SQLite não é compatível com HA.

O tráfego HTTP e WebSocket chega a dois nós Semaphore ativos por um balanceador de carga. Ambos compartilham um banco PostgreSQL ou MySQL e a coordenação Redis.

Planeje o restante da implantação de produção

Posicione a execução perto da infraestrutura

Use runners para redes privadas e capacidade independente.

Runners

Dê às equipes o acesso necessário

Combine sua implantação com funções de projeto e controles de acesso Enterprise.

Controle de acesso

Planeje disponibilidade para a implantação inteira

Deixe o estado compartilhado visível na arquitetura

A topologia documentada é ativa-ativa: nós Semaphore equivalentes usam um banco compartilhado PostgreSQL ou MySQL e coordenação Redis. O banco mantém estado da aplicação; Redis apoia bloqueios distribuídos, estado das filas e atualizações entre nós. SQLite e BoltDB não são opções de banco compatíveis com esse desenho HA.

Suporte solicitações e atualizações em tempo real

O balanceador deve tratar HTTP e WebSocket para clientes alcançarem nós saudáveis e receberem atualizações ao vivo. Sua redundância, TLS, verificações de saúde e comportamento operacional fazem parte da implantação. Adicionar nós não configura essas propriedades automaticamente.

Escale aplicação e caminhos de execução separadamente

Os nós da aplicação fornecem a camada web/API e de coordenação. Os runners podem posicionar e ampliar a execução de tarefas de forma independente. Isso ajuda a equipe a distinguir se uma mudança de capacidade trata da carga de usuários/API, da simultaneidade de tarefas ou do acesso a outra rede, em vez de presumir que cada nó adicional resolve os três problemas.

Defina um plano de recuperação para cada domínio de falha

Disponibilidade dos nós da aplicação, recuperação do banco de dados, disponibilidade do Redis e recuperação de desastre no local são responsabilidades diferentes. Backups, testes de restauração, objetivos de recuperação e procedimentos de atualização compatíveis com a versão continuam necessários. Uma topologia pode tolerar um tipo de falha e continuar vulnerável a outro.

Mantenha a coordenação disponível com Redis Sentinel

Use Redis Sentinel quando a coordenação também precisar de failover. Cada nó Semaphore descobre o mestre Redis ativo por Sentinel e segue uma réplica promovida sem reiniciar. Configure a mesma implantação Sentinel nos nós, junto ao plano de disponibilidade de banco e balanceador.

Inclua dependências compartilhadas no plano de disponibilidade

Banco SQL, Redis e balanceador atendem a todos os nós. Configure redundância e recuperação desses serviços junto aos nós Semaphore.

Mantenha um caminho de recuperação dos dados

Redundância da aplicação e recuperação de dados resolvem problemas diferentes. Mantenha backups e teste a restauração do banco de dados e das configurações dos quais sua automação depende.

FAQ

Quais componentes são necessários para HA Semaphore?

A arquitetura ativa-ativa documentada usa múltiplos nós Semaphore, banco PostgreSQL ou MySQL compartilhado, coordenação Redis e balanceador com HTTP e WebSocket. Cada nó precisa das configurações compartilhadas adequadas e identificador HA exclusivo. Planeje a disponibilidade dessas dependências junto aos nós. Só um segundo processo não fornece estado e coordenação exigidos pela topologia completa.

HA do Semaphore é ativa-ativa ou ativa-passiva?

A arquitetura descrita é ativa-ativa, com nós equivalentes participando do serviço. Não depende de nó primário dedicado e standby passivo. Use o guia HA atual para configurar o desenho suportado e não deduza uma arquitetura ativa-passiva separada a partir de linguagem geral sobre disponibilidade. Se precisar de outra topologia, resolva estado e comportamento de failover antes da implantação.

Posso usar SQLite ou BoltDB em uma implantação HA?

Não. O desenho HA documentado exige banco compartilhado PostgreSQL ou MySQL e Redis. O banco é a fonte comum do estado da aplicação para os nós participantes. Se migrar de um nó com outra opção de armazenamento, planeje migração, backups e validação como trabalhos separados. A adição de nós não deve ser a primeira vez que você testa se o banco compartilhado contém e fornece os dados necessários.

HA da aplicação também protege banco de dados, Redis e balanceador?

Esses componentes precisam de estratégias próprias de resiliência. O desenho de múltiplos nós Semaphore não cria automaticamente failover de banco, balanceamento redundante ou Redis disponível. Identifique domínio de falha, recuperação e capacidade de cada dependência. Teste todo o caminho entre solicitação do cliente e resultado da tarefa para o plano cobrir o serviço usado, não apenas a quantidade de nós ativos.

Tarefas em andamento sobrevivem a falha ou atualização de um nó da aplicação?

Não presuma execução em andamento ininterrupta apenas porque há vários nós da aplicação. O comportamento depende do caminho de execução, componente que falhou e versão em uso. Teste o ciclo de vida da tarefa de que depende, incluindo atualização de status e participação de runners. Planeje também compatibilidade de atualizações e migrações, sem tratar toda mudança de versão como uma operação rolling sem indisponibilidade garantida. Disponibilidade da UI e continuidade das tarefas são requisitos distintos.

Qual plano inclui HA e como avaliar?

Alta disponibilidade é uma capacidade Enterprise. Comece pelos horários de operação exigidos, processo de manutenção, objetivos de recuperação e serviços existentes de banco e balanceamento. Use a topologia documentada para identificar lacunas e teste remoção de nós, recuperação de dependências e backups em ambiente representativo. Uma conversa sobre arquitetura é útil quando esses requisitos são críticos ao negócio, pois o resultado depende da implantação completa, não de uma única opção.

Os usuários podem manter a mesma URL quando um nó da aplicação é retirado do ar?

Esse é o objetivo de pôr nós ativos atrás de um endereço de serviço balanceado. O balanceador precisa parar de enviar solicitações ao nó indisponível e suportar HTTP e WebSocket. O nó sobrevivente ainda precisa de banco compartilhado, Redis e configuração alinhada para atender ao projeto.

Preciso de HA para executar tarefas em várias redes privadas?

Não. Múltiplos locais de execução são tratados pelos runners. HA trata da camada da aplicação Semaphore; runners tratam de onde as tarefas executam e quais sistemas alcançam. Produção pode usar ambos: nós HA para UI e API compartilhadas e runners de projeto perto da infraestrutura privada.