SUPINFO Paris · 2025 · Cloud Infrastructure · 8 min

Supfile multi-datacenter

A secure storage application on 17 VMs with replication, observability and multi-site recovery.

17machines virtuelles
3datacenters
37preuves de test

View repository / deliverable ↗

Problem

Supfile must provide secure file storage despite the loss of a server or site, using constrained proof-of-concept hardware.

Idea

Distribute the application across Paris, New York and Toronto, duplicate every critical layer and retain evidence for each failure scenario.

Architecture

Paris and New York serve FastAPI behind Nginx, HAProxy and Keepalived. Galera replicates the database across three nodes; six GlusterFS bricks replicate files. Toronto hosts monitoring, backup, DNS and the cold site.

Implementation

Vagrant provisions 17 VMs, while specialized scripts install load balancers, web, storage, database, ProxySQL and observability. Tailscale connects the sites.

Security

Fail2ban, Suricata, network filtering, role separation and load-balancer-only exposure provide perimeter defense. The POC records the memory constraint that required Suricata to be stopped on one web node.

Infrastructure

HAProxy and a Keepalived VIP distribute traffic. ProxySQL separates reads and writes, Prometheus collects targets, and Grafana displays them through 19 panels.

Challenges

Database and file consistency must survive inter-site outages. Limited local resources also require trade-offs between functional coverage and memory use.

Results

The POC covers 3 datacenters, 17 VMs, a 3-node Galera cluster, 6 GlusterFS bricks and 37 pieces of evidence spanning connectivity, replication, failover, monitoring and security.

Lessons

Resilience is credible only when observable and tested. Preserved evidence turns a demonstration into an engineering argument.

04 · Project documents

Read the deliverables.

Original reports, presentations and guides are available without leaving the case study.

Multi-datacenter infrastructure report

PDF preview is not available in this browser. Open