Orquestração e gerenciamento de estados - Implementação de microsserviços na AWS

Orquestração e gerenciamento de estados

A natureza distribuída dos microsserviços faz com que a orquestração de fluxos de trabalho envolvendo vários microsserviços seja um desafio. Os desenvolvedores podem querer adicionar código de orquestração diretamente aos serviços deles. Essa abordagem deve ser evitada porque introduz um acoplamento mais alto e dificulta a rápida substituição de serviços específicos.

Você pode usar o AWS Step Functions para criar aplicações com componentes individuais que executam uma função distinta. O Step Functions fornece uma máquina de estado que oculta a complexidade da orquestração de serviços, como tratamento de erros, serialização e paralelização. Isso permite escalar e alterar rapidamente os aplicativos, evitando código de coordenação adicional dentro dos serviços.

O Step Functions é uma forma confiável de coordenar componentes e percorrer as funções do aplicativo. O Step Functions oferece um console gráfico para organizar e visualizar os componentes do aplicativo como uma série de etapas. Isso facilita a criação e a execução de serviços distribuídos.

O Step Functions inicia e rastreia automaticamente todas as etapas e tenta executar novamente aquelas que apresentaram falha para que a aplicação seja executada na ordem e da forma esperadas. O Step Functions registra em log o estado de cada etapa. Quando ocorre algum erro, você pode diagnosticar e depurar rapidamente os problemas. Você pode alterar e adicionar etapas sem escrever código, o que ajuda na evolução do aplicativo e na agilidade da inovação.

O Step Functions faz parte da plataforma sem servidor da AWS e comporta a orquestração de funções do Lambda, bem como aplicações baseadas em recursos de computação, como o Amazon EC2, o Amazon EKS e o Amazon ECS, e serviços adicionais como o Amazon SageMaker e o AWS Glue. O Step Functions gerencia as operações e a infraestrutura subjacente para ajudar a garantir a disponibilidade da aplicação em qualquer escala.

Para criar fluxos de trabalho, o Step Functions usa a Amazon States Language. Os fluxos de trabalho podem conter etapas paralelas ou sequenciais, bem como de ramificação.

A figura a seguir mostra um exemplo de fluxo de trabalho para uma arquitetura de microsserviços combinando etapas sequenciais e paralelas. A invocação desse fluxo de trabalho pode ser feita usando a API do Step Functions ou o API Gateway.

Um exemplo de fluxo de trabalho de microsserviços invocado pelo Step Functions