Architecture

Détails lié à l’architecture de OSRD

Les documents d’architecture permettent de comprendre comment OSRD fonctionne globalement.

1 - Flux des données

Schéma des flux des données d’osrd

Data-flow diagram

2 - Services

Architecture des services de l’application

Il s’agit d’une architecture multi-services où plusieurs composants logiciels interagissent entre eux. Ce choix a été fait pour assurer la modularité du code et pour garantir l’exploitabilité de certains services d’OSRD par des applications extérieures.

Actuel

Schéma des services du projet

Cible

De nombreuses choses sont prévues dans le futur, notamment

  • Ajouter un reverse proxy authentifiant (gateway)
  • Déployer editoast en tant que service de tuiles cartographiques “scalable” horizontalement
  • Rendre le service core “scalable” horizontalement
    • Les services de base ne gèreront qu’une seule infrastructure (sur une version donnée) à la fois
    • Ajouter un service RabbitMQ pour distribuer les requêtes à la bonne instance de core
    • Créer un service core-controller qui créera / tuera / mettra à l’échelle les services core (avec le support de k8s et docker)
    • La responsabilité du chargement des infrastructures est déplacée du front vers le core-controler.

Schéma des services du projet