Eléments de la solution de Datachain

Datachain Core est mis à disposition sous forme de conteneur docker, permettant des déploiements simples mono-serveur, jusqu’à des architectures multi-serveurs hautement disponibles.

Nous présentons ci-dessous les images de la solution DataChain ©, ainsi que les informations associées pour chaque image (notamment en terme d’accès disque).

Prérequis

Des ressources suffisantes comme indiqué au chapitre Prérequis pour faire tourner les dockers.

Une clé de déploiement valide pour se logger au registre docker Adobis, afin de récupérer les images docker DataChain ©.

Module Web - Image dc/web_ui

Description

Contient le serveur Web qui mets à dispositions les pages HTML de l’application DataChain

Taille

~220Mo

Volumes

Pas de volumes

Urls

Url Utilité

/

Accès à l’application Datachain Core

Module Backend - Image dc/backend

Description

Contient les modules métiers et API de l’application

Taille

~430Mo

Volumes

Pas de volumes

Urls

Url Utilité

/actuator-backend sur le port 9090

Accès aux informations de Spring actuator, par exemple sur /actuator-backend/metrics si la configuration du backend contient :

  • management.endpoints.web.base-path=/actuator-backend

  • management.metrics.export.prometheus.enabled=true

pour activer les métriques Spring actuator prometheus

Module Spark - Image dc/spark

Description

Porte le module de calcul (driver spark embarqué) qui est le contexte de calcul distribué. Ce module peut s’interfacer avec un cluster Spark (non livré avec la solution)

Taille

~680Mo

Volumes

Chemin Utilité Obligatoire

/data

Dans le cas ou le stockage HDFS est un répertoire local à la machine, ce volume est obligatoire. Il est inutile si on utilise un cluster HDFS.

Non (voir ci-contre)

Urls

Url Utilité

/actuator-spark sur le port 9090

Accès aux informations de Spring actuator, par exemple sur /actuator-spark/metrics si la configuration du backend contient :

  • management.endpoints.web.base-path=/actuator-spark

  • management.metrics.export.prometheus.enabled=true

pour activer les métriques Spring actuator prometheus

/ sur le port 4040

Accès à l’interface du spark driver : peut permettre d’analyser l’exécution des jobs et identifier l’origine de problèmes de performance sur un job particulier. Attention : il n’y a aucune protection sur cette url, qui permet notamment de tuer une job spark. A activer sur une plateforme de dev uniquement.

Module Postgresql Datachain - Image dc/pg

Description

Base de données Postgres qui contient la configuration des pipelines de traitement (développé via l’interface de Datachain), ainsi que les paramétrage, les taches exécutées et en cours d’exécution

Taille

~145Mo

Volumes

Chemin Utilité Obligatoire

/var/lib/postgresql/data

Stockage des données

Oui

Module Postgresql d’Exposition - Image dc/pg_expose

Description

Base de données du module exposition : permet d’exposer les données résultants des pipelines de traitement via une API Rest

Taille

~145Mo

Volumes

Chemin Utilité Obligatoire

/var/lib/postgresql/data

Stockage des données

Oui

Module de migration - Image dc/pg_migration

Description

Responsable de l’exécution des patchs de mise à jour liées à PostgreSQL. Il effectue aussi un dump avant chaque exécution.

Taille

~350Mo

Volumes

Chemin Utilité Obligatoire

/data/pg_dump

Répertoire de stockage des dump de base de données (qui peuvent être désactivés)

oui

Module d’authentification - Image dc/keycloak

Description

Brique d’authentification, basée sur keycloak

Taille

~650Mo

Volumes

Pas de volumes

Urls

Url Utilité

/auth sur le port 9090

Accès à l’interface de keycloak

Module postgres d’authentification - Image dc/pg_keycloak

Description

Base de données de l’application keycloak

Taille

~145Mo

Volumes

Chemin Utilité Obligatoire

/var/lib/postgresql/data

Stockage des données

Oui

Module de cache/ files d’attentes - Image dc/redis

Description

Image standard Redis : Assure les échanges de messages asynchrone entre les différents modules

Taille

~30Mo

Volumes

Uniquement les potentiels volumes standards de Redis