Introdução

Muitas plataformas de automação começam com uma arquitetura de nó único. Um processo serve a interface do usuário, executa jobs, gerencia agendamentos e lida com atualizações em tempo real. Embora essa configuração seja simples, ela também cria um ponto único de falha. Se esse processo parar, a automação também para.

Para organizações que executam automação de infraestrutura em larga escala — especialmente em ambientes de DevOps ou engenharia de plataforma — o tempo de inatividade do sistema de automação pode se tornar um sério risco operacional.

É aqui que entra a Alta Disponibilidade Ativo-Ativo (HA). O Semaphore UI suporta uma arquitetura onde múltiplas instâncias são executadas simultaneamente e compartilham a carga de trabalho. Isso garante que a automação continue mesmo se nós individuais falharem, ao mesmo tempo que permite a escalabilidade horizontal.

O Problema com a Automação de Nó Único

Em uma implantação padrão, um processo do Semaphore UI executa todas as responsabilidades principais:

Essa arquitetura funciona bem para equipes pequenas ou ambientes de teste. No entanto, ela introduz uma limitação crítica. Se o processo único cair, todo o sistema fica indisponível. Para ambientes de produção com muitos usuários e fluxos de trabalho automatizados, isso cria riscos como:

Para eliminar esse gargalo, o Semaphore UI suporta implantações de alta disponibilidade ativo-ativo.

O que é HA Ativo-Ativo no Semaphore UI?

Em uma arquitetura HA ativo-ativo, múltiplas instâncias idênticas do Semaphore UI são executadas simultaneamente atrás de um balanceador de carga. Diferentemente dos sistemas tradicionais de failover, não há nó primário ou em espera. Cada instância é totalmente capaz de lidar com requisições da UI, chamadas de API, jobs agendados e execução de tarefas.

O tráfego é distribuído pelo cluster e, se uma instância falhar, as outras continuam servindo requisições sem interrupção. Essa arquitetura melhora tanto a confiabilidade do sistema quanto a escalabilidade de execução.

Arquitetura de Alto Nível

Uma implantação ativo-ativo típica consiste em vários componentes-chave.

  1. Balanceador de Carga. Os usuários se conectam através de um balanceador de carga como NGINX, HAProxy e balanceadores de carga em nuvem. O balanceador de carga distribui o tráfego HTTP e WebSocket entre os nós Semaphore disponíveis.

  2. Nós Semaphore. Cada nó executa uma instância idêntica do Semaphore UI. Qualquer nó pode receber requisições de usuários, iniciar jobs de automação, processar tarefas agendadas e enviar atualizações em tempo real. Como todos os nós são iguais, o sistema não tem um ponto único de falha na camada de aplicação.

  3. Banco de Dados Compartilhado. Todas as instâncias se conectam a um banco de dados compartilhado como PostgreSQL ou MySQL. O banco de dados atua como a única fonte de verdade para dados persistentes, incluindo: projetos, templates, inventários, agendamentos, histórico de tarefas, contas de usuários e configuração RBAC.

  4. Camada de Coordenação Redis. O Redis fornece a camada de coordenação que permite que múltiplos nós se comportem como um único sistema. Ele serve a três funções importantes.

Como a Execução de Jobs Funciona em um Cluster HA

Em uma implantação multi-nó do Semaphore, a execução de tarefas segue um fluxo coordenado.

  1. Um Usuário Aciona uma Tarefa. Um usuário inicia um job através da UI ou API. A requisição pode chegar em qualquer instância do Semaphore.
  2. Os Metadados da Tarefa São Armazenados. O nó receptor grava os metadados da tarefa no banco de dados e sinaliza trabalho através do Redis.
  3. Um Nó Pega a Tarefa. Um dos nós disponíveis recupera a tarefa do Redis, adquire um lock distribuído e marca a tarefa como em execução no banco de dados.
  4. A Tarefa é Executada. O nó executa a tarefa localmente ou através de runners/agentes distribuídos. O progresso e os logs são continuamente escritos de volta no banco de dados.
  5. Os Resultados São Transmitidos. As atualizações de tarefas se propagam através do Redis Pub/Sub para que todos os nós e clientes da UI permaneçam sincronizados.

Escalabilidade Horizontal com Múltiplos Runners

A alta disponibilidade também permite a escalabilidade horizontal da execução de tarefas. Em vez de executar jobs apenas nos próprios nós Semaphore, a execução pode ser delegada a múltiplos runners ou agentes. Para grandes equipes de DevOps, essa arquitetura suporta cargas de trabalho de automação em escala empresarial:

Benefícios de uma Implantação Ativo-Ativo do Semaphore

Confiabilidade Melhorada. Se uma instância falhar, as outras continuam servindo tráfego e executando jobs.

Manutenção Sem Tempo de Inatividade. Os nós podem ser atualizados ou reiniciados sem parar o sistema.

Escalabilidade Horizontal. Nós Semaphore adicionais podem ser adicionados atrás do balanceador de carga para aumentar a capacidade.

Sem Dependência de Nó Primário. Todos os nós são iguais, removendo mecanismos complexos de failover. Estado Consistente em Todo o Cluster. O armazenamento em banco de dados compartilhado e a coordenação Redis mantêm todas as instâncias sincronizadas.

Casos de Uso Típicos

Implantações ativo-ativo do Semaphore são comuns em ambientes que requerem disponibilidade contínua de automação, como:

Conclusão

A alta disponibilidade ativo-ativo permite que o Semaphore UI evolua de um servidor de automação único para um sistema distribuído resiliente. Em vez de depender de um processo para lidar com a UI, agendamento e execução de tarefas, múltiplas instâncias do Semaphore trabalham juntas atrás de um balanceador de carga enquanto compartilham estado através de um banco de dados e Redis. O resultado é uma plataforma de automação que permanece disponível mesmo quando nós individuais falham e pode escalar horizontalmente conforme a carga de trabalho cresce.

O suporte para HA ativo-ativo está disponível na edição Semaphore Enterprise. Além da alta disponibilidade, a versão Enterprise inclui capacidades projetadas para equipes maiores e ambientes de produção — como RBAC avançado (controle de acesso baseado em papéis), que permite que as organizações definam permissões granulares entre projetos, equipes e ambientes.

Se você está avaliando uma plataforma de automação de alta disponibilidade para sua infraestrutura, pode solicitar um teste da edição Enterprise para testar a arquitetura HA e ver como ela se encaixa nos seus fluxos de trabalho DevOps.

Request an Enterprise Trial

FAQ

O que é alta disponibilidade ativo-ativo?

Alta disponibilidade ativo-ativo significa que múltiplas instâncias da aplicação são executadas simultaneamente e todas podem servir requisições. Não há nó primário — qualquer instância pode lidar com tráfego e executar jobs.

Por que o Semaphore usa Redis no modo HA?

O Redis atua como uma camada de coordenação entre as instâncias. Ele fornece locks distribuídos, estado compartilhado da fila de tarefas e mensageria Pub/Sub para garantir que os nós não executem o mesmo job simultaneamente.

Qual banco de dados o Semaphore suporta para implantações HA?

O Semaphore suporta PostgreSQL e MySQL como banco de dados compartilhado para armazenar dados persistentes do sistema.

O que acontece se um nó Semaphore falhar?

O balanceador de carga simplesmente roteia o tráfego para os nós restantes. Os jobs em execução continuam e novos jobs são pegos por outras instâncias.

O Semaphore pode escalar horizontalmente?

Sim. Nós e runners adicionais do Semaphore podem ser adicionados para aumentar a capacidade de execução e lidar com cargas de trabalho de automação maiores.