

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Orquestração
<a name="orchestration"></a>

Nessa abordagem, um único orquestrador é responsável por chamar cada microsserviço, determinar se as chamadas devem ser feitas em sequência ou em paralelo, manipular as respostas individuais dos serviços ao longo do processo e compilar o resultado final. Um orquestrador pode misturar invocações síncronas e assíncronas.

O [AWS Step Functions](https://aws.amazon.com/step-functions/) e o [Amazon Managed Workflows for Apache Airflow (Amazon MWAA)](https://aws.amazon.com/managed-workflows-for-apache-airflow/) são ótimas opções para orquestradores de fluxo de trabalho.

A orquestração é uma boa escolha quando há ramificações lógicas em seu processo e você precisa de um único local para encapsular essa lógica. Também é útil quando você deseja implementar o padrão de verificação de reivindicação assíncrona. Por exemplo, os fluxos de trabalho padrão no Step Functions podem pausar um fluxo de trabalho e aguardar um retorno de chamada de outro serviço. O uso de um orquestrador também melhora o monitoramento e a observabilidade de um processo.

## Exemplo: Step Functions
<a name="step-functions"></a>

Você pode usar o Step Functions para coordenar várias funções do Lambda e Serviços da AWS outras para criar fluxos de trabalho complexos para integração de microsserviços. Essa opção é particularmente útil para processos longos e com várias etapas que envolvem vários microsserviços.

Considere o uso do Step Functions se:
+ A integração do seu microsserviço envolve processos complexos e com várias etapas.
+ Você precisa manter o estado durante operações de longa duração.
+ Você deseja implementar o tratamento de erros e a lógica de repetição no nível do fluxo de trabalho.
+ Você precisa coordenar operações síncronas e assíncronas.

O Step Functions oferece um editor visual para projetar fluxos de trabalho complexos, o que simplifica o processo de criação e gerenciamento de máquinas de estado. Ele fornece mecanismos integrados de tratamento de erros, incluindo lógica de repetição e gerenciamento de estado de erro, que aumentam a confiabilidade e a robustez das suas aplicações. Os fluxos de trabalho padrão oferecem suporte a processos de longa duração, de até um ano, o que é adequado para fluxos de trabalho que abrangem períodos prolongados. Essa opção separa a lógica de orquestração do código da aplicação, reduzindo significativamente a complexidade do código. Isso significa que os desenvolvedores podem se concentrar na lógica central do negócio, enquanto o Step Functions lida com o controle de fluxo e a coordenação dos componentes distribuídos.

Por exemplo, considere um processo de aprovação de empréstimo em uma aplicação de serviços financeiros, ilustrado no diagrama a seguir. O processo começa quando uma aplicação de empréstimo é apresentada.

![Usando AWS Step Functions para criar fluxos de trabalho complexos para integração de microsserviços.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/modernization-integrating-microservices/images/step-functions.png)


Na máquina de estados ilustrada no diagrama anterior, o Step Functions coordena as seguintes etapas:
+ Validar dados da aplicação (função do Lambda)
+ Verificar pontuação de crédito (função do Lambda que chama uma API externa)
+ Avaliar o risco (função do Lambda)
+ Se o risco for alto, encaminhar para revisão manual (tarefa de aprovação humana)
+ Se aprovado, inicie o desembolso do empréstimo (função do Lambda)
+ Enviar notificação ao candidato (Amazon SNS)

Você pode usar essa abordagem para gerenciar um processo complexo e potencialmente demorado de maneira confiável, com tratamento de erros integrado e a capacidade de incluir etapas automatizadas e manuais. 

Considerações:
+ Projete sua máquina de estados cuidadosamente para lidar com todos os cenários possíveis.
+ Execute as etapas em paralelo, sempre que possível.
+ Use os mecanismos integrados de tratamento de erros e repetição de tentativas do Step Functions para falhas permanentes e temporárias.
+ Considere usar [fluxos de trabalho padrão ou expressos](https://docs.aws.amazon.com/step-functions/latest/dg/choosing-workflow-type.html) com base no seu caso de uso. Os fluxos de trabalho expressos podem ser preferíveis para fluxos de trabalho de curta duração ou de alto volume.
+ [Monitore as métricas de execução](https://docs.aws.amazon.com/step-functions/latest/dg/monitoring-logging.html) para otimizar seu fluxo de trabalho.
+ Use fluxos de trabalho aninhados para encapsular e reutilizar funcionalidades em várias máquinas de estado.
+ Para fluxos de trabalho complexos, considere usar o [Amazon Bedrock Agents](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-how.html) como alternativa ao Step Functions.

Para obter mais informações, consulte a [documentação do Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/).

## Exemplo: Amazon MWAA
<a name="mwaa"></a>

Se sua organização já utiliza o Apache Airflow, o Amazon MWAA é uma escolha natural como orquestrador de fluxo de trabalho. No Apache Airflow, você cria seus fluxos de trabalho como grafos acíclicos direcionados () usando Python. DAGs A representação DAG da máquina de estados ilustrada na seção Step Functions pode ser semelhante a esta:

![Usando o Amazon MWAA e DAGs para criar fluxos de trabalho complexos para integração de microsserviços.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/modernization-integrating-microservices/images/mwaa.png)


Para obter informações sobre como trabalhar com DAGs, consulte a documentação do [Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags.html).

## Principais diferenças entre o Step Functions e o Amazon MWAA
<a name="differences"></a>
+ O Step Functions é um serviço sem servidor totalmente gerenciado, portanto, não há infraestrutura para provisionar previamente e não é necessário programar uma janela de manutenção. O Amazon MWAA deve passar por sua implantação com antecedência, e você escolhe o tamanho e o número de nós em seu cluster.
+ No Step Functions, você pode criar máquinas de estado de várias maneiras, incluindo o Workflow Studio, diretamente como JSON ou usando o AWS Cloud Development Kit (AWS CDK). O Apache DAGs Airflow é escrito em Python.
+ Com o Step Functions, você não incorre em nenhum custo quando não há fluxos de trabalho em execução. Com o Amazon MWAA, você incorrerá em custos mesmo quando não DAGs estiver funcionando.