Aller au contenu principal

Infrastructure de Production

Google Cloud Platform

La production est hebergee sur Google Cloud Platform avec un cluster Docker Swarm de 3 noeuds.

Qu'est-ce que Docker Swarm ?

Docker Swarm est un orchestrateur de containers integre a Docker. Il permet de :

  • Gerer plusieurs serveurs (noeuds) comme un seul cluster
  • Distribuer automatiquement les containers sur les noeuds disponibles
  • Repliquer les services pour la haute disponibilite
  • Gerer le load balancing entre les replicas

Architecture du Cluster

Specifications des Instances

InstanceTypeSpecsRole
Instance 1e2-standard-88 vCPUs, 32 GB RAMManager Swarm + services avec dependances disque
Instance 2custom e24 vCPUs, 8 GB RAMWorker — services flottants/repliques
Instance 3custom e24 vCPUs, 8 GB RAMWorker — services flottants/repliques

Toutes les instances utilisent des Balanced persistent disk (Google Cloud).

Services Fixes vs Flottants

Services fixes sur Instance 1

Ces services ont des dependances sur le systeme de fichiers (donnees persistantes, fichiers uploades) et doivent rester sur le meme noeud :

ServiceRaison
CMS (PHP)Fichiers de configuration, sessions
File-ServiceFichiers ECU uploades (/var/files/)
CMDFichiers de travail
MariaDBDonnees de la base de donnees

Dans Docker Swarm, ces services utilisent une contrainte de placement :

# Exemple de contrainte dans docker-compose.yml (stack Swarm)
deploy:
placement:
constraints:
- node.hostname == instance-1

Services flottants (repliques)

Les autres services n'ont pas de dependance disque et sont libres de se deplacer sur n'importe lequel des 3 noeuds. Docker Swarm decide automatiquement ou les placer en fonction de la charge et des ressources disponibles.

Caracteristiques :

  • Placement dynamique — Swarm choisit le noeud optimal
  • Replication — plusieurs instances du meme service sur differents noeuds
  • Auto-healing — redemarrage automatique sur un autre noeud en cas de panne
A clarifier

La liste exacte des services flottants n'est pas documentee. La configuration du stack Swarm de production n'est pas presente dans les repos des 3 projets (FRT-CMS1, FRT-File-Service, FRT-Intellitune) — elle est probablement stockee sur le serveur de production ou dans un repo DevOps separe.

Voir Questions Reprise Projet pour le suivi.

Avantages de cette Architecture

AvantageDescription
Haute disponibiliteSi Instance 2 ou 3 tombe, les services flottants migrent automatiquement
ScalabiliteOn peut ajouter des workers pour plus de capacite
Load balancingSwarm distribue le trafic entre les replicas
IsolationLes services critiques avec donnees sont proteges sur Instance 1

Stockage

  • Balanced persistent disk sur chaque instance (Google Cloud)
  • Les fichiers ECU sont stockes sur Instance 1 (/var/files/)
  • Google Cloud Storage pour les backups et fichiers de grande taille