Infrastructure Billetterie
Voici le schéma de l'infrastructure actuelle de la billetterie:
flowchart BT
subgraph Rails_Servers["Serveurs Rails"]
Muplododucus["<b>Muplododucus</b>"]
Tranchodon["<b>Tranchodon</b>"]
Drattak["<b>Drattak</b>"]
Dracolosse["<b>Dracolosse</b>"]
Colimucus["<b>Colimucus</b>"]
Mucuscule["<b>Mucuscule</b>"]
Trioxhydre["<b>Trioxhydre</b>"]
Carchacrok["<b>Carchacrok</b>"]
end
subgraph Postgres_Replicas["Postgres Replicas"]
Engloutyran["<b>Engloutyran</b>"]
Katagami["<b>Katagami</b>"]
Bamboiselle["<b>Bamboiselle</b>"]
Vemini["<b>Vemini</b>"]
end
Deoxys@{ label: "<b>Deoxys</b><br>Load Balancer<br>HAProxy<br>File d'attente" } --> Rails_Servers & Queulorior@{ label: "<b>Queulorior</b><br>Redis<br>Site gestion file d'attente" }
Rails_Servers --> Arcanin["<b>Arcanin</b><br>Redis<br>MinIO"] & Zeroid["<b>Zeroid</b><br>Postgres Principal"]
Rails_Servers -. LB optionnel .-> Lunala["<b>Lunala</b><br>Postgres Pooler<br>"]
Lunala -. lectures .-> Postgres_Replicas
Lunala -. ecritures .-> Zeroid
Zeroid --> Postgres_Replicas & Mouscotto["<b>Mouscotto</b><br>Backup"]
Deoxys@{ shape: rect}
Queulorior@{ shape: rect}
Muplododucus:::rails
Tranchodon:::rails
Drattak:::rails
Dracolosse:::rails
Colimucus:::rails
Mucuscule:::rails
Trioxhydre:::rails
Carchacrok:::rails
Engloutyran:::replica
Katagami:::replica
Bamboiselle:::replica
Vemini:::replica
Deoxys:::lb
Queulorior:::redis
Arcanin:::redis
Zeroid:::postgres
Lunala:::pooler
Mouscotto:::backup
classDef lb fill:#ffcc00,stroke:#333,stroke-width:2px,color:#000
classDef rails fill:#cce5ff,stroke:#333,color:#000
classDef redis fill:#ff9999,stroke:#333,color:#000
classDef postgres fill:#b3e6b3,stroke:#333,color:#000
classDef replica fill:#d9f2d9,stroke:#333,color:#000
classDef backup fill:#cccccc,stroke:#333,color:#000
classDef pooler fill:#e6ccff,stroke:#333,color:#000
Légende
- Serveurs Rails : Hébergent l'application billetterie.
- Postgres Principal : Base de données principale (base de donnée pour les opérations en écriture si le load balancer est actif).
- Postgres Replicas : Bases de données en lecture seule pour améliorer les performances des lectures (uniquement si le load balancer est actif).
- Load Balancer (Deoxys) : Distribue le trafic entre les serveurs Rails.
- Redis (Arcanin et Queulorior) : Utilisé pour la gestion des sessions, de la file d'attente, des caches, des jobs, etc...
- Postgres Pooler (Lunala) : Gère les connexions aux bases de données si le load balancer est actif.
- Backup (Mouscotto) : Responsable des sauvegardes de la base de données.