Big Data et DevOps : Renault Digital mise sur le Cloud AWS
Affichée partout au point d’en devenir un buzzword, la transformation digitale est pourtant une réalité pour de nombreuses entreprises françaises. Renault, sur un marché concurrentiel et en pleine évolution, a ainsi créé l’entité Renault Digital pour accélérer sa digitalisation et réduire le time to market. L’initiative Renault Digital, qui s’appuie sur la culture agile, le DevOps, le Cloud et l’Open Source, se concrétise à travers la construction d’une plateforme DevOps et Big Data faisant appel au Cloud AWS. D2SI a accompagné Renault Digital dans le design et l’automatisation de l’infrastructure, et nous vous proposons ici un retour d’expérience de ce projet.
Nous avons rencontré Guillaume Pinot, CTO Renault Digital, qui nous a présenté les enjeux de l’entité Renault Digital :
Renault Digital a été créé pour accélérer la digitalisation de Renault, en s’appuyant sur les méthodologies agiles et en internalisant les développements. Nous réunissons les compétences de développeurs front end, back end, solutions architects, data scientists, data engineers pour développer des applications. Notre objectif est de faire dialoguer le fonctionnel et l’IT, les ops et les développeurs dans une logique agile, et d’automatiser aux maximum les tâches récurrentes d’intégration, de déploiement et de tests, pour que les développeurs puissent se concentrer sur la création de valeur ajoutée et le développement de fonctionnalités métiers sans avoir à se préoccuper des problématiques d’infrastructure. Renault Digital nous permet de créer une nouvelle culture : web oriented architecture, software craftmanship, cloud, open source, data driven, DevOps, systèmes réactifs …tous ces principes guident la culture de Renault Digital.
Afin de répondre à tous les besoins, nous construisons une plateforme digitale, auquel chaque projet va contribuer. Cette plateforme digitale comporte plusieurs volets, dont une chaîne CI/CD sur AWS. D2SI nous a aidé à construire cette plateforme Devops, à l’industrialiser, la faire évoluer, la faire vivre et accompagner les projets intégrés sur cette plateforme.
Plus de 30 applications ont ainsi été migrées et bénéficient maintenant d’une chaîne CI/CD. Pour ce faire, D2SI a déployé un Gitlab et automatisé le déploiement des applications sur les environnements de Renault Digital. La solution mise en oeuvre s’appuie sur des conteneurs Docker et les services ECS, ELB, RDS, EFS, Elastic Cache, S3, Route 53 et EC2 d’AWS. La création de l’infrastructure (services, RDS, route 53…) est entièrement automatisée via du code Terraform. Comme nous le confirme Guillaume Pinot, c’est l’expertise de D2SI en matière de DevOps qui a convaincu Renault Digital :
D2SI est très reconnu pour son expertise dans le domaine du DevOps et du Cloud. Nous avions besoin d’une offre cohérente et D2SI dispose d’un pôle devops, capable de proposer une véritable équipe avec de solides compétences et pas seulement des profils. D2SI nous accompagne en ajustant régulièrement la taille de l’équipe, les objectifs et le conseil délivré en fonction de nos besoins. Nous sommes passés de 2 à 3 intervenants au départ à une dizaine aujourd’hui. Nous sommes très satisfaits de l’implication, de l’expertise et de la qualité de l’accompagnement de D2SI… le marché des compétences DevOps est très tendu et D2SI nous aide à répondre à ce besoin en opérant un transfert de compétences entre consultants expérimentés et juniors. Nous avons recruté des profils DevOps qui prennent petit à petit le relais des intervenants de D2SI pour qu’ils puissent opérer la plateforme de manière autonome. C’est une relation très saine et satisfaisante puisque D2SI nous a toujours encouragé à pouvoir assurer le maintien de notre plateforme en interne et nous a aidé à développer les compétences en ce sens. Nous pouvons ainsi progresser et évoluer ensemble.
Par la suite, Renault Digital a sollicité l’expertise Big Data de D2SI :
Nous disposions d’un data lake en interne mais qui ne répondait pas forcément à tous nos cas d’usage, donc nous avons initié un débordement en hybride sur le cloud AWS. J’ai sollicité D2SI sur ces besoins pour réserver des profils expérimentés sur ce sujet et mettre en place une solution Big Data as a service faisant appel aux services AWS. Cela nous permet de proposer à nos équipes internes de leur instancier un environnement complet sur AWS, en répondant aux problématique de synchronisation de données, la fédération avec l’authentification, etc.
L’objectif était ici de fournir aux équipes de data scientists de Renault Digital une infrastructure donnant accès à chaque équipe projet à un datalake séparé, avec des outils et données sur AWS. Lorsque c’est nécessaire quelques set de données on premises sont répliqués sur le cloud. L’équipe DevOps Big Data a fourni l’assistance dans le design et l’automatisation de cette infrastructure :
- Un déploiement de la couche datalake standard et automatisé
- Utilisation de l’authentification LDAP de Renault Digital pour l’accès aux outils comme Zeppelin et Hue
- Optimisation des coûts
- Chiffrement des données
Dans cette optique, l’équipe a conçu une architecture stateless permettant de fournir un cluster Amazon Elastic Map Reduce clé en main avec les outils Spark, Hive, Zeppelin et Hue etc. Cette architecture stateless s’appuie sur :
- Stockage des données métier sur S3
- Externalisation des meta données Hive, Hue sur RDS
- Stockage notebook zeppelin sur S3
EMR as a service
L’équipe DevOps Big Data s’efforce de mettre en place des solutions qui soient un standard des produits proposés par AWS et qui utilisent au maximum les bonnes pratiques recommandées par AWS. Les outils de l’écosystème Hadoop qui sont fournis avec le cluster EMR (Spark, Hive, View, Zeppelin, Hbase) permettent de faire de l’analytics, de la datascience, ou du machine learning au sein d’un même projet. La taille des clusters fournis est configurée en fonction des besoins de l’équipe.
Ces clusters sont fournis de façon à être immédiatement utilisables : les outils tels que Zeppelin, Hue sont paramétrés pour utiliser les outils d’entreprise Gitlab, Nexus et les solutions d’authentification LDAP de Renault Digital. Les outils sont pré-configurés automatiquement au maximum, et ce qui n’est pas automatisé via les API Amazon se fait via Ansible. L’objectif n’est pas de simplement consommer le service EMR, mais de l’interconnecter et le mettre au centre des outils et de la stratégie Renault Digital. Ceci afin, entre autres, de réduire le temps de l’on-boarding : à l’arrivée d’un data scientist ou data engineer, il dispose immédiatement de l’ensemble du pipeline pour travailler sur EMR.
Best practices AWS
Les best practices AWS d’optimisation des coûts sont appliquées autant que possible. Ainsi une partie du cluster est lancée sur des instances spot, le reste sur des instances à la demande ou réservées. Les best practices d’auto scaling sont également appliquées pour éviter la surconsommation du service. Autre bonne pratique, l’usage de S3 pour les données au repos est préconisé. Evidemment, toutes les couches sont construites suivant les principes de l’infrastructure as code, avec Terraform et Ansible. Côté sécurité, les données des clusters au repos et en transits peuvent être chiffrés à la demande, via le “security configuration “ d’EMR créé par la stack Terraform.
Quels sont les prochaines étapes ? L’objectif de l’équipe est d’aider les projets de Renault Digital à faire du datapipeline sur AWS (S3 event, Lambda, EMR, AWS Data Pipeline, DynamoDB). Après EMR, DynamoDB pourrait être le prochain standard à intégrer dans l’écosystème Renault Digital. Amazon Athena, Redshift Spectrum, pourraient aussi répondre à des besoins potentiels : cela demanderait à l’équipe DevOps Big Data de répondre au challenge de l’intégration et de la consommation de ces services dans la stratégie AWS de Renault Digital qui héberge et infogère déjà 40 projets.Cette volonté d’accélération sur le Cloud public nous est confirmée par Guillaume Pinot :
Nous avons une stratégie hybride où le développement et la recette sont faits dans le Cloud et la production est on premise. Cela permet à nos applications de rester agnostiques à la solution d’hébergement et de valider les principes d’architecture agile portés par Renault Digital. Malgré tout notre capacité de réaction est encore un peu ralentie par le on premise… le Cloud public répond à nos attentes, mais nous ne l’exploitons pas encore assez. Le Cloud public nous permet de nous concentrer sur la valeur et non sur l’infrastructure… c’est très important pour le time to market. Nous ne pourrons jamais rivaliser avec ce que peut proposer le Cloud public AWS, ce n’est pas notre cœur de métier. Pour accélérer la digitalisation, nous devons exploiter plus largement le Cloud public.