DataOps no Google Cloud Platform

 Atualmente podemos dizer que um dos ativos mais valiosos de uma empresa são seus dados, com eles é possível traçar as mais diversas estratégias de vendas, marketing ou até mesmo conhecer melhor os seus clientes e potenciais clientes.

Mas nem sempre essas informações são aproveitadas ao máximo ou até mesmo conhecidas, muitas vezes estão dispersos, espalhados em vários locais diferentes, sem nenhum padrão ou governança.

Para poder utilizar ao máximo os nossos dados podemos utilizar da prática de DataOps.

O que é DataOps?

Derivado do DevOps, o DataOps ou Data Operations é uma metodologia com uma série de práticas, processos e que utilizam de tecnologia e ferramentas para melhorar a velocidade, agilidade e melhora continua no processamento e tratamento de dados.

É aplicada de forma End-to-End, desde a preparação do dado até a criação de dashboads.

É muito importante para auxiliar as empresas a conhecer e utilizar os seus dados.

Com o crescimento da utilização da computação em Nuvem, muitas vezes podemos ficar perdidos em como aplicar essas práticas em determinada plataforma, já que, no DataOps não estamos presos a uma ferramenta especifica, pois o DataOps é um conceito e não um software.

Um dos benefícios da adoção de DataOps é juntar o uso das ferramentas de processamento de dados com este conceito junto com princípios de governança e segurança.

Princípios do DataOps

Existe uma iniciativa que está sendo apoiada por alguns profissionais/empresas referente a DataOps, seria o site DataOpsManifesto, nele existem uma série de “princípios” que o DataOps segue, são eles:

  • Satisfaça continuamente o seu cliente: A maior prioridade é satisfazer o cliente por meio da entrega antecipada e contínua de insights analíticos valiosos de alguns minutos a semanas.
  • Valor do trabalho analítico: A principal medida do desempenho da análise de dados é o grau em que as análises são entregues, incorporando dados precisos, a bases de dados e sistemas robustos.
  • Abrace a mudança: São acolhidas as necessidades dos clientes e adotadas para gerar vantagem competitiva. O método de comunicação mais eficiente, eficaz e ágil com os clientes é a conversa face a face.
  • É um esporte em equipe: As equipes analíticas sempre terão uma variedade de funções, habilidades, ferramentas favoritas e títulos. Uma diversidade de origens e opiniões aumenta a inovação e a produtividade.
  • Interações diárias: Clientes, equipes analíticas e operações devem trabalhar juntos diariamente durante todo o projeto.
  • Auto-organização: Os melhores insights analíticos, algoritmos, arquiteturas, requisitos e designs surgem de equipes auto-organizadas.
  • Reduzir o heroísmo: À medida que o ritmo e a amplitude da necessidade de insights analíticos aumentam, as equipes analíticas devem se esforçar para reduzir o heroísmo e criar equipes e processos de análise de dados sustentáveis e escaláveis.
  • Reflita: As equipes analíticas devem ajustar seu desempenho operacional refletindo, em intervalos regulares, sobre o feedback fornecido por seus clientes, por eles mesmos e pelas estatísticas operacionais.
  • Códigos: As equipes analíticas usam uma variedade de ferramentas individuais para acessar, integrar, modelar e visualizar dados. Fundamentalmente, cada uma dessas ferramentas gera código e configuração que descrevem as ações realizadas nos dados para fornecer insights.
  • Orquestração: Orquestração de dados, ferramentas, códigos, ambientes e equipes de trabalho são fatores-chave para o sucesso dos projetos de análise de dados.
  • Faça tudo ser reproduzível: São necessários resultados reproduzíveis e é importante o versionamente de tudo: dados, configurações de hardware e software, código e configurações específicas de cada ferramenta utilizada.
  • Ambientes descartáveis: É importante minimizar o custo para os membros das equipes de análise de dados fazerem testes e experimentos, proporcionando-lhes facilidade de criar ambientes técnicos descartáveis, isolados e seguros que reflitam o ambiente de produção.
  • Simplicidade: A atenção contínua à excelência técnica e ao bom design aumenta a agilidade; bem como a simplicidade – a arte de maximizar a quantidade de trabalho não feito – é essencial.
  • Análise de dados como se fosse uma fábrica: Os pipelines de análise de dados são análogos às linhas de fabricação enxuta. Um conceito fundamental de DataOps é o foco no pensamento processual destinado a alcançar eficiência contínua na construção de insights analíticos.
  • A qualidade é primordial: Os pipelines de análise de dados devem ser construídos de forma que seja possível detectar automaticamente erros no código, configuração e dados, e devem fornecer feedback contínuo aos operadores para evitar erros.
  • Monitorar a qualidade e o desempenho: O objetivo é ter medidas de desempenho e qualidade que sejam monitoradas continuamente para detectar variações inesperadas e gerar estatísticas operacionais.
  • Reuso: Um aspecto fundamental da eficiência de fabricação de insights analíticos é evitar a repetição de trabalhos anteriores do indivíduo ou da equipe.
  • Melhorar os tempos dos ciclos: É importante minimizar o tempo e o esforço para transformar a necessidade de um cliente em uma idéia analítica, criá-la em desenvolvimento, liberá-la como um processo de produção repetível e, finalmente, refatorar e reutilizar esse produto.

Etapas de uma solução DataOps, Source: Eckerson Group



Hoje abordaremos como podemos aplicar o DataOps na Google Cloud Platform, quais componentes melhor se encaixam em cada umas das etapas do processamento de dados:

1 - Orquestração de pipeline de dados: no DataOps é recomendado que os processos estejam bem orquestrados. Para esta etapa podemos utilizar dentro do GCP:

  • Cloud Composer: Um serviço de orquestração de fluxos de trabalho totalmente gerenciado criado no Apache Airflow.

2 - Monitoramento e alertas: um dos objetivos do DataOps é ter medidas de desempenho e qualidade que sejam monitoradas continuamente para detectar variações inesperadas e gerar estatísticas operacionais.

Para esta etapa podemos utilizar dentro do GCP:

  • Cloud Monitoring: Serviço de monitoramento que permite acessar informações sobre o desempenho, a disponibilidade e a integridade dos aplicativos e da infraestrutura.
  • Cloud Logging: Serviço de gerenciamento de registros em tempo real e totalmente gerenciado com armazenamento, pesquisa, análise e alertas em escala de exabytes.

3 - Data Analytics: Processo de examinar conjuntos de dados para encontrar tendências e tirar conclusões sobre as informações que eles contêm.

Para esta etapa podemos utilizar dentro do GCP:

  • BigQuery: Data warehouse em várias nuvens sem servidor, altamente escalonável e econômico, desenvolvido para agilizar seus negócios.
  • Looker: Plataforma de inteligência de negócios para exploração e descoberta de dados.
  • Google Data Studio: Ferramenta para converter dados em relatórios e painéis informativos personalizáveis.
  • Cloud AI Services: Serviços de IA do GCP.

4 - Data Preparation: Processo de reunir, combinar, estruturar e organizar dados para que possam ser usados em aplicações de business intelligence (BI), analytics e visualização de dados.

Para esta etapa podemos utilizar dentro do GCP:

  • Data Catalog: O Data Catalog é um serviço de gerenciamento de metadados totalmente gerenciado e escalonável.
  • Cloud Dataprep: Um serviço inteligente de dados na nuvem para exploração visual, limpeza e preparação de dados para análise e machine learning.
  • Cloud DataForm: Serviço que permite construir em pipelines SQL no BigQuery sem escrever código ou gerenciar infraestrutura.

5 - Data Integration: Processo de combinar dados de vários sistemas de origem para criar conjuntos unificados de informações para usos operacionais e analíticos.

Para esta etapa podemos utilizar dentro do GCP:

  • Cloud Dataflow: Processamento unificado de dados de stream e em lote, sem servidor, rápido e econômico.
  • Cloud Data Fusion: Integração de dados nativos da nuvem totalmente gerenciada e em qualquer escala.

6 - Data Capture: Etapa de coleta de dados, podendo ser em Batch ou Streaming.

Para esta etapa podemos utilizar dentro do GCP:

  • Pub/Sub: O Pub/Sub (Publish/Subscribe) é um serviço de mensagens assíncronas do GCP.

Permite armazenamento e entrega de mensagens em formato de tópicos e assinaturas.

7 - Development: O DataOps incentiva as equipes analíticas a usarem ferramentas para poder gerenciar e versionar o código.

Para esta etapa podemos utilizar dentro do GCP:

  • Cloud Source Repositories: Repositórios Git privados e repletos de recursos, hospedados no Google Cloud Platform. 

8 - Deployment : No DataOps é importante o movimento continuo do código, configuração e processos dos ambientes de desenvolvimento para a produção.

Para esta etapa podemos utilizar dentro do GCP:

  • Cloud Deployment Manager: serviço de implantação de infraestrutura que automatiza a criação e o gerenciamento dos recursos do Google Cloud.

Mas é sempre importante lembrar que para atingir o objetivo desejado, a equipe de DataOps deve aderir aos princípios de governança e segurança de dados e não somente no principio técnico as ferramentas usadas.

Referencias:

https://dataopsmanifesto.org/pt-pt/