Como criar pipelines de dados prontos para produção usando o Dataflow: visão geral

Este documento faz parte de uma série que ajuda a melhorar a prontidão de produção dos seus pipelines de dados usando o Dataflow. A série é destinada a um público técnico cujas responsabilidades incluem desenvolver, implantar e monitorar pipelines do Dataflow. Os documentos da série pressupõem uma compreensão funcional do Dataflow e do Apache Beam.

A série usa o termo prontidão de produção para ser adequada para fornecer funcionalidades essenciais aos negócios. As informações da série abordam as práticas recomendadas relacionadas a uma série de considerações universais, como confiabilidade e manutenção do pipeline, otimização do desempenho do pipeline e produtividade do desenvolvedor.

Os documentos da série incluem as seguintes partes:

Introdução

Em computação, um pipeline de dados é um tipo de aplicativo que processa dados por meio de uma sequência de etapas de processamento conectadas. Os pipelines de dados podem ser aplicados a muitos casos de uso, como a migração de dados entre sistemas, extrair, transformar, carregar (ETL, na sigla em inglês), o enriquecimento de dados e a análise de dados em tempo real. Normalmente, um pipeline de dados é operado como um processo em lote, que executa e depois processa dados durante a execução ou como um processo de streaming, que executa continuamente e processa dados à medida que eles se tornam disponíveis para o pipeline.

O Dataflow é um serviço gerenciado para executar pipelines de processamento de dados em lote e streaming desenvolvidos com o SDK do Apache Beam. O Dataflow é uma oferta sem servidor que permite que você se concentre em expressar a lógica de negócios dos pipelines de dados (usando código e SQL) enquanto remove ou simplifica muitas tarefas operacionais e de infraestrutura. Por exemplo, os recursos do Dataflow incluem provisionamento e escalonamento de infraestrutura automáticos, atualizações de pipeline e implantação padronizada para execuções repetíveis.

Como acontece com outros aplicativos, ativar a prontidão da produção para pipelines do Dataflow envolve mais do que apenas gravar e executar código. É preciso coletar e analisar requisitos, planejar seu projeto e avaliar o desempenho.

Para garantir a confiabilidade e a manutenção do pipeline, durante o processo de desenvolvimento, você precisa entender e aderir às práticas recomendadas de codificação. Por exemplo, recomendamos que você use práticas modernas de DevOps, como integração contínua e entrega (CI/CD), para transformar o código do Apache Beam na estação de trabalho do desenvolvedor em pipelines do Dataflow que são executados na produção. Para os pipelines em execução, use o monitoramento, alertas e relatórios de erros para ajudar a solucionar erros de pipeline, entender problemas de desempenho e de dados e fornecer o desempenho geral do pipeline em relação aos objetivos de nível de serviço (SLOs).

Ao combinar o Dataflow com outros serviços gerenciados do Google Cloud, você pode simplificar muitos aspectos da produção de pipelines de dados em comparação com soluções autogerenciadas. Por exemplo, você pode usar o pacote de operações do Google Cloud para monitoramento e relatórios de erros e o Cloud Composer para orquestração de pipeline.

Objetivos

As práticas recomendadas descritas nesta série são categorizadas nas seguintes fases:

  • Planejamento: quais requisitos não funcionais precisam ser capturados antes de começar o desenvolvimento? Por que você precisa pensar nos SLOs durante o estágio de planejamento e como configurá-los? Como os SLOs podem informar o design dos pipelines de dados? Qual o possível impacto que você precisa considerar para sistemas upstream e downstream?
  • Desenvolvimento e teste: quais práticas recomendadas você deve observar ao escrever o código do Apache Beam? Quais testes você precisa criar e automatizar? Como os desenvolvedores de pipeline precisam trabalhar com ambientes de implantação diferentes para escrever, testar e executar código?
  • Implantação: como atualizar os pipelines que já estão em execução quando uma nova versão é disponibilizada? Como aplicar práticas de CI/CD a pipelines de dados?
  • Monitoramento: que monitoramento você precisa ter para pipelines de produção? Como detectar e resolver problemas de desempenho, de manipulação de dados e de erros de código na produção?

Ao final desta série, você terá uma compreensão mais profunda de todas as considerações anteriores e de como elas são aspectos importantes da criação de pipelines de dados prontos para produção usando o Dataflow.

A seguir