O que é um fluxo de trabalho?
Um fluxo de trabalho descreve como as pessoas realizam o trabalho do início ao fim. Um fluxo de trabalho consiste nas etapas e estados em um processo. Os fluxos de trabalho podem aparecer como uma série de etapas em uma lista de verificação ou como um diagrama que visualiza essas etapas.
Este é um exemplo de um fluxo de trabalho com suporte simples:
- Um cliente chamado Carl inicia uma solicitação de suporte.
- O caso aberto é atribuído a Sasha, representante de suporte.
- Sasha recebe o caso atribuído e solicita informações a Carl. Enquanto se aguarda a resposta, o status do caso está pendente.
- Após Carl fornecer as informações solicitadas, Sasha responde com uma solução e atualiza o status do caso para resolvido.
- Carl recebe a resposta e um link de pesquisa, no qual pode fornecer feedback sobre a solicitação de suporte. Ele ficou encantado com a resposta rápida de Sasha e dá altas avaliações na pesquisa. Atualiza-se o status do caso para encerrado.
Nesse fluxo de trabalho, as etapas são: “iniciar”, “atribuir”, “resolver” e “encerrar”. Os estados são: “aberto”, “atribuído”, “pendente”, “resolvido” e “encerrado”. As etapas movem o processo de um estado para o outro ao longo de um caminho até o fluxo de trabalho ser concluído.
Quais são os benefícios do uso dos fluxos de trabalho?
Os fluxos de trabalho fornecem um conjunto de etapas e tarefas replicáveis que você pode iniciar, agendar e monitorar.
É possível visualizar fluxos de trabalho para observação, validar a exatidão do fluxo de trabalho e monitorar as operações no fluxo de trabalho.
Com fluxos de trabalho, as empresas podem alcançar níveis aprimorados de confiabilidade para aplicações distribuídas sem adicionar complexidade ao código. É possível automatizar, otimizar e escalar fluxos de trabalho em nível detalhado.
O que os fluxos de trabalho oferecem à arquitetura da aplicação?
Os fluxos de trabalho promovem a separação lógica entre o fluxo de controle da lógica das etapas do trabalho e as unidades reais de trabalho que contêm sua lógica de negócios exclusiva. Com essa divisão, é possível gerenciar, manter e escalar o maquinário de estado da aplicação separadamente da lógica de negócios principal.
À medida que seus requisitos de negócios mudam, você pode facilmente alterar a lógica da aplicação sem ter de alterar o mecanismo de estado subjacente, a distribuição de tarefas e o controle de fluxo.
Como os serviços de fluxo de trabalho melhoram a arquitetura da aplicação?
Confiabilidade
Separar o rastreamento de estado do processamento de tarefas traz confiabilidade a uma arquitetura baseada em nuvem. Com os serviços de fluxo de trabalho, é possível enviar tarefas aos componentes da aplicação, acompanhar seu progresso e conhecer o estado mais recente do sistema.
Simplicidade
Os fluxos de trabalho substituem a complexidade das soluções internas codificadas de maneira personalizada e do código de automação de processos.
As tarefas que direcionam as etapas de processamento podem ser prolongadas, ficando sujeitas a falhar, esgotar o tempo limite ou precisar de reinicializações. Não raro, elas concluem com taxas de transferência e latências variáveis. Em todos esses casos, acompanhar e visualizar tarefas, além de desafiador, é um trabalho genérico.
Com os serviços de fluxo de trabalho, os desenvolvedores podem evitar o gerenciamento da inserção de infraestrutura da automação de processos. Como resultado, eles podem concentrar sua energia na funcionalidade exclusiva da aplicação.
Escalabilidade
Os serviços de fluxo de trabalho são criados para escalar perfeitamente com o uso da aplicação. À medida que você adiciona mais fluxos de trabalho à aplicação ou aumenta a complexidade dos fluxos de trabalho, você pode automatizar a administração do fluxo de trabalho.
Flexibilidade
Os desenvolvedores podem usar serviços de fluxo de trabalho para criar componentes de aplicações e lógica de coordenação em várias linguagens de programação. Os desenvolvedores então podem se concentrar na lógica diferenciada da aplicação.
Quais são alguns casos de uso de fluxo de trabalho comuns?
Os fluxos de trabalho podem ajudar com qualquer problema computacional ou processo comercial que possa ser dividido em uma série de etapas. Os fluxos de trabalho simplificam o gerenciamento de trabalhos com interdependências. Entre os casos de uso comuns, estão:
- Orquestração de aplicações: coordene microsserviços fracamente acoplados, em que cada um é executado em seu próprio processo e implantado de modo independente, por meio da comunicação de eventos. Combine funções com tecnologia sem servidor para criar uma aplicação Web com uma etapa de aprovação humana assíncrona. Para obter mais exemplos de casos de uso, consulte Microservice orchestration (Orquestração de microsserviços) no Guia do desenvolvedor do AWS Step Functions.
- Processamento de dados: consolide dados de vários bancos de dados em relatórios unificados, refine e reduza grandes conjuntos de dados em formatos úteis ou coordene fluxos de trabalho de análise de múltiplas etapas e de machine learning. Para obter mais exemplos de casos de uso, consulte Data processing (Processamento de dados) no Guia do desenvolvedor do AWS Step Functions.
- DevOps e automação de TI: crie ferramentas para integração contínua e implantação contínua ou crie aplicações orientadas a eventos que respondam automaticamente a mudanças na infraestrutura. Para obter mais exemplos de casos de uso, consulte IT and security automation (Automação e segurança de TI) no Guia do desenvolvedor do AWS Step Functions.
- Comércio eletrônico: automatize processos essenciais aos negócios, como atendimento de pedidos e controle de inventário.
- Aplicações Web: implemente processos robustos de registro de usuários e autenticação, opcionalmente integrando etapas para auditoria e segurança aprimorada.
- Machine learning: execute trabalhos de extração, transformação e carregamento (ETL) para criar, treinar e implantar um modelo de machine learning. Por exemplo, coletar e processar dados de imagem para detectar objetos em um fluxo de vídeo, adicionar caixas delimitadoras ou fornecer informações visuais e de metadados para catalogação de dados. Para obter mais exemplos de casos de uso, consulte Machine learning no Guia do desenvolvedor do AWS Step Functions.
- Automação de segurança: análise programada ou resposta a incidentes de segurança iniciada por eventos de recursos gerenciados, com fluxos de trabalho personalizados que invocam etapas de auditoria e notificação, conforme as regras de negócios.
- Processamento de mídia: extraia dados de documentos PDF ou imagens para processamento. Divida e transcodifique vídeos usando paralelização em massa. Para obter mais exemplos de casos de uso, consulte Media Processing (Processamento de mídia) nos casos de uso do AWS Step Functions.
Como criar um fluxo de trabalho?
Os desenvolvedores inicialmente podem desenvolver soluções codificadas personalizadas e código de automação de processos. Essas soluções começam de maneira simples, mas tendem a se tornar complexas e propensas a erros ao longo do tempo e do desenvolvimento. Com o tempo, o esforço necessário para atualizar a lógica de negócios aumenta, e a taxa de mudança diminui.
É possível mitigar parte da complexidade das soluções internas ao adotar bibliotecas específicas para o fluxo de trabalho. Porém, configurar essas ferramentas pode adicionar novas complexidades ao processo. As etapas e os estados do fluxo de trabalho ainda podem ser difíceis de visualizar.
A criação e o monitoramento avançados de fluxos de trabalho necessitam de ferramentas visuais para organizar os estados e as etapas do fluxo de trabalho. Nessas ferramentas, as regras de lógica de negócios estão disponíveis para gerenciamento e atualização. Usar ferramentas gráficas pode aumentar a produtividade do desenvolvedor e a visibilidade do fluxo de trabalho, além de reduzir o potencial de erros.
Para assistir a um tutorial prático usando o designer de fluxo de trabalho visual Workflow Studio, consulte Crie um fluxo de trabalho com tecnologia sem servidor no AWS Developer Center.
Quais são os padrões comuns de fluxo de trabalho?
Com fluxos de trabalho, é possível se concentrar em definir interações de componentes, em vez de escrever software para fazer as interações funcionarem.
Os fluxos de trabalho podem orquestrar microsserviços e contêineres. Entre os padrões comuns para fluxos de trabalho estão: encadeamento de microsserviços, respostas assíncronas ou síncronas, interações humanas, orquestração e coreografia de contêineres, ramificação e tratamento de erros.
Quais serviços de fluxo de trabalho a AWS fornece?
O AWS Step Functions é um serviço de fluxo de trabalho visual que requer pouco código e é utilizado para orquestrar serviços da AWS, automatizar processos de negócios e criar aplicações com tecnologia sem servidor. O Step Functions contém o Workflow Studio, um designer visual de fluxo de trabalho de arrastar e soltar de pouco código. Essa ferramenta gera automaticamente as funções e configurações no Amazon States Language, uma linguagem estruturada baseada em JSON que é usada para definir máquinas de estado. É possível usar o Amazon States Language no console do Step Functions ou exportá-lo e editá-lo.
O Amazon Managed Workflows for Apache Airflow (Amazon MWAA) oferece a mesma experiência de código aberto do Apache Airflow, mas como um serviço totalmente gerenciado. Use o Amazon MWAA para mover suas soluções on-premises existentes para a nuvem a fim de reduzir os custos operacionais e implantar em escala. Os desenvolvedores podem continuar a escrever modelos de grafo acíclico direcionado (DAG) em Python, declarando dependências para tarefas e integrando com outros produtos da AWS.
Recomendamos o uso do AWS Step Functions para todas as novas aplicações, pois ele oferece uma abordagem mais produtiva e ágil para a coordenação de componentes de aplicação usando fluxos de trabalho visuais. Para assistir a um tutorial prático usando o Step Functions Workflow Studio e o Amazon States Language, consulte Crie um fluxo de trabalho com tecnologia sem servidor no AWS Developer Center.
Próximas etapas com fluxos de trabalho na AWS
Crie fluxos de trabalho com mais de 200 produtos da AWS e 9.000 ações de API
Comece a criar com o API Gateway no Console de Gerenciamento da AWS.