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
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
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
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.
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 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 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 como alternativa ao Step Functions.
Para obter mais informações, consulte a documentação do Step Functions.
Exemplo: Amazon MWAA
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:
Para obter informações sobre como trabalhar com DAGs, consulte a documentação do Amazon MWAA.
Principais diferenças entre o Step Functions e o Amazon MWAA
-
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.