BT

AWS Step Functions: coordenando aplicações distribuídas e microserviços utilizando workflows visuais

| por Daniel Bryant Seguir 740 Seguidores , traduzido por Geraldo Coen Seguir 0 Seguidores em 16 fev 2017. Tempo estimado de leitura: 4 minutos |

A Amazon Web Service lançou o AWS Step Functions, um serviço que permite a coordenação de aplicações distribuídas e microserviços usando workflows visuais. O console do AWS Step Functions permite a especificação de uma máquina de estados em formato JSON , responsável por executar de forma coordenada todos os passos necessários para uma aplicação, por exemplo, chamar uma função AWS Lambda ou um microserviço dentro de um container disponibilizado no AWS EC2 Container Services (ECS).

Cada uma das máquina de estado criada através do AWS Step Function define um conjunto de estados e as transições entre eles. Os estados podem ser ativados sequencialmente ou em paralelo. No caso de uma ativação em paralelo, o serviço garantirá que todos os estados paralelos sejam atingidos antes do processo seguir adiante. Os estados podem realizar alguma tarefa, tomar decisões e controlar o progresso da máquina de estado.

É possível executar várias cópias de uma mesma máquina de estados ao mesmo tempo. Para esses casos, cada uma das cópias é chamada de uma "execução". De acordo com o AWS Blog, o serviço AWS Step Functions permitirá rodar milhares de execuções de forma concorrente.

Todo o trabalho realizado dentro de uma máquina de estado AWS Step Functions é conduzido por uma "tarefa". Uma tarefa pode ser:

Uma função AWS Lambda: uma tarefa totalmente baseada na nuvem e que roda em um serviço Lambda. As funções Lambda podem ser escritas em JavaScript (que podem ser escritas utilizando-se o console AWS Management ou carregadas no serviço AWS Lambda), em Java ou Python (que devem ser carregadas no serviço AWS Lambda).

Uma atividade: um conceito que se refere a uma tarefa a ser realizada por um aplicação "worker" ou por um microserviço disponibilizado em uma plataforma como AWS EC2 ou AWS ECS.

  • Uma aplicação worker pode ser implementada em qualquer linguagem que possa fazer chamadas à API do AWS Step Functions.
  • Uma aplicação worker deve criar um pool de AWS Step Functions através de chamadas às API 'GetActivityTask' e 'SendTask'. Segundo o Blog da AWS, em última análise uma atividade pode inclusive ser uma 'tarefa humana' que depende de uma intervenção humana para ter continuidade.
  • Se uma atividade possuir um sistema de heartbeat para timeout, o worker que o implementa precisa mandar requisições de atualização através da ação 'SendTaskHeartbeat'.

As atividades não são versionadas e devem sempre ser compatíveis com versões anteriores. Caso seja necessária uma mudança na definição de uma atividade, e essa mudança a tornar incompatível com versões anteriores, uma nova atividade deve ser criada pelo Step Functions com um nome diferente.

O tratamento de erros e a lógica de novas tentativas de execução fazem parte da definição de uma máquina de estados e, dessa forma, também podem ser especificadas em formato JSON.

Ao se criar uma especificação de máquina de estado, o gem Ruby 'statelint' do novo AWS Labs pode ser utilizado para validar o JSON criado manualmente ou por alguma ferramenta, verificando erros comuns como estados fora do escopo ou omissão de um estado terminal.

O design de uma máquina de estado pode ser visualizado no console do AWS Step Functions, e sua execução acompanhada através de um diagrama codificado em cores ,ajudando na identificação de erros no andamento e o sucesso ou falha em cada um dos passos.

Apesar do AWS Step Functions ter sido liberado recentemente, Simon Wardley, pesquisador do Leading Edge Forum, sugere que a utilização do Step Functions juntamente com uma solução 'serverless', como o AWS Lambda, pode apoiar a codificação de regras de negócio de maneira a aumentar a agilidade num futuro próximo. Como consequência, foram iniciadas as primeiras tentativas de criar uma Business Process Execution Language (BPEL - Linguagem de Execução de Processos de Negócio).

"Quando se pensa em AWS Lambda, AWS Step Functions e outras soluções, é necessário se fazer uma análise de uma forma purista e profunda da automação a ser implementada, levando-se em conta não somente o que automatizar e como transformar isso em mapas ou sistemas relacionados. É necessário definir como disponibilizar tais automações em todos os lugares. Imaginando um cenário em escala e com a competitividade que acredito que atingiremos, essa questão se torna essencial.

O Blog da AWS especifica que o AWS Step Functions está disponível nas regiões US East (Virginia do Norte), US East (Ohio), US West (Oregon), EU (Irlanda), and Asia Pacific (Tóquio). Através do AWS Free Tier é possível executar, sem encargos, até 4.000 transições de estado por mês. Fora do Free Tier, o custo é de US$ 0,025 por 1.000 transições de estado.

Informações adicionais sobre AWS Step Functions podem ser encontradas na página do produto, no Blog da AWS e em um webinar da AWS recentemente disponibilizado no YouTube.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT