Google

Kubernetes prend ses marques dans les systèmes Big Data

L'alliance entre les deux mondes commencent à faire son chemin dans les entreprises, celles-ci considérant les capacités de flexibilité des containers avec bienveillance. Kubernetes sur Spark pourrait être un bienfait pour les déploiements, a révélé la dernière conférence Strata.

Certes, il est encore tôt pour déployer ses processus  Big Data dans des containers. Mais, la tendance montre que les utilisateurs et les fournisseurs sont aujourd’hui nombreux à les considérer, et particulièrement Kubernetes, comme moyen de déploiement.

Chez les early adopters, on s’attend à ce que les clusters Kubernetes accélèrent le développement et le déploiement en permettant la réutilisation des builds et du code. Les containers facilitent également le déplacement des systèmes et des applications vers de nouvelles plateformes, permettent de réaffecter les ressources IT en fonction des évolutions des workloads et d’optimiser l'utilisation de l'infrastructure IT, affirment les partisans.

De leur côté, les grands fournisseurs de technologies supportent de plus en plus les containers et Kubernetes dans leur offre. MapR Technologies en est l’exemple : à l’occasion de la Strata Data Conference à San Jose, la société a confirmé l’intégration à sa plateforme d’un volume de stockage pour  Kubernetes pour apporter une forme de persistance aux applications contenairisées soutenues par Kubernetes.

Jusqu’alors, MapR supportait les containers Docker qu’il reliait à sa Converged Data Platform via Persistent Application Client Container (PACC), mais l'extension pour Kubernetes est « beaucoup plus transparente et native », explique Jack Norris, le vice-président de la société en charge des données et applications. Selon lui, le stockage persistant permet d'utiliser les containers pour les applications « stateful ».

Ce rapprochement se confirme également dans les communautés Open Source. La version 2.3 d’Apache Spark, publiée fin février, inclut par exemple un scheduler natif de Kubernetes. La technologie Spark on Kubernetes, en cours de développement (Bloomberg, Google, Intel y contribuent), est encore expérimentale par nature, mais elle permet d'exécuter des workloads Spark 2.3 dans les clusters Kubernetes.

La prochaine version d’Apache Flink (la 1.5), qui permet aussi la gestion des flux de données temps réel, fournira aussi une connectivité renforcée vers Kubernetes et Apache Mesos, affirme Fabian Hueske, co-fondateur de Data Artisans (à l’origine de Flink). Les utilisateurs peuvent certes Flink sur Kubernetes, « mais ce n'est pas toujours simple », a d’ailleurs souligné Fabian Hueske lors de la conférence Strata. « Ce sera beaucoup plus facile avec la nouvelle version. »

Containers et Big Data : un  duo qui décolle

JD.com Inc, un spécialiste du e-Commerce chinois, est l'un des premiers utilisateurs de Spark sur Kubernetes. La société a également containeurisé TensorFlow, Caffe et d'autres technologies de Machine Learning et Deep Learning dans une architecture Kubernetes unique, baptisée Moonshot.

Les containers permettent dans ce cas de rationaliser et de simplifier les implémentations de projets Big Data pour des travaux de Machine Learning ou analytiques, explique Zhen Fan, un ingénieur en développement logiciel chez JD.com. « Nous sommes parti du principe que nous devions placer toutes nos workloads AI dans un unique cluster afin d’optimiser l'utilisation de nos ressources », ajoute-t-il.

Selon lui, les containers ont aussi permis de déployer rapidement des systèmes analytiques sur les serveurs Web de l'entreprise afin de profiter des temps d'arrêt de traitement pendant la nuit.

« Dans le commerce électronique, les serveurs Web sont très sollicités jusqu'à minuit. Mais de minuit à 6h, ils peuvent être utilisés pour des travaux hors ligne. »

JD.com a commencé à travailler sur son architecture à la mi-2017 ; le e-commerçant compte actuellement 300 nœuds pour exécuter ses jobs en production dans des containers. Il prévoit d'étendre le nombre de nœuds à 1 000 dans un avenir proche. La technologie Spark sur Kubernetes a été installée au troisième trimestre de l'année dernière, initialement pour soutenir les applications Spark.

Cependant, cette partie est toujours en test pour évaluer « si Spark sur Kubernetes est prêt pour un environnement de production », explique Wei Ting Chen, ingénieur logiciel chez Intel, qui accompagne JD.com dans sa démarche. Certains modules de Spark n'ont pas encore été connectés à Kubernetes. D’autres questions sont encore en suspens.

JD.com et Intel examinent par exemple si Kubernetes risque de provoquer des goulots d'étranglement dans le cas d’un grand nombre de containers, souligne encore l’expert. La fiabilité est une autre préoccupation, ajoute-t-il.

Kubernetes encore testé

Spark sur Kubernetes est une technologie de pointe qui est, pour le moment, adaptée aux entreprises qui ont suffisamment de ressources techniques, pense Vinod Nair, directeur de la gestion des produits chez Pepperdata Inc, un fournisseur d'outils de gestion de la performance Big Data, également impliqué dans les développements Spark sur Kubernetes.

Selon lui, le scheduler Kubernetes est une fonction en mode preview de Spark 2.3 et ne sera probablement pas prête en GA avant 6 à 12 mois. « C'est un projet d'assez grande envergure, je pense qu'il faudra un certain temps avant qu’on le voit en production », a-t-il dit. « On en est encore à un stade Alpha. »

Pepperdata prévoit de supporter les containers et Kubernetes pour Spark et HDFS dans certains de ses produits, à commencer par Application Spotlight, un portail de gestion des performances d’applications Big Data annoncé ce mois-ci. Avec la récente sortie de Hadoop 3.0, le gestionnaire de ressources YARN peut également contrôler les containers Docker, « mais Kubernetes semble avoir des ambitions beaucoup plus grandes », commente Vinod Nair.

Tout le monde n’est pas encore acquis à la cause Kubernetes. BlueData Software utilise par exemple un orchestrateur sur mesure pour gérer les containers Docker au cœur de sa plateforme Big-Sata-as-a-service. Pour Tom Phelan, co-fondateur et architecte en chef chez BlueData, un outil maison aura toujours un avantage technique sur Kubernetes, en particulier pour les applications « stateful ». Il travaille toutefois sur Kubernetes.

Pinterest fait la même chose. La société de San Francisco s'apprête à utiliser les containers Docker pour accélérer le développement et le déploiement d’applications ML et piloter son service de partage de photos, illustre Kinnary Jangla, ingénieur logiciel chez Pinterest.

Pinterest utilise les containers pour déboguer des modèles ML et  teste également un cluster Kubernetes. « Nous essayons de voir si cela nous sera utile quand nous passerons en production. Mais nous n'en sommes pas encore là. »

 

Pour approfondir sur Stockage de conteneurs