Um pipeline de dados é como uma linha de montagem com múltiplas etapas conectadas. Coletar dados, transformá-los e carregá-los no armazenamento — cada etapa deve executar na ordem certa, sob as condições certas. Orquestração é o processo de coordenar automaticamente esse fluxo. Como um maestro conduzindo uma orquestra, um serviço de orquestração dirige cada intérprete (serviço) para tocar sua parte no momento exato. No exame AWS DEA-C01, "qual serviço de orquestração você usaria para uma situação dada?" é um tema frequentemente testado.
Comparação de Serviços de Orquestração
| Serviço | Abordagem | Características | Melhor situação | |---------|----------|----------------|----------------| | AWS Step Functions | Máquina de estados serverless | Fluxo de trabalho visual, nativo da AWS, tratamento de erros robusto | Fluxos de trabalho conectando serviços AWS, lógica de ramificação complexa | | Amazon MWAA | Apache Airflow gerenciado | DAGs Python, operadores ricos | Equipes com Airflow existente, DAGs complexos, integração com sistemas externos | | Amazon EventBridge | Barramento de eventos + Agendador | Roteamento baseado em eventos, agendamentos cron | Gatilhos de eventos, automação baseada em tempo | | AWS Glue Workflow | Orquestração apenas para Glue | Encadear jobs e crawlers do Glue | Orquestrar apenas jobs Glue ETL |
!Comparação de 4 serviços de orquestração de pipeline
AWS Step Functions — O Maestro do Seu Fluxo de Trabalho
AWS Step Functions é um serviço de fluxo de trabalho serverless que conecta múltiplos serviços AWS em uma sequência coordenada. Você define o fluxo de trabalho usando o Amazon States Language (ASL) baseado em JSON, e o Step Functions executa e monitora automaticamente cada etapa. Pense em conectar blocos LEGO — cada "Estado" é um bloco que você encaixa para construir pipelines complexos.
Entendendo os tipos de Estado
Um fluxo de trabalho do Step Functions é composto por diferentes tipos de estados:
Estado Task: Executa uma ação real. Integra-se diretamente com serviços AWS — chamando uma função Lambda, iniciando um job Glue, consultando DynamoDB e mais. Estado Choice: Ramifica para diferentes caminhos com base em condições. Implementa lógica como "se o tamanho dos dados for maior que 1 GB, usar EMR; caso contrário usar Lambda." Estado Parallel: Executa múltiplas ramificações simultaneamente. Útil para processar dados de três regiões ao mesmo tempo. Estado Map: Aplica o mesmo processamento a cada item de um array. Como um loop que processa 100 arquivos um por um. Estado Wait: Pausa a execução por uma duração definida ou até um timestamp específico. Estado Succeed / Fail: Termina o fluxo de trabalho como bem-sucedido ou com falha.
Fluxos de trabalho Standard vs Express
| Aspecto | Standard | Express | |---------|---------|---------| | Duração máxima de execução | 1 ano | 5 minutos | | Garantia de execução | Exatamente uma vez | Pelo menos uma vez | | Histórico de auditoria | Histórico completo | Limitado | | Preços | Por transição de estado | Por número de execuções e duração | | Melhor para | Fluxos de trabalho de longa duração, requisitos de auditoria | Jobs curtos de alta frequência (milhares por segundo) |
Tratamento de erros: Retry e Catch
No mundo real, etapas podem falhar. O Step Functions permite definir o tratamento de erros diretamente em cada estado:
Retry: Tenta novamente automaticamente em caso de falha. Você configura o número de tentativas, o intervalo entre tentativas e o multiplicador de recuo. Exemplo: "Se a chamada Lambda falhar, tentar novamente até 3 vezes com um intervalo de 2 segundos." Catch: Quando todas as tentativas se esgotam, move para um caminho alternativo. Exemplo: "Se o processamento falhar, invocar um Lambda de notificação de erro e enviar um e-mail ao administrador."
Amazon MWAA — Apache Airflow Gerenciado na AWS
Apache Airflow é uma ferramenta de código aberto para definir e agendar pipelines de dados usando código Python. Amazon MWAA (Managed Workflows for Apache Airflow) é um serviço gerenciado onde a AWS instala, mantém e escala o Airflow por você.
O que é um DAG (Directed Acyclic Graph)?
No Airflow, um fluxo de trabalho é representado como um DAG. Um DAG é um "grafo dirigido sem ciclos." Em termos simples, as tarefas são conectadas por setas, e se você seguir as setas nunca volta ao ponto de partida.
Operadores
Um operador define como cada tarefa é executada. O Airflow fornece centenas de operadores: Operadores AWS: GlueJobOperator, EMROperator, S3CopyObjectOperator, etc. Sistemas externos: PostgresOperator, SparkSubmitOperator, HttpOperator, etc.
Guia de decisão MWAA vs Step Functions
| Situação | Escolher | |----------|---------| | Equipe existente já usa Airflow | MWAA | | Precisa integrar com sistemas fora da AWS (BD on-premises, etc.) | MWAA | | Usa apenas serviços nativos da AWS | Step Functions | | Lógica complexa de ramificação/paralela com gerenciamento visual | Step Functions | | Início rápido, baixa curva de aprendizado | Step Functions |
Amazon EventBridge — O Coração da Automação Baseada em Eventos
EventBridge é um serviço que detecta eventos e os roteia para outros serviços. Seu papel é "iniciar automaticamente outra coisa quando algo acontece."
Operação baseada em eventos
Eventos de serviços AWS: Detecta eventos como mudanças de estado de instâncias EC2, uploads de arquivos S3 ou conclusões do CodePipeline. Regras (Rules): Invocam um destino quando um evento corresponde a um padrão específico. Exemplo: "Quando um novo arquivo é criado no S3, iniciar um fluxo de trabalho do Step Functions." Destinos (Targets): Entrega eventos para Lambda, Step Functions, SQS, SNS, Kinesis, API Gateway e muitos outros serviços.
Agendador (Scheduler)
Executa tarefas em um cronograma usando expressões cron ou rate: → Executar todo dia às 8:00 AM UTC → Executar a cada hora → Executar às 9:00 AM apenas em dias úteis
O EventBridge serve como o "sinal de início" para pipelines. Por exemplo: "Iniciar o job Glue ETL toda meia-noite" ou "Iniciar o pipeline do Step Functions quando um arquivo chega ao S3."
Resumo dos Pontos-Chave para o Exame
| Palavra-chave | Escolha este serviço | |--------------|---------------------| | Fluxo de trabalho serverless, nativo da AWS, visual | Step Functions | | Fluxo de trabalho com lógica de ramificação | Estado Choice do Step Functions | | Etapas de processamento paralelo | Estado Parallel do Step Functions | | Tentar novamente em caso de falha do fluxo de trabalho | Retry/Catch do Step Functions | | Apache Airflow gerenciado | Amazon MWAA | | Migrar DAGs Airflow existentes para AWS | Amazon MWAA | | Gatilho baseado em eventos, agendamento cron | EventBridge | | Orquestrar apenas jobs Glue ETL | Glue Workflow | | Fluxos de trabalho curtos de alta frequência (milhares por segundo) | Fluxo de trabalho Express do Step Functions |
A distinção principal entre Step Functions e MWAA: se seu fluxo de trabalho é centrado em serviços nativos da AWS, use Step Functions. Se você precisa de DAGs Python e do ecossistema Airflow, use MWAA.