in

Intégration et déploiement continus pour les plateformes de données | par 💡Mike Shakhomirov | Avril 2023


CI/CD (Continuous Integration and Continuous Delivery) pour les ingénieurs de données et les ML Ops

Qu’est-ce qu’un environnement de données ?

Les ingénieurs de données divisent les ressources d’infrastructure en environnements de production et de pré-production pour créer des zones isolées où ils peuvent tester les services ETL et les pipelines de données avant de les promouvoir en production. L’environnement de données fait référence à un ensemble d’applications et de ressources d’infrastructure physique connexes qui permettent le stockage, le transfert, le traitement et la transformation des données pour soutenir les objectifs et les missions de l’entreprise.

CI/CD pour les plateformes de données

CI/CD est une stratégie de développement de logiciels dans laquelle tous les développeurs collaborent sur un référentiel commun de code. Lorsque des modifications sont apportées, un processus de construction automatisé est utilisé pour détecter tout problème potentiel de code. Les avantages techniques de CI/CD pour les plateformes de données incluent une amélioration globale de la qualité du code et une économie de temps.

Ajouter de nouvelles fonctionnalités de nombreuses fois par jour n’est pas une tâche facile. Cependant, avec un flux de travail simplifié de CI/CD, c’est certainement possible. En utilisant des outils tels que GoCD, Code Pipeline, Docker, Kubernetes, Circle CI, Travis CI, etc. les équipes de développement peuvent maintenant construire, tester et déployer des choses de manière indépendante et automatique.

Trouver et résoudre les problèmes de code tard dans le processus de développement est long et donc coûteux. Testez et déployez le code plus souvent en utilisant un pipeline de CI/CD, les testeurs pourront voir les problèmes dès leur apparition et les corriger immédiatement. Cela permettra de réduire les risques en temps réel.

Les tests doivent s’exécuter automatiquement pour s’assurer que le nouveau code ou les nouvelles fonctionnalités ne nuisent à aucune fonctionnalité existante. Les mises à jour et les informations régulières concernant les cercles de développement, de test et de déploiement doivent également être fournies tout au long du processus. Les rolbacks faciles, la visibilité et la compréhension des fichiers journaux pour nos compilations sont des fonctions de CI/CD indispensables.

La gestion des ressources de données et de l’infrastructure peut être réalisée avec des techniques et des outils de CI/CD. Les outils tels que AWS Cloudformation et Terraform peuvent gérer l’infrastructure facilement pour provisionner des ressources pour les environnements de test, de pré-production et de production. Les tests unitaires SQL peuvent être automatisés pour tester la logique d’un pipeline de données qui transforme les données dans un mouvement ELT.

De nombreux pipelines de données reposent lourdement sur les opérations ETL (Extract, Transform, Load). Nous voulons nous assurer que les modifications que nous apportons à notre référentiel Github font le bon travail avec les données. Des tests d’intégration automatisés peuvent être mis en œuvre pour garantir cela. Nous pouvons également surveiller les pipelines de données en utilisant CI/CD et Infrastructure as Code pour fournir des thèmes de notification et des alarmes pour les ressources ETL.

Comment mettre en place un pipeline CI/CD pour une plateforme de données ?

La création d’un référentiel est une étape fondamentale. Un système de contrôle de version est requis. Nous voulons nous assurer que chaque modification de notre code est contrôlée en version, sauvegardée quelque part dans le nuage et peut être inversée si nécessaire.

Maintenant que nous avons un référentiel, nous pouvons configurer notre pipeline de CI/CD pour compiler le projet. Ensuite, nous devons vérifier que les modifications apportées à notre pipeline de données fonctionnent comme prévu. Cela peut être réalisé en écrivant de bons tests unitaires et d’intégration. Si les tests réussissent, nous pouvons poursuivre les déploiements en pré-production ou en production.

CI/CD permet également de déployer facilement en environnement de pré-production ou en production.

Il existe plusieurs techniques et outils pour provisionner, déployer et gérer des ressources d’infrastructure pour des pipelines de données.

Il est également important de mettre en place une surveillance pour les pipelines de données en utilisant CI/CD et l’Infrastructure as Code pour fournir des sujets de notification et des alarmes pour les ressources ETL. Des scripts d’exemple pour les piles de plantation peuvent être ajoutés à la définition du pipeline de CI/CD.

La sécurité peut être gérée via les configurations et les paramètres de CI/CD et de l’Infrastructure as Code. Des exemples de pipelines CI/CD pour des infrastructures AWS peuvent également être consultés.

What do you think?

Written by Pierre T.

Leave a Reply

Your email address will not be published. Required fields are marked *

Voici notre meilleure vue à ce jour sur ce qu’Apple annonce en juin.

La tendance DIY dentaire sur TikTok ayant des conséquences “catastrophiques”.