Documentation — DataLab0Page 27 / 36 — Docker et déploiement · v00001 · b00005

Docker et déploiement

Fonctionnel

Le SaaS BI devra pouvoir être mis en production proprement sur serveur, avec isolation des composants critiques.

Docker sert à :

  • isoler les responsabilités ;
  • éviter qu'un job lourd bloque toute la plateforme ;
  • séparer le runtime workspace de développement du runtime viewer publié ;
  • scaler certains composants indépendamment ;
  • préparer une évolution Kubernetes.

Technique

Containers recommandés au départ

workspace-web
viewer-web
api
worker
scheduler
postgres
redis
minio
reverse-proxy

Rôle des containers

workspace-web

Runtime de développement :

  • workspace multi-fenêtres ;
  • éditeurs ;
  • datasets ;
  • pipelines ;
  • dashboards en édition.

viewer-web

Runtime de consultation :

  • dashboards publiés ;
  • filtres ;
  • interactions ;
  • exports ;
  • aucun moteur workspace complet.

api

Backend principal :

  • organisations ;
  • workspaces ;
  • objets BI ;
  • permissions ;
  • publication ;
  • audit ;
  • lineage.

worker

Jobs asynchrones :

  • imports ;
  • refresh ;
  • pipelines ;
  • exports ;
  • transformations.

scheduler

Planification :

  • refresh datasets ;
  • exports planifiés ;
  • alertes ;
  • pipelines planifiés.

postgres

Base metadata :

  • utilisateurs ;
  • organisations ;
  • workspaces ;
  • datasets ;
  • dashboards ;
  • permissions ;
  • audit ;
  • locks.

redis

Cache et coordination :

  • sessions ;
  • locks ;
  • queues simples ;
  • présence ;
  • cache court.

minio

Object storage compatible S3 :

  • fichiers sources ;
  • imports ;
  • exports ;
  • snapshots ;
  • previews.

reverse-proxy

Entrée HTTP :

  • routage vers workspace/viewer/API ;
  • SSL plus tard ;
  • headers sécurité.

Règle d’architecture critique

Les ressources de développement et de consommation publiée doivent être séparées.

Une requête qui plante en développement ne doit jamais rendre indisponibles les dashboards publiés.

Phase 1

Docker Compose.

Phase 2

Séparation plus fine :

  • worker-dev ;
  • worker-viewer ;
  • worker-export ;
  • worker-pipeline.

Phase 3

Kubernetes / orchestration avancée.