Ingestion des données : les grands principes de Google Cloud

Erin Franz
Partner Manager, Google Cloud
Shane Glass
Developer Advocate
Essayer GCP
Les nouveaux clients peuvent explorer et évaluer Google Cloud avec des conditions exceptionnelles.
EssayerPartout dans le monde, les entreprises prennent progressivement conscience des avantages à abandonner les anciennes infrastructures de données silotées au profit de datawarehouse d’entreprises dans le cloud. Parmi ces avantages, on retiendra notamment une collaboration simplifiée entre les métiers et une exploitation inédite de données avec de nouveaux enseignements à la clef.
Toutefois, la migration de ces données provenant de sources disparates vers un datawarehouse unique suppose la mise en œuvre de pipelines qui permettent d’ingérer les données et de les injecter dans le datawarehouse cloud.
Traditionnellement, les data ingénieurs s’appuyaient sur différents outils pour réaliser l’opération. Ce qui complexifiait de manière significative la gestion et la maintenance des pipelines et freinait le développement d’une stratégie d’exploitation des données efficace à l’échelle de l’entreprise. Beaucoup des défis rencontrés alors par les entreprises peuvent aujourd’hui être dépassés avec la création de pipelines nativement cloud. Toutefois, s’ils sont mal conçus, ils risquent de poser de nouveaux problèmes qui feront perdre du temps et de l’énergie à vos équipes.
Développer des pipelines cloud d’ingestion qui répliquent les données de sources éparses dans un entrepôt cloud peut demander un travail significatif et monopoliser des ressources humaines importantes. On peut rapidement être débordé par un projet aussi vaste et ce n’est jamais facile de savoir par où commencer.
C’est pourquoi nous avons défini les six principes suivants pour vous aider à mieux appréhender le processus. Ces principes ont été élaborés de façon à vous permettre de répondre aux principales questions que se posent les entreprises. Ils ont été conçus pour vous aider à mettre en place des pipelines qui répondent non seulement aux besoins métier mais aussi aux réalités techniques. Chaque section ci-dessous aborde un principe en détail et souligne certains éléments que vos équipes doivent prendre en compte quand elles commencent à développer un pipeline de données.
Principe 1 : Des objectifs clairement identifiés
Avant de développer un pipeline, vous devez clarifier vos objectifs. Il vous faudra adopter une approche holistique prenant en compte les contraintes et points de vue de chacun dans l’entreprise : équipes techniques mais aussi exigences réglementaires et politiques internes, cibles à atteindre, objectifs business, délais, ressources humaines disponibles et compétences requises sans oublier les besoins des utilisateurs des données.
Cette clarification des objectifs permet d’identifier et de définir de manière précise les contraintes et besoins des parties prenantes dès le début du projet et de vérifier pendant tout le cycle de développement que les pipelines construits répondent bien aux exigences de chacun.
Pour ce faire, vous devez définir l’objectif à atteindre pour chaque projet en partant du besoin métier exprimé par les utilisateurs finaux des données. N’oubliez pas que le pipeline n’est généralement pas l’objectif mais le moyen d’atteindre l’objectif !
« Permettre aux équipes d’avoir une meilleure connaissance des clients en leur donnant accès aux données du CRM via l’entrepôt cloud » est un meilleur exemple de définition d’objectif à atteindre qu’un simple « déplacer les données de notre CRM vers l’entrepôt cloud ». En termes de sémantique, la différence peut sembler négligeable. Mais définir l’objectif en partant des besoins métier peut aider vos équipes techniques à prendre de meilleures décisions pour répondre aux besoins réels des utilisateurs.
Une fois la problématique métier à résoudre clairement identifiée, faites en sorte de faciliter la collecte des exigences de chaque partie prenante et utilisez ces informations pour guider le développement technique et l’implémentation des pipelines d’ingestion.
Avant de développer, nous vous conseillons de réunir les membres des équipes de chaque partie prenante, utilisateurs finaux des données compris, afin de recueillir toutes les exigences qui guideront ensuite l’implémentation technique du pipeline. Parmi ces exigences à prendre en compte, on peut notamment citer les contraintes de délais et de disponibilité, la fréquence d’actualisation des données, les besoins en transformation, l’impact sur la chaine DevOps et sur la politique de sécurité ou encore les règles internes ou exigences réglementaires à respecter par le pipeline.
Principe 2 : Constituer son équipe
Second principe, assurez-vous d’avoir la bonne équipe, autrement dit que vous disposez des bonnes personnes avec les bonnes compétences aux bons endroits pour développer, déployer et maintenir vos pipelines.
Une fois les besoins déterminés pour vos pipelines, vous pouvez commencer à élaborer une synthèse de l’architecture qui sera mise en place pour les construire et les déployer. Cela vous permettra de lister les compétences dont vous aurez besoin au sein de votre équipe pour construire, déployer et gérer les pipelines de données et potentiellement d’identifier des manques à certains endroits impliquant soit le recrutement de nouveaux talents au sein de votre équipe, soit de faire appel à des prestataires.
Vous devez non seulement vous assurer que vous disposez des bonnes compétences mais également mettre en place une organisation qui permettra à chacun d’exploiter ses capacités au maximum. Dit autrement, cette organisation doit non seulement favoriser la responsabilisation de chaque équipe mais aussi faire en sorte que chacune puisse apporter son soutien aux autres en fonction des besoins.
Cette approche implique également des processus fluides, sans freins qui pourraient bloquer le développement technique. Typiquement, les équipes techniques doivent disposer de toutes les autorisations nécessaires pour déplacer les données de la source vers l’entrepôt cloud sans violer le concept de « moindre privilège ». En plus de l’accès à l’entrepôt cloud, les développeurs doivent pouvoir accéder aux sources des données (selon les besoins du pipeline et de l’architecture). À titre d’exemple, les développeurs doivent avoir les droits pour se connecter aux API « Salesforce Connected App » ou encore pour lire les champs de données de « Search Ads 360 ».
Principe 3 : Rechercher un ROI rapide
Troisième principe, créez de la valeur rapidement. Dans cette perspective, il est important de prendre en compte la charge de maintenance sur le long terme du pipeline avant de commencer à développer tout en livrant une première version aussi rapidement que possible.
Nous préconisons généralement la règle d’or suivante pour concevoir des pipelines avec des besoins en maintenance réduits : écrivez aussi peu de code que possible.
En pratique, cela signifie :
1. Privilégiez les outils proposant une interface visuelle pour gérer l’ingestion des données. Ces outils présentent l’avantage de réduire la quantité de code nécessitant une maintenance. Ils permettent également aux utilisateurs qui ne sont pas des développeurs de créer leurs pipelines de données.
Au passage, ils réduisent aussi les délais de développement des pipelines, ce qui permet non seulement de les déployer plus vite mais aussi de les faire évoluer plus rapidement.
- Des solutions comme Google Data Transfer Service et Fivetran permettent à tout profil d’utilisateur de créer des pipelines pour centraliser les données à partir de sources diverses : applications SaaS, bases de données, systèmes de fichiers, etc. Nécessitant peu, voire pas de code du tout, ces outils permettent de connecter rapidement et facilement vos sources à votre entrepôt de données.
- Pour les flux habituellement gérés par des spécialistes de l’ETL ou par des data engineers, des solutions comme DataFusion de Google et Dataprepr de Trifacta proposent une interface visuelle et simple à utiliser pour concevoir, gérer et superviser des pipelines avancés, réalisant des transformations complexes.
2. Lorsque les produits à base d’interfaces utilisateurs ou les connecteurs de données sont insuffisants, exploitez des modèles de code préexistants. Inutile de réinventer la roue. Typiquement, il existe de nombreux modèles pour Dataflow qui permettent aux utilisateurs d’adapter et exécuter des pipelines d’ingestion de données pour les cas d’usage les plus fréquents simplement en ajustant quelques variables. N’hésitez pas non plus à reprendre notre architecture de pipelines pour Public Datasets, publiée en open source et utilisée pour l’intégration par notre équipe Datasets.
3. Si aucune de ces options n’est suffisante, utilisez des services managés pour déployer du code pour vos pipelines. Les services managés tels que Dataflow et Dataprox éliminent la surcharge opérationnelle liée à la gestion de la configuration des pipelines. Ils assurent aussi une montée en charge automatique des instances de ces pipelines dans les limites que vous aurez préparamétrées.
Principe n°4 : Accroître la fiabilité et la transparence des données
Le quatrième principe à prendre en considération dans le développement des pipelines est d’accroître la confiance dans les données et améliorer la transparence.
L’exploitation de nombreux pipelines d'ingestion de données – chacun utilisant différents outils ou étant élaborés hors d'un plan de gestion coordonné – peut rapidement engendrer un tsunami technologique : la surcharge de gestion des pipelines d'ingestion de données enfle à mesure que la quantité de pipelines de données augmente. Cela devient particulièrement lourd si vous êtes soumis à des accords de niveau de service, ou à des contraintes juridiques, réglementaires ou politiques dans la supervision des pipelines de données.
Prévenir un tel tsunami technologique est, de loin, la meilleure stratégie pour y faire face. Il faut pour cela développer des processus de gestion rationalisée des pipelines qui automatisent le reporting.
En théorie, construire tous vos pipelines de données à l'aide d'un seul et même produit cloud contribue à limiter le phénomène. Pourtant, nous ne recommandons pas une telle approche car elle vous empêche de profiter des fonctionnalités et des optimisations de coûts intrinsèquement liées au choix du produit le mieux adapté à votre cas d’usage.
Typiquement, un service de surveillance tel que Google Cloud Monitoring Service ou Splunk - qui automatise les mesures, les événements et la collecte de métadonnées à partir de divers produits, y compris ceux hébergés dans des environnements informatiques sur site et hybrides - peut vous aider à centraliser la surveillance et le reporting de vos pipelines de données.
Autre exemple, un outil de gestion des métadonnées tel que le catalogue de données de Google Cloud ou l’Enterprise Data Catalog d’Informatica peut vous aider à mieux communiquer les nuances de vos données afin que les utilisateurs comprennent mieux quelles ressources de données sont les mieux adaptées à un cas d’utilisation donné. Cela simplifie la gouvernance des pipelines tout en éliminant les processus de rapports manuels qui entraînent souvent des inexactitudes ou des retards de mises à jour.
Principe 5 : Gérer les coûts
Cinquième principe, la gestion des coûts doit non seulement prendre en compte les dépenses en ressources cloud mais également les coûts humains pour concevoir, développer, déployer et assurer la maintenance de ces ressources cloud.
Nous sommes convaincus que l’objectif ne doit pas être de minimiser les coûts à tout prix mais plutôt de maximiser la valeur de l’investissement. En d’autres termes, vous devez maximiser l’impact de chaque euro dépensé en réduisant au minimum le gaspillage des ressources cloud et humaines.
Dans cette perspective, plusieurs facteurs sont à prendre en compte :
- Utiliser un outil adapté à la tâche - Chaque pipeline a ses exigences en termes de latence, de disponibilité, de transformations, etc. Il en va de même pour les outils qui concrétisent ces pipelines : chacun a ses forces et ses faiblesses. En choisissant l’outil adapté aux spécificités de chaque pipeline, ces derniers fonctionneront bien mieux. Vous pouvez ainsi réduire le coût global de votre projet, libérer du temps homme pour permettre à vos équipes de se concentrer sur des projets présentant plus de valeur ajoutée et rendre vos pipelines beaucoup plus efficaces.
- Standardiser l’étiquetage des ressources – Construisez et utilisez un schéma d’étiquetage cohérent et commun à l’ensemble des outils et plateformes afin d’obtenir une vision aussi complète que possible de vos dépenses. Par exemple, assurez-vous que toutes les ressources soient étiquetées par l’équipe chargée de gérer les coûts ou par l’équipe en charge du projet. Un étiquetage cohérent favorise une meilleure supervision des dépenses réalisées par les différentes équipes et permet de mieux calculer la valeur globale des investissements dans le cloud.
- Implémenter des contrôles de coûts – Si la fonction est disponible, utilisez les contrôles de coûts pour anticiper les erreurs pouvant entraîner des factures trop importantes.
- Capturer les dépenses cloud – Assurez-vous de bien capturer toutes vos dépenses liées à l’utilisation de ressources clouds. Centralisez-les dans un entrepôt de données cloud et utilisez un outil de dataviz pour les analyser. Autrement, vous ne serez ni en mesure de comprendre les changements qui interviennent dans vos dépenses et ce qui a pu les provoquer, ni de faire le lien avec les activités métier.
- Responsabiliser tout le monde sur la gestion des coûts – La gestion des coûts est l’affaire de tous les collaborateurs susceptibles de créer ou utiliser des ressources cloud. Dans cette perspective, nous vous conseillons de rendre le reporting sur les dépenses cloud plus transparent en interne et/ou de refacturer les coûts en interne en fonction de l’utilisation.
La granularité sans cesse croissante du reporting proposé par Google Cloud sur les dépenses devrait vous permettre de mieux suivre vos indicateurs clés de performance sur le long terme. Vous pouvez passer d’un reporting axé sur les dépenses (Exemple : nous avons dépensé X € en stockage Big Query le mois dernier) à des rapports basés sur la valeur (Exemple : Cela nous a coûté X € pour servir les demandes de clients qui nous ont rapporté X €).
Pour en savoir plus sur la gestion des coûts, consultez notre livre blanc "Understanding the principles of cost optimization" (Comprendre les principes de l’optimisation des coûts).
Principe 6 : Exploiter l’innovation continue des services cloud
Pour notre sixième principe, nous vous conseillons de tirer avantage de l’amélioration continue des services cloud. Tant du point de vue de la stabilité que de leurs performances, les services ne cessent de progresser et ce, même si les utilisateurs ne s’en rendent pas toujours compte. Ces améliorations peuvent favoriser un fonctionnement plus efficace de vos pipelines dans la durée et contribuer à la réduction des coûts.
Pour tirer avantage de ces améliorations, vous pouvez :
- Automatiser à la fois l’exécution des pipelines et leur maintenance : Les pipelines de données peuvent être automatisés mais presque tous les composants de la chaine de gestion peuvent l’être aussi : pipeline/data lineage, supervision, gestion des coûts, planification, gestion des accès…. En automatisant, vous pouvez réduire les coûts opérationnels sur le long terme de chaque pipeline et ainsi augmenter de façon significative la proposition de valeur. Avec l’automatisation, on évite aussi les configurations manuelles qui ne permettraient pas par la suite de profiter des améliorations apportées aux services cloud.
- Privilégier la simplicité des pipelines dès que c’est possible : Relativement facile à développer à l’aide de services managés ou d’outils ne nécessitant pas de code (outils Low Code/No Code), les pipelines d’ingestion nécessitent toutefois d’être maintenus aussi longtemps qu’ils sont utilisés. Les plus faciles à maintenir dans la durée sont généralement ceux qui privilégient la simplicité et qui tirent avantage des optimisations opérées par les fonctionnalités d’automatisation. Toute transformation au sein d’un pipeline d’ingestion de données est une forme d’optimisation manuelle que vous risquez par la suite d’avoir du mal à adapter ou à modifier lorsque les services sous-jacents évolueront. Vous pouvez éviter ces modifications manuelles en construisant des pipelines ELT (extract, load, transform) plutôt que des pipelines ETL (extract, transform, load). En basculant les traitements de transformation des données sur le moteur de l’entrepôt cloud, qui est spécialement optimisé pour ce genre de tâche, vous évitez les optimisations manuelles du pipeline.
Prochaines étapes
N’hésitez pas à consulter notre livre blanc Build a modern, unified analytics data platform (Construire une plateforme analytique unifiée et moderne) si vous souhaitez approfondir vos connaissances sur le développement d’une plateforme data dans le cloud. Vous pouvez également consulter notre site sur l’intégration des données pour obtenir des informations complémentaires et différentes approches pour bien débuter votre projet d’intégration des données.
Et, quand vous serez prêts à construire vos premiers pipelines d’ingestion de données, consultez nos pages sur Cloud Data Fusion et sur Fivetran pour savoir comment ces outils peuvent vous aider à respecter ces principes.