Infrastructure de Production
Google Cloud Platform
La production est hebergee sur Google Cloud Platform avec un cluster Docker Swarm de 3 noeuds.
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
| Instance | Type | Specs | Role |
|---|---|---|---|
| Instance 1 | e2-standard-8 | 8 vCPUs, 32 GB RAM | Manager Swarm + services avec dependances disque |
| Instance 2 | custom e2 | 4 vCPUs, 8 GB RAM | Worker — services flottants/repliques |
| Instance 3 | custom e2 | 4 vCPUs, 8 GB RAM | Worker — 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 :
| Service | Raison |
|---|---|
| CMS (PHP) | Fichiers de configuration, sessions |
| File-Service | Fichiers ECU uploades (/var/files/) |
| CMD | Fichiers de travail |
| MariaDB | Donnees 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
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
| Avantage | Description |
|---|---|
| Haute disponibilite | Si Instance 2 ou 3 tombe, les services flottants migrent automatiquement |
| Scalabilite | On peut ajouter des workers pour plus de capacite |
| Load balancing | Swarm distribue le trafic entre les replicas |
| Isolation | Les 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