Estou procurando uma maneira de conectar processos em vários sistemas em vários locais potencialmente. Um barramento de eventos ou fila de mensagens parece ser a maneira ideal de fazer isso, mas não consegui encontrar uma solução existente que implementa algo assim. Deixe-me dar alguns exemplos do que estou tentando fazer ...
Uma mensagem chega ao meu servidor de e-mail para [email protected]. Gostaria de iniciar um trabalho no servidor que executa o meu software de gerenciamento de problemas para enviar o email POP dessa conta.
Um dos membros da minha equipe pressiona o nosso repositório Git interno. Eu gostaria de ter meu bot de chat notificar a sala #developers desse push e fazer com que meu servidor de compilação inicie uma compilação.
Meu sistema de implantação conclui uma implantação de produção. Eu gostaria de ter o meu sistema de gerenciamento de problemas marcar todos os problemas na implantação como implantado e meu bot de bate-papo para notificar a sala #operations que a produção foi atualizada.
Estou ciente de que posso criar scripts para afetar diretamente essas alterações (que é o que tenho feito), mas preferiria uma solução desacoplada. Ter que modificar meu hook pós-recebimento do Git toda vez que eu adiciono um novo aplicativo que precisa saber quando um push foi feito parece estranho para um cara que passa a maior parte do tempo escrevendo software. O desacoplamento facilitaria muito a manutenção e não vejo nenhuma boa razão para que todos os componentes da minha rede realmente precisem saber uns dos outros. Eu corro uma mistura do Windows Server 2008 R2 e do CentOS 6.x / 7.x para que algo entre plataformas seja bom.
Idealmente, eu teria um daemon em cada sistema que ouvisse uma fila central de mensagens e me permitisse definir tarefas ou scripts para reagir a determinados eventos. Eu também precisaria de alguma maneira de injetar um evento na fila a partir da linha de comando ou de um script. Estou realmente aberto a qualquer coisa que consiga alguma dissociação. A única solução que posso pensar é tentar usar um servidor AMQP e ligar tudo sozinho.
Se algo assim já existe e eu perdi, peço desculpas. Agradecemos antecipadamente por qualquer sugestão.
Tags networking windows linux service