O que é DataOps: Organizando o futuro do Data Science para negócios

Conheça as melhores práticas para começar a implementar essa filosofia em sua empresa

Alex Lopes
Data Hackers
7 min readFeb 23, 2019

--

Surgido no ambiente caótico de desenvolvimento de software, a ideia Ágil comprovou sua capacidade de adaptação e migrou para todo tipo de ambiente, desde a industria automobilística até a área de educação e política. Porém, uma área tecnológica que não aderiu completamente esse conceito, na minha percepção, foi a área de desenvolvimento e análise de Business Intelligence, que poderia ser muito beneficiada se tornando mais flexível e criando pontes entre as muitas funções de B.I. e T.I., melhorando a comunicação e eficácia de todos. E a melhor forma de se trazer esse conceito para a área é através dos princípios da filosofia DevOps, que tem como maior objetivo justamente quebrar as barreiras entre o desenvolvimento e as operações de T.I.

Os princípios de DevOps buscam fortalecer a aplicação do conceito Ágil em qualquer área que envolva desenvolvimento de sistemas. O foco é sempre diminuir as distâncias que precisam ser percorridas para a entrega do produto e quebrar as barreiras entre as diferentes áreas no desenvolvimento e manutenção do produto.

Porém, com as transformações mais recentes na área de inteligência, surgiu uma teoria de que a filosofia DevOps não considera aplicações data-intensive (com muito fluxo de dados) em seus conceitos. Um estudo de 2017 fortalece essa teoria demonstrando que apenas 17% dos executivos de T.I. entrevistados consideraram DevOps como um impacto estratégico em sua empresa, perdendo para Big Data (41%) e Infraestrutura de Nuvem como Serviço (39%). Essa teoria acarretou no desenvolvimento de um novo manifesto filosófico no mundo de tecnologia: o DataOps.

O que é DataOps?

DataOps combina os conceitos Ágil, DevOps e Controle de Processos Estatísticos e os aplica nos processos analíticos.

No desenvolvimento de um sistema, as práticas DevOps e Agile se encaixam como uma luva para levantar os requisitos, efetuar o desenvolvimento, testar e entregar um produto de maneira rápida e contínua, mas quando tratamos de sistemas analíticos, é necessário também levar em consideração a arquitetura do fluxo de dados (data pipelines), pois os dados estarão continuamente entrando na alimentação de recursos utilizados pelo sistema, assim como alimentando o próprio sistema. Esse fluxo de dados é o lado “operacional” dos sistemas analíticos. É justamente aqui que se inicia a filosofia DataOps, que começa trazendo boas práticas que buscam diluir as barreiras e complicações que existem entre as as áreas de desenvolvimento e operações analíticas.

Como DataOps pode ajudar?

Fabricação Enxuta

Vamos imaginar o processo de manufatura de maneira resumida. Podemos defini-lo da seguinte forma:

Matéria-prima entra na linha de processamento a partir de diferentes salas de estoque, em seguida a matéria-prima flui para diferentes áreas de trabalhos aonde é processada incrementalmente de diferentes formas até sair como um produto final.

Na análise de dados, os dados surgem de diferentes pontos de origem e seguem por uma série de processamentos incrementais até saírem como relatórios, modelos e visualizações.

Quando avaliamos o processo de analíticos dessa forma, podemos entender que sua semelhança com o processo de manufatura de produtos nos permite aplicar técnicas de fabricação enxuta nos procedimentos de desenvolvimento. Como por exemplo, as técnicas de S.P.C. (Statistical Process Control, ou Controle de Processo Estatístico). Com S.P.C., focamos em efetuar testes e monitoramentos ao vivo no processo de engenharia do fluxo de dados, lidando com erros e outras falhas durante o processo de alimentação dos dados, para que os mesmos cheguem ao produto final de maneira correta.

Unindo o processo de validação de dados ao processo de engenharia do fluxo de dados, evitamos falhas na estrutura da alimentação de dados e acelerarmos o processo de desenvolvimento como um todo.

DevOps > DataOps

O desenvolvimento de analíticos possui muitas coisas em comum com o desenvolvimento de sistemas, e como visto no primeiro artigo desta série, podemos adaptar as principais idéias de DevOps ao processo de desenvolvimento de analíticos. Porém há também uma mudança de foco entre DevOps e DataOps.

Engenheiros de sistema são pessoas que tendem a se aprofundar na diversidade e tecnicalidades das tecnologias, e buscam toda oportunidade para experimentar novas ferramentas e linguagens de programação. Já Cientistas e Analistas de dados não vêem o processo de desenvolvimento da mesma forma. Para eles, linguagens de programação e sistemas são as ferramentas intermediárias usadas para trabalhar e manipular os dados e criar seus modelos. Isso significa que no ambiente DevOps, a cultura tende a amar a complexidade da tecnologia, enquanto que no DataOps, a busca é pela simplificação do uso da tecnologia no processo de criação, o que tende a mover o foco de linguagens robustas e sistemas de alta performance para sistemas e ferramentas que ajudem a tornar os processos de modelagem mais fáceis e gerenciáveis.

O ciclo de vida conceitual de DataOps: Fluxo de Inovação e Valor

DataOps busca incrementar as técnicas DevOps, além de adaptá-las para o processo de desenvolvimento analítico. Podemos visualizar melhor essa incrementação na comparação abaixo do ciclo de processos DevOps vs DataOps:

Fases do processo DevOps:
Desenvolvimento > Construção > Teste > Entrega > Administração

Fases do processo DataOps:
Análise > Desenvolvimento > Orquestração > Teste > Entrega > Orquestração > Administração

Essa fase de orquestração dupla se torna necessária no processo de desenvolvimento, sendo a primeira fase responsável por lidar com o processo conhecido como “fábrica dos dados”, que consiste num fluxo de processos com muitos passos, onde um “orquestrador” organiza a alimentação dos muitos fluxos de dados, monitora-os e lida com exceções. Já a segunda fase efetua a mesma organização, monitoramento e controle de erros dos processos nos testes pós produção.

A dualidade de fases de orquestração (orquestração dos dados e orquestração dos códigos) serve para dar enfase no controle de qualidade que é necessário para um sistema de fluxo intenso de dados.

O que DataOps busca unificar?

Enquanto DevOps busca unir as areas de desenvolvimento e operações de TI, DataOps incrementa essa união de operações ao que DevOps define como consumidores. Pois no mundo empresarial, existe o que chamamos de “silos de dados”, que são bancos de dados descentralizados, criados por pequenos times de consumidores através de ferramentas como Excel, Tableau, Power BI, etc. Esses pontos descentralizados de dados são uma parte essencial da inovação de uma cultura data-driven na empresa, porém se mantidos sem controle, podem criar um ambiente caótico. Data Ops busca gerenciar esse aspecto, causando o mínimo de impacto na inovação através da promoção dessas idéias no ambiente de desenvolvimento.

Através do monitoramento de idéias que surgem desses “silos de dados”, é possível promover essas inovações e incorpora-las ao ciclo de processo DataOps, para manter assim um aspecto centralizador, sem prejudicar o surgimento de novas idéias descentralizadas.

Como Implementar o DataOps?

Por fim, é necessário informar que não há uma receita para a implantação de uma filosofia. Os conceitos de DataOps buscam trazer a simplificação dos sistemas analíticos, o controle de “silos de dados”, a união entre o desenvolvimento e a operação e a fabricação enxuta de analíticos. Cada ambiente irá precisar de processos diferentes para implantação dessas técnicas e conceitos. Porém, podemos definir alguns passos fundamentais que podem incrementalmente trazer o foco para a implantação dessas idéias no ambiente corporativo:

1. Implemente fases de teste autônomos nos fluxos de dados

Aumentando o foco no controle de qualidade dos dados, o primeiro passo é dado para uma cultura que irá visar o controle de erros e a manutenção da precisão dos dados.

2. Use ferramentas de versionamento de código

Utilizando ferramentas como o git será possível manter a organização, e incentivar a automação da integração e entrega de códigos, naturalmente incentivando a inserção da filosofia DevOps para melhoria do processo.

3. Use as funcionalidades da sua ferramenta de versionamento

É importante enfatizar a organização do processo de desenvolvimento de sistemas dentro do processo de modelagem e controle dos fluxos de dados. Utilizando funcionalidades como branch e merge é possível incentivar a implementação dessas novas idéias

4. Tenha múltiplos ambientes de trabalho

A experimentação só traz frutos quando não gera caos no ambiente de trabalho. Incentivando e simplificando o uso de ferramentas como contêiners, notebooks, ambientes virtuais, etc., se torna mais fácil trazer à prática o sistema de promoção de idéias buscado pela filosofia DataOps.

5. Recicle e unifique sempre que possível

Evite a segregação de múltiplas formulas e códigos diferentes para as mesmas medidas dentro de uma empresa. Busque padronizar os processos de modelagem, previsões, visualizações, para que ele possa naturalmente evoluir para a organização e orquestração de processos autônomos.

6. Parametrize seus processos

Existem casos em que um processo analítico pode ser utilizado em várias condições diferentes. Parametrizando os fluxos de dados para que eles permitam essa alteração, incentivará a reciclagem e agilidade no desenvolvimento.

7. Use armazenamentos simples

Evite a utilização de sistemas de armazenamento que possuem muita complexidade em sua manutenção e administração. Foque o armazenamento de dados em sistemas que permitem aos utilizadores concentrarem-se na coleta e manipulação dos dados, como por exemplo os sistemas de armazenamento oferecidos pelas empresas de Cloud as a Service.

Buscando trazer esses passos para o seu dia a dia de trabalho, os primeiros passos serão dados para a implementação da filosofia DataOps no ambiente de trabalho.

Dessa forma, podemos ver que a mudança de paradigma para o DataOps, assim como todas as outras mudanças, precisa iniciar-se de maneira individual, através da vontade de colaborar e melhorar cada vez mais a sua equipe de trabalho.

--

--