Descobrir os casos de uso dos fluxos de trabalho do Step Functions - AWS Step Functions

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á.

Descobrir os casos de uso dos fluxos de trabalho do Step Functions

Com AWS Step Functions, você pode criar fluxos de trabalho que gerenciam o estado ao longo do tempo, tomam decisões com base nos dados recebidos e lidam com erros e exceções.

Processamento de dados

Conforme o volume de dados cresce de diversas fontes, as organizações precisam processar os dados com maior rapidez para que possam tomar decisões de negócios mais rápidas e embasadas. Para processar dados em grande escala, as organizações precisam provisionar recursos de forma elástica para gerenciar as informações que recebem de dispositivos móveis, aplicativos, satélites, marketing e vendas, armazenamentos de dados operacionais, infraestrutura e muito mais.

Com escalabilidade horizontal e fluxos de trabalho tolerantes a falhas, o Step Functions pode operar milhões de execuções simultâneas. Você pode processar seus dados mais rapidamente usando execuções paralelas com Estado paralelo do fluxo de trabalho estado. Ou é possível usar o paralelismo dinâmico do estado Estado de mapa do fluxo de trabalho para iterar em grandes conjuntos de dados em armazenamentos de dados, como os buckets do Amazon S3. O Step Functions também oferece a capacidade de repetir execuções com falha ou escolher um caminho específico para lidar com erros sem a necessidade de gerenciar um processo complexo.

O Step Functions se integra diretamente a outros serviços de processamento de dados fornecidos por, AWS como AWS Batchprocessamento em lote, Amazon EMR para processamento de big data, AWS Gluepreparação de dados, Athena para análise de dados AWS Lambdae computação.

Exemplos dos tipos de fluxos de trabalho de processamento de dados que os clientes usam o Step Functions para realizar incluem:

Processamento de arquivos, vídeos e imagens

  • Pegue uma coleção de arquivos de vídeo faça a conversão para outros tamanhos ou resoluções ideais para o dispositivo em que serão exibidos, como telefones celulares, notebooks ou televisão.

  • Pegue uma grande coleção de fotos enviadas pelos usuários e faça a conversão para miniaturas ou imagens de várias resoluções que podem ser exibidas nos sites dos usuários.

  • Pegue dados semiestruturados, como um CSV arquivo, e combine-os com dados não estruturados, como uma fatura, para produzir um relatório comercial que é enviado mensalmente às partes interessadas da empresa.

  • Pegue os dados de observação da Terra coletados de satélites, faça a conversão para formatos que se alinhem e, em seguida, adicione outras fontes de dados coletadas na Terra para obter informações adicionais.

  • Pegue os registros de transporte de vários modos de transporte de produtos e procure otimizações usando simulações de Monte Carlo e, em seguida, envie relatórios para as organizações e pessoas que confiam em você para enviar os produtos.

Coordene os trabalhos de extração, transformação e carregamento (ETL):

  • Combine registros de oportunidades de vendas com conjuntos de dados de métricas de marketing por meio de uma série de etapas de preparação de dados usando AWS Glue e produza relatórios de inteligência de negócios que podem ser usados em toda a organização.

  • Crie, inicie e encerre um EMR cluster da Amazon para processamento de big data.

Cargas de trabalho de processamento em lote e computação de alto desempenho (HPC):

  • Crie um pipeline de análise secundária e genômica que processe sequências brutas do genoma inteiro em chamadas de variantes. Alinhe arquivos brutos a uma sequência de referência e chame variantes em uma lista especificada de cromossomos usando paralelismo dinâmico.

  • Encontre eficiências na produção do próximo dispositivo móvel ou outros eletrônicos, simulando vários layouts e usando diferentes compostos elétricos e químicos. Execute o processamento em grandes lotes das cargas de trabalho por meio de várias simulações para obter o design ideal.

Machine learning

O machine learning oferece uma maneira para as organizações analisarem com rapidez os dados coletados e identificarem padrões e tomar decisões com o mínimo de intervenção humana. O machine learning começa com um conjunto inicial de dados, conhecido como dados de treinamento. Os dados de treinamento aumentam a acurácia da previsão de um modelo de machine learning e servem como alicerce para o modelo aprender. Quando o modelo treinado é considerado exato o suficiente para atender às necessidades da empresa, é possível implantá-lo na produção. O AWS Step Functions Data Science Project no Github é uma biblioteca de código aberto que fornece fluxos de trabalho para pré-processar dados, treinar e publicar seus modelos usando Amazon AI e SageMaker Step Functions.

O pré-processamento de conjuntos de dados é a forma como uma organização geralmente cria dados de treinamento. Esse método de pré-processamento adiciona informações, como etiquetar objetos em uma imagem, fazer anotações em texto ou processar áudio. Para pré-processar dados AWS Glue, você pode usar ou criar uma instância de notebook de SageMaker IA que seja executada em um notebook Jupyter. Quando os dados estiverem prontos, será possível fazer upload deles no Amazon S3 para acesso. Conforme os modelos de machine learning forem treinados, você poderá fazer ajustes nos parâmetros de cada modelo para melhorar a acurácia.

O Step Functions fornece uma maneira de orquestrar fluxos de trabalho end-to-end de aprendizado de máquina na IA. SageMaker Esses fluxos de trabalho podem incluir pré-processamento de dados, pós-processamento, engenharia de atributos, validação de dados e avaliação de modelos. Depois que o modelo for implantado na produção, você poderá refinar e testar novas abordagens com o objetivo de melhorar continuamente os resultados dos negócios. Você pode criar fluxos de trabalho prontos para produção diretamente em Python ou usar o Step Functions Data Science SDK para copiar esse fluxo de trabalho, experimentar novas opções e colocar o fluxo de trabalho refinado em produção.

Veja abaixo alguns tipos de fluxos de trabalho de machine learning para os quais os clientes usam o Step Functions:

Detecção de fraudes

  • Identifique e evite que transações fraudulentas, como fraude de crédito, ocorram.

  • Detecte e evite invasões de contas usando modelos treinados de machine learning.

  • Identifique abusos promocionais, incluindo a criação de contas falsas, para que você possa agir com rapidez.

Personalização e recomendações

  • Recomende produtos para clientes-alvo com base nos interesses deles.

  • Preveja se um cliente atualizará a conta de um nível gratuito para uma assinatura paga.

Enriquecimento de dados

  • Use o enriquecimento de dados como parte do pré-processamento para oferecer dados de treinamento melhores para modelos de machine learning mais precisos.

  • Anote trechos de texto e áudio para adicionar informações sintáticas, como sarcasmo e gírias.

  • Identifique objetos adicionais em imagens para oferecer informações essenciais para o modelo aprender, como se um objeto é uma maçã, uma bola de basquete, uma pedra ou um animal.

Orquestração de microsserviços

O Step Functions oferece opções para gerenciar os fluxos de trabalho de microsserviços.

A arquitetura de microsserviços divide os aplicativos em serviços com acoplamento fraco. Os benefícios incluem maior escalabilidade, maior resiliência e menor tempo para entrar no mercado. Cada microsserviço é independente, facilitando aumentar a escala verticalmente de um único serviço ou função sem a necessidade de escalar todo o aplicativo. Os serviços individuais têm acoplamento fraco, permitindo que equipes independentes se concentrem em um único processo de negócios, sem a necessidade de entender toda a aplicação.

Os microsserviços também oferecem componentes individuais que atendem às necessidades dos negócios. Com isso, você ganha flexibilidade e não precisa reescrever todo o fluxo de trabalho. Equipes diferentes podem usar as linguagens de programação e os frameworks escolhidos para trabalhar com o microsserviço.

Em relação a fluxos de trabalho de longa duração, é possível usar fluxos de trabalho padrão com a integração do AWS Fargate para orquestrar aplicações executadas em contêineres. Em relação a fluxos de trabalho de curta duração e de alto volume que exigem uma resposta imediata, os fluxos de trabalho expressos síncronos são ideais. Um exemplo são as aplicações de dispositivos móveis ou baseadas na web, que exigem a conclusão de uma série de etapas antes de exibirem uma resposta. Você pode acionar diretamente um fluxo de trabalho expresso síncrono do Amazon API Gateway, e a conexão é mantida aberta até que o fluxo de trabalho seja concluído ou atinja o tempo limite. Para fluxos de trabalho de curta duração que não exigem uma resposta imediata, o Step Functions fornece fluxos de trabalho expresso assíncronos.

Exemplos de algumas API orquestrações que usam Step Functions incluem:

Fluxos de trabalho síncronos ou em tempo real

  • Altere um valor em um registro, como atualizar o sobrenome de um funcionário, e deixe a alteração imediatamente visível na tela.

  • Atualize um pedido durante a finalização da compra, por exemplo, adicione, remova ou altere a quantidade de um item, e depois mostre imediatamente o carrinho atualizado para o cliente.

  • Execute um trabalho de processamento rápido e devolva imediatamente o resultado ao solicitante.

Orquestração de contêiner

  • Execute trabalhos no Kubernetes com o Amazon Elastic Kubernetes Service ou no Amazon Elastic Container ECS Service () com o Fargate e faça a integração com outros serviços, como o envio de notificações AWS SNS com a Amazon, como parte do mesmo fluxo de trabalho.

Automação de TI e segurança

Com o Step Functions, é possível criar fluxos de trabalho que escalem e reajam automaticamente aos erros no fluxo de trabalho. Os fluxos de trabalho podem repetir as tarefas que falharam automaticamente e usar um recuo exponencial para lidar com erros.

O tratamento de erros é essencial em cenários de automação de TI para gerenciar operações cada vez mais complexas e demoradas, como atualizar e corrigir software, implantar atualizações de segurança para solucionar vulnerabilidades, selecionar infraestrutura, sincronizar dados e rotear tíquetes de suporte. Ao automatizar tarefas repetitivas e demoradas, a organização pode concluir as operações de rotina de maneira rápida e consistente e em grande escala. Você pode mudar o foco para esforços estratégicos, como desenvolvimento de recursos, solicitações complexas de suporte e inovação, e ao mesmo tempo atender às demandas operacionais.

Quando a intervenção humana é necessária para que o fluxo de trabalho continue (por exemplo, aprovar um aumento substancial de crédito), é possível definir a lógica de ramificação no Step Functions para que as solicitações abaixo de um limite sejam aprovadas automaticamente e as solicitações do limite exijam aprovação humana. Quando a aprovação humana é necessária, o Step Functions permite pausar o fluxo de trabalho, aguardar uma resposta humana e continuar o fluxo de trabalho depois que a resposta é recebida.

Veja alguns exemplos de fluxos de trabalho de automação:

Automação de TI

  • Corrija automaticamente incidentes como SSH portas abertas, pouco espaço em disco ou quando o acesso público a um bucket do Amazon S3 recebe acesso público.

  • Automatize a implantação do. AWS CloudFormation StackSets

Automação de segurança

  • Automatize a resposta a um cenário em que um usuário e a chave de acesso do usuário tenham sido expostos.

  • Corrija automaticamente as respostas a incidentes de segurança de acordo com as ações da política, como restringir a ação a ações específicas. ARNs

  • Avise os funcionários sobre e-mails de phishing segundos após o recebimento.

Aprovação humana

  • Automatize o treinamento de modelo de machine learning e, depois, receba a aprovação do modelo por um cientista de dados antes de implantar o modelo atualizado.

  • Automatize o encaminhamento de feedback do cliente com base na análise de sentimentos para que os comentários negativos sejam rapidamente encaminhados para análise.