Coreografia e Orquestração
Coreografia e Orquestração são dois termos que se você ouvir certamente vão surgir algumas imagens na sua cabeça sem maiores explicações. Coreografia, uma pessoa dançando sozinha ou em grupo ela(as) sabem o que precisa ser feito, onde e quando sem uma supervisão ativa. A Orquestração, uma maestra conduz ativamente um coral ou naipes de instrumentos de uma orquestra com a finalidade de realizar uma apresentação. São essas coisas que surgem na minha cabeça quando eu penso em Coreografia e Orquestração.
No mundo da arquitetura de micro serviços utiliza-se os termos Coreografia e Orquestração como abordagens para construir sistemas distribuídos, vejamos algumas características de cada uma delas imaginando a seguinte situação: Você vai jantar num restaurante com o seu companheiro ou sua companheira e..
-
Interação 1:
Uma pessoa na recepção te cumprimenta com um “Olá boa noite!! Mesa para dois, por favor me sigam…” e te acompanha até uma das mesas e por fim fala “Tenha um bom jantar” e em seguida retorna para a recepção.
-
Interação 2:
Uma pessoa do atendimento te cumprimenta, com um “Olá boa noite!!” e lhe oferece o cardápio e fala “fiquem a vontade, eu volto em instantes”. Pouco tempo depois a pessoa volta e pergunta “estão prontos, podemos fazer o pedido?”. Bebidas escolhidas, entradas escolhidas, pratos escolhidos, ponto da carne escolhido, temperos e molhos definidos, pedidos feitos! Pouco tempo depois, a pessoa do atendimento retorna com as bebidas e com as entradas. Pouco tempo depois, a pessoa do atendimento retorna com os pratos prontos e fala “Tenha um bom apetite!”. Pouco tempo depois, a pessoa do atendimento retorna e pergunta “Está tudo conforme solicitado?”. Algum tempo depois a pessoa do atendimento retorna e pergunta, “Estava tudo conforme solicitado? Posso retirar os pratos?”.
-
Interação 3:
O jantar estava tudo certo, conforme o solicitado. Você pede a conta, e se dirige até ao caixa, a pessoa do caixa te cumprimenta com um “boa noite, gostaram do jantar?!”, você responde “sim, estava ótimo!” e entrega a conta e o cartão, paga a conta e se encaminha para a saída.
-
Interação 4:
Uma pessoa na recepção te cumprimenta novamente, e se despede falando “Tenham uma boa noite e voltem sempre”.
OBS: Por restrições de orçamento e escopo do projeto está história não terá sobremesa 😣
Na situação descrita quais desses serviços são coreografados e orquestrados? 🙂 vejamos….
Coreografia
A arquitetura de micro serviços baseada em coreografia enfatiza a comunicação direta e assíncrona entre os serviços. Cada serviço é autônomo e responsável por reagir a eventos e propagar alterações para outros serviços, sem depender de um componente centralizado, como se fosse um “boa noite, me acompanhe até uma mesa” ou “tenham uma boa noite e voltem sempre”. Isso promove a escalabilidade, a resiliência e o baixo acoplamento entre os serviços.
Orquestração:
Por outro lado, a arquitetura de micro serviços baseada em orquestração utiliza um componente central, conhecido como orquestrador, para controlar a interação entre os serviços. O orquestrador coordena e gerencia as chamadas entre os serviços, determinando a ordem e o fluxo de execução das operações, por exemplo quando alguém fala “fiquem a vontade, eu volto em instantes”, “estão prontos, podemos fazer o pedido?” e “estava tudo conforme solicitado? Posso retirar os pratos?”. Essa abordagem centralizada oferece maior controle e visibilidade, mas pode criar dependências e aumentar o acoplamento entre os serviços.
Conclusão
Arquiteturas de micro serviços baseadas em coreografia quanto as baseadas em orquestração possuem suas vantagens e desvantagens. A coreografia oferece uma abordagem descentralizada, promovendo independência e escalabilidade dos serviços, além de favorecer a resiliência por meio da comunicação assíncrona, no contexto do restaurante, as pessoas da recepção e do caixa realizam um papel “coreografado”.
Por outro lado, a orquestração oferece controle centralizado, visibilidade e gerenciamento mais granular das operações, sendo útil para fluxos complexos e regras de negócio sofisticadas trazendo junto um alto grau de acoplamento e dependências este papel foi desempenhado pela pessoa que fez o pedido do jantar e ficou atento ao atendimento dos clientes.
Para você quem está atendo e se ligou, você notou que o restaurante opera de forma Híbrida, em determinados fluxos funciona no modelo coreografia e em outros funciona via o modelo orquestrado. Em alguns sistemas adota-se uma arquitetura baseada no modelo Híbrido.
A escolha entre os três modelos dependerá das necessidades e características específicas do sistema, considerando fatores como escalabilidade, autonomia dos serviços e complexidade das operações.
Abraços!
Vida longa e próspera a todos!!
Referências
- https://solace.com/blog/microservices-choreography-vs-orchestration/
- https://camunda.com/blog/2023/02/orchestration-vs-choreography/
- https://www.infoworld.com/article/3687638/orchestration-and-choreography-in-net-microservices.html#:~:text=In%20general%2C%20orchestration%20is%20used,and%20autonomous%20interaction%20between%20services.
MENTORIA
Curtiu o blog? Quer trocar uma ideia comigo sobre algum post?
Marca Aqui! É um papo gratuito
oferecido para quem é leitor do blog, podemos falar de temas como: DevOps, SRE e carreira em TI.
Te convido a ver os outros posts do blog Infra-as-Code garanto que tem coisas legais lá!!
|