Remarques :

Fichiers de processus sur Oracle Cloud Infrastructure Object Storage avec un flux natif cloud évolutif

Introduction

Dans nos applications, nous avons souvent besoin de traiter de grandes quantités de fichiers. Dans le passé, cela a été fait par lots, mais avec les nouvelles technologies et l'avènement du cloud, nous sommes maintenant en mesure de transformer de nombreux processus en série en processus parallèles. L'utilisation de files d'attente de messages, de clusters Kubernetes et d'architectures orientées événements font partie des technologies et architectures largement utilisées pour tirer le meilleur parti du traitement de gros volumes.

Oracle Cloud Infrastructure (OCI) dispose de ressources pour permettre l'évolutivité et la réduction des coûts. Explorons les services natifs du cloud.

Dans ce tutoriel, nous verrons un moyen très courant de traiter de grandes quantités de fichiers, où les applications peuvent déposer leurs fichiers dans un bucket dans OCI Object Storage et quand ces fichiers sont déposés, un événement est généré permettant à une fonction d'écrire l'URL de ce fichier dans OCI Streaming.

Remarque : nous pouvons imaginer cette solution simplement avec une application source qui enregistre le contenu des fichiers dans OCI Streaming alors que notre application lit simplement ce contenu, mais il n'est pas recommandé de transférer de grands volumes de données dans une file d'attente Kakfa. Pour ce faire, notre approche utilisera un modèle appelé Claim-Check, qui fonctionnera exactement comme notre proposition, au lieu d'envoyer le fichier via la file d'attente de messages, nous enverrons la référence à ce fichier. Nous déléguerons la lecture du dossier à la demande qui sera en charge de son traitement.

Ce tutoriel comprend les composants suivants : OCI Object Storage, Events Service, Functions et Streaming.

A la fin de cette chaîne, l'application consommera la file d'attente de transmission en continu, mais nous ne discuterons pas de la façon dont le fichier sera traité.

img.png

Objectifs

Prérequis

Tâche 1 : créer l'instance OCI Streaming

OCI Streaming est un service de diffusion en continu géré de type Kafka. Nous pouvons développer des applications à l'aide des API Kafka et des SDK courants sur le marché. Dans cette tâche, nous allons créer une instance d'OCI Streaming et la configurer de sorte qu'elle s'exécute dans les deux applications afin de publier et d'utiliser un volume élevé de données.

  1. Connectez-vous à la console OCI, cliquez sur Analytics et IA et Flux de données.

  2. Sélectionnez Compartiment et cliquez sur Créer un flux de données.

    créer-stream.png

  3. Entrez le nom de flux de données de l'instance de flux de données et conservez les autres paramètres avec les valeurs par défaut. Cliquez sur Créer pour initialiser l'instance et attendre le statut Actif.

    sauvegarder-créer-stream.png

    Remarque :

    • Dans le processus de création de la transmission en continu, nous pouvons sélectionner Créer automatiquement un pool de flux de données par défaut. Le pool par défaut sera donc créé automatiquement.

    • Vous pouvez créer votre instance de flux de données dans un sous-réseau privé. Dans ce cas, attention pour la fonction dans la tâche 4, elle doit se trouver sur le même sous-réseau privé ou dans un sous-réseau qui a accès à l'instance de flux de sous-réseau privé. Vérifiez votre VCN, vos sous-réseaux, vos listes de sécurité, votre passerelle de service ou d'autres composants de sécurité. Assurez-vous que votre fonction peut accéder à l'instance OCI Streaming.

  4. Cliquez sur le lien DefaultPool.

    par défaut-pool-option.png

  5. Cliquez sur Kafka Connection Settings et affichez les paramètres de la connexion. Notez les informations telles qu'elles sont requises dans les tâches suivantes.

    stream-conn-settings.png

    kafka-conn.png

Tâche 2 : création d'un bucket OCI Object Storage

Nous devons créer un bucket. Les buckets sont des conteneurs logiques destinés au stockage d'objets. Par conséquent, tous les fichiers utilisés pour cette démonstration seront stockés dans ce bucket.

  1. Ouvrez la console OCI et accédez à Stockage, Buckets. Dans la section Buckets, sélectionnez Compartiment. Le compartiment sera identique à l'instance OCI Streaming créée dans la tâche 1.

    select-compartment.png

  2. Cliquez sur Créer un bucket et entrez un nom de bucket. Conservez les autres paramètres avec les valeurs par défaut et cliquez sur Créer.

    créer-bucket.png

    Nous pouvons voir le bucket créé.

    buckets-dataflow.png

    Remarque : consultez les stratégies OCI IAM pour le bucket. Vous devez configurer les stratégies si vous souhaitez utiliser ces buckets dans vos applications de démonstration. Pour plus d'informations, reportez-vous à Présentation d'Object Storage et à Stratégies OCI IAM.

Tâche 3 : activation du bucket OCI Object Storage pour les services d'événements OCI

Nous devons activer le bucket pour émettre des événements. Cliquez donc sur les détails de votre bucket, recherchez le lien Emettre la modification des événements d'objet et activez-le.

img_8.png

Tâche 4 : créer des fonctions OCI

Pour exécuter la tâche suivante, téléchargez le code à partir d'ici : OCI_Streaming_Claim_Check.zip.

Tâche 5 : configurer les événements OCI

Configurez une règle d'événement pour déclencher la fonction afin d'obtenir les informations de bucket et de les envoyer à OCI Streaming.

  1. Sélectionnez le même compartiment pour la règle et cliquez sur Créer une règle.

    img_10.png

  2. Saisissez les informations suivantes .

    1. Dans la section Condition de règles.

      • Configuration : Event Type.
      • Nom de service : Object Storage
      • Type d'événement : Object-Create, Object-Delete, Object-Update.
    2. Dans la section Action.

      • Type d'action : Functions.
      • Compartiment de fonction : <your function compartment name>.
      • Application de fonction : <your function app, in this example ocistreaming-app>.
      • Fonction : fn_stream.

    img_9.png

Tâche 6 : Testez votre circuit d'événements

Remarque : pour les réseaux privés, le code de test doit être exécuté dans un bastion connecté au même sous-réseau privé de votre instance OCI Streaming.

Dans le package de code source OCI_Streaming_Claim_Check.zip, nous pouvons trouver un dossier nommé monitoring et un fichier nommé consume.py. Nous pouvons utiliser ce code pour surveiller et tester si la solution fonctionne correctement.

Nous devons configurer le code.

img_11.png

Une fois les paramètres de flux configurés, vous pouvez exécuter le code et vérifier le circuit, à savoir le bucket, l'événement, la fonction et la transmission en continu.

img_12.png

Remerciements

Ressources de formation supplémentaires

Parcourez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, rendez-vous sur education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.