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

Briques techniques

Server HTTP Nginx

Volumes

Pas de volumes

Logs

Logs Nginx (Access Log) sortie standard docker

Urls

Port Url Utilité

80

/

Accès à l’application Datachain Core

8080

/stub_status

Accès aux métriques d’utilisation de Nginx (monitoring)

Module Backend - Image dc/backend

Description

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

Taille

~430Mo

Briques techniques

Application Java/Spring Boot/Jetty

Volumes

Chemin Utilité Obligatoire

/logs

Répertoire dans lequel le serveur écrit ses logs

Non, mais il est conseillé

Logs

Plusieurs types de logs, situées sous /logs/datachain/backend

Log Utilité

dc-backend.log

Logs applicatifs : essentiellement utilisées pour le débug.

Un nouveau fichier par jour, compression lors du remplacement, et plusieurs fichiers par jour si taille courante supérieure à 200Mo.

Premier incrément à 0. Taille totale Max de tous les fichiers limitée à 10GO. Durée de rétention : 30j.

access.log

Logs d’accès

management.log

Logs de management : peuvent être ignorés

Urls

Port Url Utilité

8089

/

Post standard d’écoute du backend

9089

/actuator-backend/*

Accès aux informations de Spring actuator, par exemple sur /actuator-backend/prometheus si la configuration du module permet d’activer les métriques :

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

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

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

Briques techniques

Application Java/Spring Boot/Spark/Jetty

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)

/logs

Répertoire dans lequel le serveur écrit ses logs

Non, mais il est conseillé

/java_cert_import

Répertoire dans lequel déposer les certificats qui seront accédés par Datachain via les connecteurs en https

Non, si aucun connecteur en HTTPS prévu.

Logs

Plusieurs types de logs, situées sous /logs/datachain/spark

Log Utilité

dc-spark.log

Logs applicatifs : essentiellement utilisées pour le débug.

Un nouveau fichier par jour, compression lors du remplacement, et plusieurs fichiers par jour si taille courante supérieure à 200Mo.

Premier incrément à 0. Taille totale Max de tous les fichiers limitée à 10GO. Durée de rétention : 30j.

access.log

Logs d’accès

management.log

Logs de management : peuvent être ignorés

Urls

Port Url Utilité

8090

/

Port d’écoute standard du composant : toutes opérations métiers avec le backend

9090

/actuator-spark/*

Accès aux informations de Spring actuator, par exemple sur /actuator-spark/prometheus si la configuration du module permet d’activer les métriques :

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

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

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 un job spark. A activer sur une plateforme de dev uniquement.

Valeur de "dc.app.spark.driver.port"

/

Dans le cadre de la mise en place d’un cluster spark, le conteneur écoute sur le port définit qui doit être accessible depuis les machines du cluster, pour opérer les échanges entre le driver et le cluster spark.

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

Briques techniques

Application Java/Groovy

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

Logs

Logs du module de migration sur la sortie standard docker

Urls

Pas d’Url sur ce composant

Module d’authentification - Image dc/keycloak

Description

Brique d’authentification, basée sur keycloak

Taille

~650Mo

Briques techniques

Application keycloak native

Volumes

Pas de volumes

Logs

Logs du module sur la sortie standard docker

Urls

Port Url Utilité

8080

/auth

  • Accès aux apis de keycloak depuis les autres services.

  • Accès à l’interface pour l’authentification et l’administration keycloak

Modules Postgresql Datachain - Images dc/pg_all, Image dc/pg, Image dc/pg-expose

Description

Base de données Postgres qui contient :

  • pour dc_pg : la configuration des pipelines de traitement (développé via l’interface de Datachain), ainsi que les paramétrages, les taches exécutées et en cours d’exécution

  • pour dc_pg_expose : Les données exposées à destination des consommateurs

  • pour dc_pg_keycloak : Les données du SSO keycloak

  • pour dc_pg_all : suivant les déploiements, une seule base est déployée et contient tous les schémas (keycloak, expose, datachain,…​)

Taille

~145Mo

Briques techniques

Base de donnée Postgresql native

Volumes

Chemin Utilité Obligatoire

/var/lib/postgresql/data

Stockage des données

oui

Logs

Logs du module sur la sortie standard docker

Urls

Port Url Utilité

5432

/

Accès aux données depuis les autres services.

Module de gestion 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

Briques techniques

Application Redis Native

Volumes

Uniquement les potentiels volumes standards de Redis

Logs

Logs du module sur la sortie standard docker

Urls

Port Url Utilité

6379

/

Accès aux files pour les autres services.

Module Console - Image dc/console

Description

Porte le module console, pour les gestions IAM de Datachain. (Gestion des utilisateurs, groupes, roles, etc.)

Taille

~500Mo

Briques techniques

Application Java/Spring Boot/Jetty

Volumes

Chemin Utilité Obligatoire

/logs

Répertoire dans lequel le serveur écrit ses logs

Non, mais il est conseillé

/java_cert_import

Répertoire dans lequel déposer les certificats qui pourraient être utilisés par l’application.

Non. A utiliser uniquement dans des cas de déploiement très particuliers.

Logs

Plusieurs types de logs, situées sous /logs/datachain/console

Log Utilité

dc-console.log

Logs applicatifs : essentiellement utilisées pour le débug.

Un nouveau fichier par jour, compression lors du remplacement, et plusieurs fichiers par jour si taille courante supérieure à 200Mo.

Premier incrément à 0. Taille totale Max de tous les fichiers limitée à 10GO. Durée de rétention : 30j.

access.log

Logs d’accès

management.log

Logs de management : peuvent être ignorés

Urls

Port Url Utilité

8093

/

Port d’écoute standard du composant : toutes opérations métiers avec la console

9093

/actuator-console/*

Accès aux informations de Spring actuator, par exemple sur /actuator-console/prometheus si la configuration du module permet d’activer les métriques :

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

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

Module MarketPlace - Image dc/view

Description

Porte le module market place, qui permet de mettre à disposition des données pour les utilisateurs.

Taille

~500Mo

Briques techniques

Application Java/Spring Boot/Jetty

Volumes

Chemin Utilité Obligatoire

/logs

Répertoire dans lequel le serveur écrit ses logs

Non, mais il est conseillé

/java_cert_import

Répertoire dans lequel déposer les certificats qui pourraient être utilisés par l’application.

Non. À utiliser uniquement dans des cas de déploiement très particuliers.

Logs

Plusieurs types de logs, situées sous /logs/datachain/mp

Log Utilité

dc-mp.log

Logs applicatifs : essentiellement utilisées pour le débug.

Un nouveau fichier par jour, compression lors du remplacement, et plusieurs fichiers par jour si taille courante supérieure à 200Mo.

Premier incrément à 0. Taille totale Max de tous les fichiers limitée à 10GO. Durée de rétention : 30j.

access.log

Logs d’accès

management.log

Logs de management : peuvent être ignorés

Urls

Port Url Utilité

8092

/

Port d’écoute standard du composant : toutes opérations métiers (visualiation, intérrogation Api)

9092

/actuator-mp/*

Accès aux informations de Spring actuator, par exemple sur /actuator-mp/prometheus si la configuration du module permet d’activer les métriques :

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

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