Visão geral das estruturas para orquestração de microsserviços: Conductor, Zeebe, Temporal

A orquestração de microsserviços ajuda a criar processos complexos em produtos. Para não ter que escrever essa mecânica à mão, os desenvolvedores podem usar estruturas prontas que incluem ferramentas para gerenciar microsserviços. Nós da True Engineering estudamos esse tópico e falamos sobre três dessas estruturas.





Ao automatizar um processo de negócios complexo, um produto pode envolver vários microsserviços de uma vez. E se for bastante simples construir a interação de vários módulos em um monólito, então em uma arquitetura distribuída, onde cada um desses componentes é um aplicativo separado, surgem dificuldades.





O orquestrador de microsserviços monitora a execução dos processos. Como resultado, os dados não são perdidos, torna-se mais fácil para o suporte corrigir problemas e torna-se mais fácil para os desenvolvedores gerenciar o desenvolvimento de todo o sistema.





Você pode escrever um módulo do zero ou usar uma estrutura pronta. Se uma empresa possui várias equipes de desenvolvimento, tais estruturas são indispensáveis. Primeiro, os programadores não precisam fazer o mesmo trabalho repetidamente. Em segundo lugar, quando todos usam ferramentas comuns, as equipes têm padrões uniformes de trabalho e isso afeta imediatamente a qualidade dos produtos. Em vez de reinventar a roda, todos estão se concentrando no desenvolvimento de uma ferramenta comum.





Arquitetura da estrutura de orquestração

A estrutura inclui componentes de orquestração prontos para uso. Este é o próprio orquestrador, que aceita tarefas e as transfere para microsserviços ativos para execução.





(, ), , . « », « », « ». . , , .





, .





  • . , . , .





  • . . , - , , - . , Saga – , - .





  • . , .





  • . , (, Java .NET).





, . , .





Conductor Netflix. - JSON-. , . - – .





Zeebe Camunda. Camunda – BPMN-, (, -). Camunda, Zeebe . – , -. XML-.





Temporal. . – , . .





:





  • . Zeebe . Temporal – .





  • . , yj Zeebe . Saga .





  • . .





  • . Java-, .NET- .





A comparação mostra que não há solução mágica - cada estrutura é boa à sua maneira. A ferramenta precisa ser selecionada em uma caixa de diálogo com comandos - alguém pode se sentir mais confortável trabalhando com JSON, outro apreciará a visualização e o terceiro desejará usar código limpo.





Mas qualquer estrutura é melhor do que incorporar a orquestração no código de cada produto separadamente. Dessa forma, os desenvolvedores precisam mergulhar novamente na mecânica e sobrecarregar o código todas as vezes. E em toda a empresa, você obterá padrões uniformes que ajudam a reunir todas as suas equipes em uma plataforma de desenvolvimento comum.








All Articles