Visão geral

  • O que é o AWS Step Functions?

    O AWS Step Functions é um serviço gerenciado que facilita a coordenação de componentes de aplicações distribuídas e microsserviços usando fluxos de trabalho visuais. A criação de aplicações usando componentes individuais, cada um deles executando uma função discreta, permite alterar rapidamente a escala e as aplicações. O Step Functions é uma forma confiável de coordenar componentes e percorrer as funções da aplicação. O Step Functions oferece um console gráfico para organizar e visualizar os componentes da aplicação como uma série de etapas. Isso simplifica a criação e a execução de aplicações com várias etapas. O Step Functions aciona e rastreia automaticamente todas as etapas e tenta executar novamente etapas que apresentaram falha para que a aplicação execute na ordem e da forma esperada. 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, facilitando a evolução da aplicação e agilizando a inovação.

  • P: Quais são os benefícios de projetar um aplicativo usando orquestração de serviços para coordenar tarefas?

    A divisão de um aplicativo em componentes de serviços (ou etapas) garante que a falha de um componente não cause a indisponibilidade de todo o sistema, que cada componente escale de forma independente dos demais e que os componentes possam ser atualizados sem necessidade de nova implantação de todo o sistema após cada alteração. A coordenação de componentes de serviço envolve o gerenciamento das dependências de execução, da programação e da colaboração de acordo com o fluxo lógico do aplicativo. Nessas aplicações, os desenvolvedores podem usar a orquestração de serviços com essa finalidade e também para processar falhas.

  • Quais são alguns casos de uso que podem ser solucionados com o AWS Step Functions?

    O AWS Step Functions é útil para qualquer problema computacional ou processo de negócios que possa ser subdividido em uma série de etapas. Entre os casos de uso comuns, estão:

    • Processamento de documentos e dados: consolide dados de vários bancos de dados em relatórios unificados. Refine e reduza conjuntos de dados grandes em formatos úteis.
    • Desenvolvimento e operações: crie ferramentas para integração e implantação contínuas. Crie aplicações orientadas a eventos que respondem automaticamente a alterações na infraestrutura.
    • Comércio eletrônico: automatize processos de negócios de missão crítica, como atendimento de pedidos e controle de inventário.
    • Aplicações web: implemente processos robustos de registro de usuários e autenticação de login.
  • Como funciona o AWS Step Functions?

    Com o AWS Step Functions, você define a aplicação como uma máquina de estados, uma série de etapas que capturam juntas o comportamento da aplicação. Os estados da máquina de estados podem ser tarefas, etapas sequenciais, etapas paralelas, caminhos ramificados (escolha) e/ou temporizadores (espera). As tarefas são unidades de trabalho. Esse trabalho pode ser executado por funções do AWS Lambda, instâncias do Amazon EC2 de qualquer tipo e contêineres ou servidores locais. Você pode atribuir uma tarefa a qualquer coisa que possa se comunicar com a API do Step Functions. O console visual representa graficamente cada estado na ordem de execução de forma automática, o que facilita o projeto de aplicações com várias etapas. O console destaca o status de cada etapa em tempo real e oferece um histórico detalhado de cada execução. O Step Functions opera e altera a escala da aplicação e da computação subjacente, ajudando a garantir a execução confiável da aplicação em condições de aumento de demanda.

  • Como faço para começar a usar o AWS Step Functions?

    Para começar a usar o AWS Step Functions, acesse a página de detalhes do AWS Step Functions e clique no botão “Comece a usar gratuitamente”. Caso não tenha uma conta da Amazon Web Services, você será convidado a criar uma. Após a inscrição, você poderá percorrer um exemplo no console do AWS Step Functions, que mostrará as etapas da criação de uma máquina de estados. Acesse o AWS Step Functions no Console de Gerenciamento da AWS. Em seguida, selecione o esquema “Hello World” e adicione uma função “HelloWorld” do Lambda. Agora, você pode visualizar e executar sua máquina de estado. Para começar a usar o AWS Step Functions nos aplicativos, consulte a documentação do AWS Step Functions.

  • Qual a linguagem usada pelo AWS Step Functions?

    Você pode usar qualquer linguagem de programação para escrever uma atividade, desde que ela possa se comunicar com o AWS Step Functions por meio de APIs de web service. Para sua conveniência, você pode usar um AWS SDK da sua linguagem favorita. O AWS Lambda é compatível com código escrito em Node.js (JavaScript), Python, Java (compatível com Java 8) e C# (usando o runtime .NET Core). As máquinas de estado são definidas em JSON usando o Amazon States Language.

  • Posso usar o AWS Step Functions com meus recursos locais?

    Sim. As aplicações do AWS Step Functions podem combinar operadores executados no datacenter com operadores executados na nuvem. Os operadores no datacenter continuam a ser executados como sempre, junto com todos os operadores baseados na nuvem.

Comparações

  • Quando devo usar o AWS Step Functions e quando devo usar o Amazon SQS?

    Você deve considerar o AWS Step Functions quando precisa coordenar componentes de serviço no desenvolvimento de aplicativos altamente escaláveis e auditáveis. Você deve considerar o Amazon Simple Queue Service (Amazon SQS) quando precisa de uma fila hospedada confiável e altamente escalável para enviar, armazenar e receber mensagens entre serviços. O Step Functions acompanha todas as tarefas e eventos em uma aplicação. O Amazon SQS exige que você implemente o seu próprio acompanhamento de aplicações, particularmente se a aplicação usa várias filas. O console e as APIs de visibilidade do Step Functions oferecem uma visibilidade centrada na aplicação que permite pesquisar execuções, analisar detalhes dessas execuções e gerenciá-las. O Amazon SQS exige a implementação dessas funcionalidades adicionais. O Step Functions oferece diversos recursos para facilitar o desenvolvimento de aplicações, como a passagem de dados entre tarefas e flexibilidade na sua distribuição. O Amazon SQS exige que você implemente algumas funcionalidades para as aplicações. Embora você possa usar o Amazon SQS para criar fluxos de trabalho básicos para coordenar uma aplicação distribuída, o Step Functions oferece essa facilidade pronta para uso, juntamente com outros recursos para aplicações.

  • Quando devo usar o AWS Step Functions e quando devo usar o AWS Batch?

    O AWS Batch é um serviço que facilita a execução de fluxos de trabalho de computação em lotes em qualquer escala na Nuvem AWS. Você deve usar o AWS Step Functions quando precisa criar um aplicativo distribuído como uma série de etapas, incluindo lógica sequencial, paralela e/ou de ramificação (escolhas). Você pode usar o AWS Batch para executar trabalhos em aplicativos e usar o Step Functions para enviar vários trabalhos do Batch que contêm interdependências. Use o Batch quando precisar gerenciar automaticamente uma infraestrutura de computação para escalar de acordo com as necessidades do processamento de lotes.

  • Quando devo usar o AWS Step Functions e quando devo usar o Amazon Simple Workflow Service (SWF)?

    Você deve considerar o uso do AWS Step Functions para todos os novos aplicativos, pois ele oferece uma abordagem mais produtiva e ágil para a coordenação de componentes de aplicativos usando fluxos de trabalho visuais. Se você precisa de sinais externos para intervir em processos ou quer lançar processos secundários que retornam um resultado para um processo principal, considere o Amazon Simple Workflow Service (Amazon SWF). Com o Amazon SWF, em vez de escrever máquinas de estados usando JSON declarativo, você escreve um programa administrador para separa etapas de atividades de etapas de decisões. Com isso, você consegue controle total sobre a orquestração lógica, mas aumenta a complexidade do desenvolvimento das aplicações. É possível escrever programas administradores na sua linguagem de programação preferida. Também é possível usar o framework Flow para utilizar construções de programação que estruturam interações assíncronas para você.

Integração

  • Como o AWS Step Functions funciona com outros serviços da AWS?

    O AWS Step Functions funciona em conjunto com vários outros serviços da AWS, como AWS CloudFormation, AWS Lambda, Amazon EC2, Amazon EC2 Container Service (ECS), Amazon API Gateway, Amazon CloudWatch, AWS CloudTrail e Amazon EC2 Auto Scaling. Veja a seguir alguns exemplos do que é possível fazer usando os diversos serviços da AWS:

    • Lance vários recursos relacionados exigidos para as máquinas de estado e as atividades do AWS Step Functions usando o AWS CloudFormation
    • Implemente tarefas usando funções ou programas do Lambda executados no EC2 ou em contêineres do ECS
    • Associe as APIs do Step Functions aos métodos em uma API do API Gateway
    • Escale a sua frota de tarefas do EC2 para atividades do AWS Step Functions em função das métricas do CloudWatch
  • Como o AWS Step Functions funciona com o AWS Lambda?

    Você pode usar funções do AWS Lambda para executar tarefas na máquina de estados. O AWS Step Functions passa a entrada para a função do Lambda especificada e aguarda que ela retorne um resultado. O AWS Lambda permite criar tarefas sem provisionar e gerenciar servidores, em todas as linguagens compatíveis com o Lambda. Para saber mais sobre o uso de Step Functions com o Lambda, consulte a documentação do Step Functions.

  • Como o AWS Step Functions funciona com o Amazon EC2 e outros recursos computacionais?

    Todo o trabalho na máquina de estados é executado por tarefas. Uma tarefa pode ser uma atividade, que pode consistir em qualquer código em qualquer linguagem. As atividades podem ser hospedadas no Amazon EC2, no Amazon ECS, em dispositivos móveis – basicamente, em qualquer computador que possa se comunicar com a API do AWS Step Functions. As atividades executam long-poll no Step Functions usando chamadas de API para solicitar trabalho, receber dados de entrada, realizar o trabalho e retornar um resultado.

  • Como o AWS Step Functions funciona com o Amazon API Gateway?

    Com apenas alguns cliques no Console de Gerenciamento da AWS, é possível associar as APIs do Step Functions a métodos na API do Gateway API para que, quando uma solicitação HTTPS for enviada a um método de API definido por você, o API Gateway chame suas ações de API do Step Functions. É possível usar uma API do Amazon API Gateway para iniciar máquinas de estado do Step Functions que coordenam os componentes de uma aplicativo distribuído de back-end. Também é possível integrar tarefas de atividade humana às etapas do aplicativo, como as solicitações e as respostas de uma aprovação. Além disso, é possível fazer chamadas assíncronas sem servidor para as APIs dos serviços usados pelo aplicativo.

  • Como o AWS Step Functions funciona com o Amazon CloudWatch?

    O Amazon CloudWatch é um serviço de monitoramento para serviços e Aplicativos da AWS executados na AWS. O Amazon CloudWatch coleta e rastreia métricas, define alarmes e reage automaticamente a alterações no AWS Step Functions. Veja a seguir alguns exemplos do que é possível fazer com o Amazon CloudWatch e o AWS Step Functions:

    • Monitorar métricas de fluxos de trabalho do Step Functions
    • Lançar fluxos de trabalho do Step Functions como resposta ao CloudWatch Events
    • Gerar alarmes quando o Step Functions ultrapassar limites de métricas
    • Agendar fluxos de trabalho do Step Functions em intervalos de um minuto ou mais usando o CloudWatch Events

Segurança

Comece a usar o AWS Step Functions

Visite a página de conceitos básicos