Les technologies de gestion de conteneurs telles que Kubernetes permettent d'implémenter les pipelines de Big Data modernes. Eliran Bivas, architecte senior en Big Data chez Iguazio, a pris la parole lors de la récente KubeCon + CloudNativeCon North America 2017 Conference sur les big data pipelines et sur la manière dont Kubernetes peut aider à les développer.
Par le passé, les solutions Big Data étaient principalement basées sur Hadoop, mais l'écosystème a évolué ces dernières années avec de nouvelles bases de données, des données en continu et des solutions d'apprentissage automatique qui requièrent plus que le modèle de déploiement Hadoop (Map/Reduce, YARN et HDFS). Ces solutions nécessitent également une couche d'ordonnancement de cluster pour héberger diverses charges de travail telles que Kafka, Spark et TensorFlow, en travaillant avec des données stockées dans des bases de données telles que Cassandra, Elasticsearch et le stockage en cloud.
Bivas a parlé des différentes équipes généralement impliquées dans le cycle de vie du développement logiciel et de leurs objectifs principaux. Les ingénieurs d'applications veulent un développement logiciel agile, tandis que les ingénieurs de données se soucient de l'emplacement des données et souhaitent que les systèmes de base de données continuent à fonctionner. Et les équipes de DevOps veulent que tous les systèmes fonctionnent avec moins de maintenance et de perturbations. En raison de la révolution des technologies des conteneurs, tous ces objectifs sont réalisables dans les organisations.
Il a discuté d'un framework commun pour créer des applications d'analyse bout-en-bout natives du cloud. Les développeurs doivent dissocier les services de données des applications et des frameworks pour rendre les solutions Big Data flexibles et efficaces. Il aide également les services de données qui sont généralement utilisés pour gérer différents types de données, tels que les données non structurées ou structurées ou en continu.
Les solutions doivent idéalement être basées sur des applications natives cloud et des frameworks et utiliser l'orchestration unifiée fournie par Kubernetes.
Bivas a décrit le modèle de flux analytique continu qui comprend des services de données au milieu pour analyser les données provenant des stores de données opérationnelles (bases de données relationnelles), des sources externes (IoT) utilisant des outils d'analyse de Big Data en container comme Spark et TensorFlow.
Les frameworks serverless comme Kubeless et OpenFaaS sont un excellent choix à utiliser dans ces solutions. Les solutions serverless sont faciles à déployer sans impliquer YAML, Dockerfile ou build. Ils prennent également en charge la mise à l'échelle automatique et les déclencheurs d'événements.
Bivas a discuté des détails d'architecture de Nuclio, une plate-forme serverless en temps réel récemment ouverte. L'architecture implique l'utilisation de Kubernetes comme alternative à YARN, et l'utilisation de frameworks tels que Spark ML, Presto, TensorFlow & Python et des fonctions serverless couplées à un stockage local et basé sur le cloud. Nuclio prend également en charge les sources d'événements et les sources de données pluggable.
Il a également parlé d'un cas d'utilisation par les clients de l'automobile d'analyse en temps réel pour la maintenance des véhicules. La solution inclut les données du véhicule diffusées en utilisant des API Web et des microservices utilisés pour l'ingestion de données. Les données du véhicule sont enrichies en temps réel avec les données météorologiques et routières pour trouver des corrélations entre les conditions météorologiques et les composants du véhicule.
La présentation comprenait une démo pour montrer les avantages de l'analyse de Big Data sur une architecture native cloud. Bivas a conclu la session avec quelques bonnes pratiques que les développeurs connaissent sur les outils fournis par Kubernetes, la journalisation des applications, la collecte des métriques et l'utilisation des métriques pour obtenir des informations sur les performances des applications.
Si vous souhaitez en savoir plus sur le framework Nuclio, consultez leur projet sur github, les exemples de code et la documentation.