Déployer un lac de données open source sur OCI

Data Lakehouse est une architecture ouverte et moderne qui vous permet de stocker, de comprendre et d'analyser toutes vos données. Elle combine les capacités d'un lac de données et d'un entrepôt de données pour traiter un large éventail de données d'entreprise à des fins d'analyse avancée et d'analyse décisionnelle. Un Data Lakehouse propose une architecture qui élimine les silos de données et vous permet d'analyser les données dans votre ensemble de données. Vous pouvez construire un lac de données à partir de zéro sur Oracle Cloud Infrastructure (OCI).

Architecture

Cette architecture présente une topologie de plate-forme, une présentation des composants, les meilleures pratiques recommandées et l'automatisation Terraform pour déployer un lachouse de données open source sur OCI.

Un data Lakehouse peut stocker et agréger les données des applications d'entreprise. Les données peuvent être envoyées au lac de données ou à l'entrepôt de données. Les données présentes dans le lac de données peuvent être traitées et chargées dans l'entrepôt de données, ou lues directement à partir du lac de données pour des analyses avancées.

Le schéma suivant illustre cette architecture de référence.

Description de l'image open-source-data-lakehouse.png
Description de l'illustration open-source-data-lakehouse.png

open-source-data-lakehouse-oracle.zip

Dans cette architecture de lac de données sur OCI, Oracle MySQL HeatWave est utilisé pour l'entreposage de données. Oracle MySQL HeatWave est le seul service cloud MySQL doté d'un accélérateur de requêtes intégré hautes performances en mémoire. Pour les administrateurs de base de données et les développeurs d'applications, c'est le seul service qui leur permet d'exécuter des charges globales OLTP et OLAP directement à partir de leur base de données MySQL. Comme MySQL est optimisé pour OLTP, de nombreuses implémentations MySQL utilisent une base de données OLAP distincte pour les analyses métier.

Oracle MySQL HeatWave augmente les performances de MySQL par ordre de grandeur pour les analyses et les charges de travail mixtes, sans aucune modification des applications existantes. Oracle MySQL HeatWave fournit une plate-forme unique et unifiée pour les charges de travail transactionnelles et analytiques. Cela évite d'avoir à intégrer un processus ETL complexe, chronophage et coûteux à une base de données analytique distincte. MySQL Autopilot dans Oracle MySQL HeatWave automatise le provisionnement, le chargement des données, l'exécution des requêtes et la gestion des échecs, ce qui permet aux développeurs et aux administrateurs de base de données d'économiser beaucoup de temps.

Oracle Cloud Infrastructure Object Storage sert de lac de données dans cette architecture. OCI Object Storage permet à une entreprise de stocker toutes ses données dans un environnement élastique et rentable, tout en fournissant les services de traitement, de persistance et d'analyse nécessaires pour découvrir de nouvelles informations commerciales. Avec un lac de données sur OCI Object Storage, vous pouvez stocker et organiser des données structurées et non structurées, et utiliser des méthodes pour organiser de grands volumes de données très diversifiées provenant de différentes sources.

L'architecture présentée contient les composants open source suivants :

  • Apache Zeppelin

    Apache Zeppelin est un bloc-notes Web qui permet d'effectuer des analyses de données interactives basées sur les données et des documents collaboratifs avec SQL, Scala, Python, R, etc.

    Zeppelin est utilisé pour la science des données et l'exploration des données dans cette architecture. Dans Zeppelin, vous pouvez créer des blocs-notes et exploiter le concept d'interpréteur Zeppelin, qui permet de connecter n'importe quel système de traitement de données back-end ou de langue. Grâce à la connectivité établie de Zeppelin à MySQL et à Object Storage, vous pouvez exécuter des requêtes conjointes et extraire simultanément des données de l'entrepôt de données et du lac de données, dans une véritable expérience de requête au sein d'un lac de données.

  • Grafana

    Grafana est la plate-forme open source de cette architecture. Grafana est une application Web populaire, écrite en TypeScript (front-end) et Go (back-end). Il fournit des graphiques et des graphiques pour les sources de données prises en charge, l'une d'entre elles étant MySQL. De nombreux plug-ins sont disponibles en ligne pour vous permettre d'étendre Grafana.

Zeppelin et Grafana utilisent un système de fichiers réseau (NFS), partagé par deux instances de machine virtuelle placées dans un sous-réseau privé. Ces instances existent dans deux domaines de pannes distincts au sein d'un domaine de disponibilité. Le système de fichiers existe dans un sous-réseau privé dédié comportant un groupe de sécurité réseau, qui permet d'accéder à la cible de montage à partir de toutes les instances. Les utilisateurs peuvent accéder à Zeppelin et à Grafana via un équilibreur de charge OCI, qui fait partie de cette conception hautement disponible.

Cette architecture utilise Oracle Cloud Infrastructure Data Integration pour charger des fichiers d'Object Storage vers MySQL. MySQL, Data Integration and Data Science for Marine Life Workshop explique comment configurer et exécuter des flux de données avec Object Storage en tant que source et MySQL en tant que destination.

L'architecture possède les composants OCI suivants :

  • Location

    Une location est une partition sécurisée et isolée qu'Oracle configure dans Oracle Cloud lorsque vous inscrivez à Oracle Cloud Infrastructure. Vous pouvez créer, organiser et administrer les ressources dans Oracle Cloud au sein de votre location. Une location est synonyme de société ou d'organisation. En général, une entreprise possède une seule location et reflète sa structure organisationnelle au sein de cette location. Une seule location est généralement associée à un seul abonnement, et un seul abonnement ne dispose généralement que d'une seule location.

  • Compartiment

    Les compartiments sont des partitions logiques inter-région au sein d'une location Oracle Cloud Infrastructure. Utilisez des compartiments pour organiser vos ressources dans Oracle Cloud, contrôler l'accès aux ressources et définir des quotas d'utilisation. Pour contrôler l'accès aux ressources d'un compartiment donné, vous définissez des stratégies qui indiquent qui peut accéder aux ressources et les actions réalisables.

  • Stratégie

    Une stratégie Oracle Cloud Infrastructure Identity and Access Management spécifie qui peut accéder à quelles ressources et comment. L'accès est accordé au niveau du groupe et du compartiment, ce qui signifie que vous pouvez écrire une stratégie qui offre à un groupe un type d'accès spécifique dans un compartiment spécifique ou dans la location.

  • Région

    Une région Oracle Cloud Infrastructure est une zone géographique localisée qui contient des centres de données, appelés domaines de disponibilité. Les régions sont indépendantes les unes des autres et de grandes distances peuvent les séparer (dans les pays ou même les continents).

  • Réseau cloud virtuel (VCN) et sous-réseaux

    Un VCN est un réseau personnalisable défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Tout comme les réseaux de centres de données traditionnels, les réseaux cloud virtuels vous donnent un contrôle total sur votre environnement réseau. Un VCN peut comporter plusieurs blocs CIDR qui ne se chevauchent pas et que vous pouvez modifier après avoir créé le VCN. Vous pouvez segmenter un VCN en sous-réseaux, qui peuvent être ciblés vers une région ou vers un domaine de disponibilité. Chaque sous-réseau se compose d'une plage contiguë d'adresses qui ne chevauchent pas les autres sous-réseaux du VCN. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.

  • Domaines de disponibilité

    Les domaines de disponibilité sont des centres de données autonomes et indépendants au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées des ressources des autres domaines de disponibilité, ce qui garantit la tolérance aux pannes. Les domaines de disponibilité ne partagent pas d'infrastructure telle que l'alimentation ou le refroidissement, ni le réseau interne du domaine de disponibilité. Ainsi, il est peu probable qu'un échec dans un domaine de disponibilité affecte les autres domaines de disponibilité de la région.

  • domaines de pannes

    Un domaine de pannes est un regroupement de matériel et d'infrastructures au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines de pannes avec un matériel et une alimentation indépendants. Lorsque vous répartissez des ressources entre plusieurs domaines de pannes, les applications peuvent tolérer les pannes physiques du serveur, la maintenance du système et les pannes d'alimentation au sein d'un domaine de pannes.

  • Object Storage

    OCI Object Storage est une plate-forme de stockage hautes performances sur Internet qui offre une durabilité fiable et rentable en matière de données. Object Storage peut stocker une quantité illimité de données non structurées de tout type de contenu, y compris des données analytiques. Vous pouvez stocker ou extraire en toute sécurité des données directement à partir d'Internet ou de la plate-forme cloud. Plusieurs interfaces de gestion vous permettent de commencer facilement à petite échelle et de s'adapter en toute transparence, sans aucune dégradation des performances ou de la fiabilité du service.

    Utilisez Object Storage en tant que couche de stockage à froid pour l'entrepôt de données en stockant des données rarement utilisées, puis en les joignant de manière transparente aux données les plus récentes avec Apache Zeppelin. Utilisez le stockage d'archives pour les fichiers qui doivent être conservés pendant de longues périodes et rarement consultés.

  • MySQL HeatWave

    Oracle MySQL Database Service est un service de base de données entièrement géré qui permet aux développeurs de développer et de déployer rapidement des applications cloud natives sécurisées à l'aide de la base de données open source la plus populaire au monde. Oracle MySQL HeatWave est un nouvel accélérateur de requêtes en mémoire hautes performances intégré pour Oracle MySQL Database Service qui accélère les performances de MySQL pour les analyses et les requêtes transactionnelles.

  • Data Integration

    Oracle Cloud Infrastructure Data Integration est un service cloud natif, sans serveur entièrement géré qui extrait, charge, transforme, nettoie et reconfigure les données de diverses sources de données vers des services Oracle Cloud Infrastructure cible. La fonction ETL (extract transform load) s'appuie sur un traitement évolutif entièrement géré sur Spark. Les utilisateurs conçoivent les processus d'intégration des données à l'aide d'une interface utilisateur intuitive et sans code qui optimise les flux d'intégration afin de générer le moteur et l'orchestration les plus efficaces, en allouant et en faisant évoluer automatiquement l'environnement d'exécution. OCI Data Integration fournit une exploration interactive et une préparation des données, et aide les ingénieurs de données à se protéger contre la dérive des schémas en définissant des règles pour gérer les modifications de schéma.

  • équilibreur de charge

    Le service Oracle Cloud Infrastructure Load Balancing fournit une distribution de trafic automatisée à partir d'un seul point d'entrée vers plusieurs serveurs du back-end.

  • Instances de calcul

    Le service Oracle Cloud Infrastructure Compute vous permet de provisionner et de gérer des hôtes de calcul dans le cloud. Vous pouvez lancer des instances de calcul avec des formes qui répondent aux besoins en ressources pour l'UC, la mémoire, la bande passante réseau et le stockage. Une fois qu'une instance de calcul est créée, vous pouvez y accéder en toute sécurité, la redémarrer, attacher et détacher des volumes, puis y mettre fin lorsque vous n'en avez plus besoin.

  • Stockage de fichiers

    Le service Oracle Cloud Infrastructure File Storage offre un système de fichiers réseau durable, évolutif, sécurisé et adapté à l'entreprise. Vous pouvez vous connecter à un système de fichiers de service File Storage à partir de n'importe quelle instance Bare Metal, de machine virtuelle ou de conteneur d'un VCN. Vous pouvez également accéder à un système de fichiers en dehors du VCN à l'aide d'Oracle Cloud Infrastructure FastConnect et d'un VPN IPSec.

  • Passerelle Internet

    La passerelle Internet autorise le trafic entre les sous-réseaux publics d'un réseau VCN et le réseau Internet public.

  • Passerelle NAT (Network Address Translation)

    Une passerelle NAT permet aux ressources privées d'un VCN d'accéder à des hôtes sur Internet, sans les exposer aux connexions Internet entrantes.

  • Groupe de sécurité réseau

    Les groupes de sécurité réseau agissent comme des pare-feu virtuels pour vos ressources cloud. Avec le modèle de sécurité zéro confiance d'Oracle Cloud Infrastructure, tout le trafic est refusé et vous pouvez contrôler le trafic réseau à l'intérieur d'un VCN. Un groupe de sécurité réseau se compose d'un ensemble de règles de sécurité entrantes et sortantes qui s'appliquent uniquement à un ensemble spécifié de cartes d'interface réseau virtuelles dans un seul VCN.

Recommandations

Utilisez les recommandations suivantes comme point de départ.Vos besoins peuvent différer de l'architecture décrite ici.
  • VCN

    Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez de joindre aux sous-réseaux du VCN. Utilisez des blocs CIDR qui se trouvent dans l'espace d'adresses IP privées standard.

    Sélectionnez une plage d'adresses qui ne chevauche pas votre réseau sur site ou tout autre réseau, afin de pouvoir configurer une connexion entre le VCN et votre réseau sur site, si nécessaire.

    Lorsque vous concevez les sous-réseaux, tenez compte de vos exigences en matière de flux de trafic et de sécurité. Attachez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, qui peut servir de limite de sécurité.

  • Sécurité

    Utilisez des stratégies pour limiter les personnes autorisées à accéder aux ressources Oracle Cloud Infrastructure (OCI) dont dispose votre entreprise et leur accès.

    Des stratégies spécifiques sont nécessaires pour réussir l'implémentation de la sécurité. Envisagez d'utiliser Oracle Cloud Infrastructure Vault pour une protection supplémentaire des clés, certificats et clés secrètes.

    Le service Networking offre deux fonctionnalités de pare-feu virtuel utilisant des règles de sécurité pour contrôler le trafic au niveau du paquet : des listes de sécurité et des groupes de sécurité réseau. Un groupe de sécurité réseau se compose d'un ensemble de règles de sécurité entrantes et sortantes qui s'appliquent uniquement à l'ensemble de cartes d'interface réseau virtuelles de votre choix dans un seul réseau cloud virtuel. Par exemple, vous pouvez choisir toutes les instances de calcul qui agissent en tant que serveurs Web dans le niveau Web d'une application à plusieurs niveaux dans votre VCN.

    Les règles de sécurité des groupes de sécurité réseau fonctionnent comme les règles des listes de sécurité. Toutefois, pour la source ou la destination d'une règle de sécurité réseau, vous pouvez indiquer un groupe de sécurité réseau au lieu d'un bloc CIDR. Vous pouvez donc facilement écrire des règles de sécurité pour contrôler le trafic entre deux groupes de sécurité réseau dans le même VCN ou le trafic au sein d'un seul groupe de sécurité réseau. Lorsque vous créez un système de base de données, vous pouvez indiquer des groupes de sécurité réseau. Vous pouvez également mettre à jour un système de base de données existant pour qu'il utilise des groupes de sécurité réseau.

  • Compute

    Choisissez des formes avec les OCPU et la combinaison de mémoire appropriées, et provisionnez un stockage local de blocs et/ou NVMe en fonction des besoins, pour chaque instance. Envisagez d'utiliser les formes flexibles disponibles, ce qui offre une plus grande flexibilité pour combiner les OCPU et la mémoire.

Considérations

Lors du déploiement d'un lac de données sur Oracle Cloud Infrastructure (OCI), tenez compte des points suivants :

  • Intégration des sources de données

    Pour l'intégration d'Object Storage à MySQL, nous avons choisi Oracle Cloud Infrastructure Data Integration. Si vous souhaitez utiliser un outil open source, Talend est une option. Talend n'était pas inclus dans cette architecture car son téléchargement ne peut pas être automatisé (le téléchargement vous oblige à vous inscrire à Talend).

  • Science des données et apprentissage automatique

    Nous avons choisi open source Apache Zeppelin comme plate-forme pour la science des données et la découverte de données. Vous pouvez également utiliser Oracle Cloud Infrastructure Data Science, un outil clé proposant des applications et des informations avancées basées sur les données qui permettent aux data scientists d'accéder aux workflows automatisés, aux blocs-notes JupyterLab et aux centaines d'outils open source, ainsi qu'une approche simplifiée de la création de modèles. Il s'agit d'une plate-forme collaborative, permettant aux équipes de collaborer avec les moyens de partager et de reproduire des modèles de manière structurée et sécurisée afin d'obtenir des résultats de niveau entreprise. La plate-forme est entièrement gérée et répond aux besoins des entreprises d'aujourd'hui.

  • Analyse et reporting

    Dans cette architecture, Grafana a été choisi comme plate-forme d'analyse. Envisagez d'utiliser Oracle Analytics Cloud, un service géré avancé qui peut répondre de manière exhaustive à vos exigences en matière d'analyse et de reporting.

  • Disponibilité et évolutivité des instances

    Dans cet exemple, dans l'architecture hautement disponible, nous affichons deux instances dans des domaines de pannes différents au sein du même domaine de disponibilité. Vous pouvez choisir de placer les instances dans différents domaines de disponibilité (dans les régions, le cas échéant), pour une tolérance de panne encore plus élevée.

    Une autre approche, qui représente une adaptation plus dynamique aux besoins de performances plus exigeants et plus variables, consiste à utiliser un pool d'instances et un redimensionnement automatique.

    Les pools d'instances permettent de provisionner et de créer plusieurs instances Oracle Cloud Infrastructure Compute reposant sur la même configuration au sein de la même région.

    Le redimensionnement automatique permet d'adapter automatiquement le nombre d'instances Compute dans un pool d'instances en fonction de mesures de performances telles que l'utilisation de l'UC. Le redimensionnement automatique vous permet de fournir des performances constantes aux utilisateurs lors des périodes de demande élevée et de réduire les coûts lors des périodes de faible demande.

  • Disponibilité et évolutivité de la base de données

    Envisagez de déployer un système de base de données Oracle MySQL supplémentaire en tant que réplique de secours pour garantir une haute disponibilité. Vous pouvez placer la réplique dans un autre domaine de pannes, un autre domaine de disponibilité ou une autre région.

  • Sauvegardes de base de données

    Oracle MySQL Database Service prend en charge deux types de sauvegarde : la sauvegarde complète de toutes les données contenues dans le système de base de données et la sauvegarde incrémentielle des seules données ajoutées ou modifiées depuis la dernière sauvegarde complète. Les sauvegardes sont exécutées de l'une des manières suivantes :

    • Manuel : une action dans la console ou une demande effectuée via l'API lance la sauvegarde. Vous pouvez conserver les sauvegardes manuelles pendant un minimum d'un jour et un maximum de 365 jours.
    • Automatique : les sauvegardes programmées automatiquement s'exécutent sans aucune interaction requise au moment de votre choix. Les sauvegardes automatiques sont conservées pendant entre un et 35 jours. La valeur de conservation par défaut est de sept jours. Une fois définie, vous ne pouvez pas modifier la période de conservation d'une sauvegarde automatique.
  • Stockage de fichiers

    Dans cet exemple, nous tirons parti du service Oracle Cloud Infrastructure File Storage. Une architecture multinoeud peut également comporter un volume de blocs partagé. Un volume de blocs peut être associé à plusieurs instances en lecture/écriture. Dans ce cas, un système ou une solution prenant en charge les clusters, tel qu'Oracle Cluster File System version 2 (OCFS2), doit être installé.

  • Sécurité

    Envisagez d'utiliser Oracle Cloud Guard pour surveiller et maintenir la sécurité de vos ressources dans OCI de manière proactive. Oracle Cloud Guard utilise des recettes de détecteur que vous pouvez définir pour examiner vos ressources à la recherche de faiblesses en matière de sécurité et pour surveiller les activités risquées des opérateurs et des utilisateurs. Lorsqu'une erreur de configuration ou une activité non sécurisée est détectée, Oracle Cloud Guard recommande des actions correctives et aide à ces actions, en fonction des recettes de répondeur que vous pouvez définir. Pour les ressources nécessitant une sécurité maximale, Oracle recommande d'utiliser des zones de sécurité. Une zone de sécurité est un compartiment associé à une recette définie par Oracle de stratégies de sécurité reposant sur les meilleures pratiques. Par exemple, les ressources d'une zone de sécurité ne doivent pas être accessibles à partir du réseau Internet public et doivent être cryptées à l'aide de clés gérées par le client. Lorsque vous créez et mettez à jour des ressources dans une zone de sécurité, OCI valide les opérations par rapport aux stratégies de la recette de zone de sécurité et refuse les opérations qui violent les stratégies.

  • Développement d'applications

    Oracle Application Express (Oracle APEX), la plate-forme de développement low-code d'Oracle, est un exemple d'outil que vous pouvez utiliser pour créer des applications d'entreprise évolutives et sécurisées sur le lac de données.

    Avec Oracle APEX, les développeurs peuvent rapidement développer et déployer des applications attractives qui résolvent les problèmes réels et apportent une valeur immédiate. Vous n'aurez pas besoin d'être un expert dans une vaste gamme de technologies pour fournir des solutions sophistiquées. Concentrez-vous sur la résolution du problème et laissez Oracle APEX s'occuper du reste. Il dispose de fonctionnalités de premier ordre et vous pouvez le déployer n'importe où.

Déployer

Le code Terraform pour cette architecture de référence est disponible sur GitHub. Vous pouvez extraire le code dans Oracle Cloud Infrastructure Resource Manager en un seul clic, créer la pile et la déployer. Vous pouvez également télécharger le code à partir de GitHub sur votre ordinateur, personnaliser le code et déployer l'architecture à l'aide de la CLI Terraform.

  • Déployer à l'aide de l'exemple de pile dans Oracle Cloud Infrastructure Resource Manager :
    1. Cliquez sur Déploiement vers Oracle Cloud.

      Si vous n'êtes pas encore connecté, entrez les informations d'identification de la location et de l'utilisateur.

    2. Consulter et accepter les conditions générales.
    3. Sélectionnez la région de déploiement de la pile.
    4. Suivez les invites à l'écran et les instructions pour créer la pile.
    5. Après avoir créé la pile, cliquez sur Actions Terraform et sélectionnez Plan.
    6. Attendez que le travail soit terminé et vérifiez le plan.

      Pour apporter des modifications, revenez à la page Détails de la pile, cliquez sur Modifier la pile et apportez les modifications requises. Exécutez ensuite à nouveau l'action Plan.

    7. Si aucune autre modification n'est nécessaire, revenez à la page Détails de la pile, cliquez sur Actions Terraform, puis sélectionnez Appliquer.
  • Effectuer un déploiement à l'aide du code Terraform dans GitHub :
    1. Accédez à GitHub.
    2. Clonez ou téléchargez le référentiel sur votre ordinateur local.
    3. Suivez les instructions du document README.

Accusés de réception

Author: Nuno Goncalves