As tecnologias de gerenciamento de containers, como o Kubernetes, permitem implementar pipelines modernos de Big Data. Eliran Bivas, arquiteto sênior de Big Data na Iguazio, falou, em Dezembro de 2017, na Conferência KubeCon + CloudNativeCon North America 2017 sobre pipelines de Big Data e como o Kubernetes pode ajudar a desenvolvê-los.
No passado, soluções de Big Data costumavam ser baseadas principalmente no Hadoop, mas o ecossistema evoluiu nos últimos anos com novos bancos de dados, streaming de dados e soluções de aprendizado de máquina que exigem mais do que o modelo de implantação do Hadoop (Map/Reduce, YARN e HDFS). Essas soluções também exigem uma camada de escalonamento de cluster para hospedar diversas cargas de trabalho, como Kafka, Spark e TensorFlow, sendo executados em conjunto com dados armazenados em bancos de dados como Cassandra, Elasticsearch e armazenamento baseado em nuvem.
Bivas falou sobre as diferentes equipes tipicamente envolvidas no ciclo de vida do desenvolvimento de software e seus principais objetivos. Os engenheiros de aplicativos querem um desenvolvimento de software ágil, enquanto os engenheiros de dados se preocupam com os dados e querem que os sistemas de banco de dados continuem funcionando. As equipes DevOps querem que todos os sistemas funcionem com pouca manutenção e interrupções. Devido à revolução das tecnologias de containers, todos esses objetivos são possíveis de alcançar nas organizações.
Ele discutiu sobre um framework comum para criar aplicativos de analytics de ponta a ponta na nuvem. Os desenvolvedores deveriam desacoplar os serviços de dados dos aplicativos e dos frameworks para tornar as soluções de big data flexíveis e eficientes. Um framework também ajuda os serviços de dados que normalmente são usados para gerenciar diferentes tipos de dados, como dados não estruturados, estruturados ou de streaming.
As soluções devem ser idealmente baseadas em frameworks e aplicativos nativos da nuvem e usar a orquestração unificada fornecida pelo Kubernetes.
Bivas descreveu o modelo de fluxo de análise contínua que inclui serviços de dados para analisar os dados provenientes de bancos de dados relacionais e fontes externas (IoT), usando ferramentas de containers de big data analytics como Spark e TensorFlow.
Frameworks serverless como o Kubeless e o OpenFaaS são uma ótima opção para usar nessas soluções. Soluções serverless são fáceis de implantar sem YAMLs, Dockerfile ou construtores envolvidos. Essas soluções também suportam escalonamento automático e eventos de triggers.
Bivas discutiu os detalhes da arquitetura de Nuclio, uma plataforma serverless em tempo real, que se tornou open source recentemente. A arquitetura envolve o uso de Kubernetes como uma alternativa ao YARN, e usa frameworks como Spark ML, Presto, TensorFlow / Python e funções serverless, juntamente com armazenamento local e baseado em nuvem. A plataforma Nuclio também suporta fontes de dados e dados de eventos conectáveis.
Ele também falou sobre um caso de uso de um cliente automotivo referente à análise em tempo real para manutenção de veículos. A solução incluiu os dados do veículo sendo transmitidos usando a API Web e os microservices sendo usados para a ingestão de dados. Os dados do veículo são enriquecidos em tempo real com dados meteorológicos e rodoviários, para encontrar correlações entre a condição climática e os componentes do veículo.
A apresentação incluiu uma demo para mostrar os benefícios de executar big data analytics em uma arquitetura nativa da nuvem. Bivas concluiu a sessão com algumas práticas recomendadas que os desenvolvedores conhecem sobre as ferramentas fornecidas por Kubernetes, o registro de logs do aplicativo, a coleta e o uso de métricas para obter informações sobre o desempenho da aplicação.
Se está interessado em aprender mais sobre o framework Nuclio, de uma olhada no projeto disponível no github, nos exemplos de código e na documentação.