PAWRISE CARE
Infrastructure

Une infrastructure souveraine (UE / RGPD), maîtrisée en coût et prête à scaler : Hetzner auto-géré via Terraform aujourd'hui, cloud managé européen le jour où la charge le justifie. Décrite en code, déployée en GitOps.

Principes directeurs

Les cinq règles qui guident tous nos choix d'infrastructure.

Souveraineté & RGPDToute l'infrastructure et les données de santé animale restent en Union européenne (Hetzner aujourd'hui, Scaleway France au scale). Azure n'intervient que comme fournisseur de modèle (Azure OpenAI EU), jamais comme hébergeur des données.
Infrastructure as CodeToute l'infra est décrite en Terraform : un cluster se recrée à l'identique en une commande. Zéro configuration manuelle, donc reproductible, versionnée et auditable.
GitOpsGit est la seule source de vérité. Argo CD synchronise en continu l'état du cluster avec le dépôt : on déploie en mergeant une Pull Request, on revient en arrière en révertant un commit.
Maîtrise des coûtsLignes ARM (les moins chères), environnements de dev éphémères détruits hors usage, et hébergement auto-géré nettement moins cher qu'un cloud managé à capacités égales.
ObservabilitéChaque service est tracé de bout en bout (OpenTelemetry) ; métriques (Prometheus), logs (Loki) et traces (Tempo) sont centralisés dans Grafana pour diagnostiquer vite.

La stack d'infrastructure

Chaque outil, son rôle et pourquoi on l'a choisi.

TechnoRôlePourquoi
TerraformProvisionnementDécrit et crée toute l'infra Hetzner (nœuds, réseau, volumes, firewall) de façon reproductible. Permet de détruire puis recréer un environnement à la demande.
KubernetesOrchestrationFait tourner et auto-répare la vingtaine de conteneurs (services Rust, Care Engine, Kafka, bases, observabilité) : redémarrage automatique, placement, montée en charge horizontale.
HelmPackagingEmpaquette chaque service en chart versionné et paramétrable (dev / prod), pour des déploiements répétables.
Argo CDDéploiement GitOpsDéploie automatiquement depuis Git : l'état réel du cluster suit toujours le dépôt, rollback par simple revert de commit.
SOPS + ageSecretsChiffre les secrets (clés, mots de passe) directement dans Git : rien en clair, déchiffrement uniquement dans le cluster.
step-caPKI interneAutorité de certification interne : chaque collier et chaque service s'authentifie en mTLS par certificat.
OpenTelemetry + Prometheus / Loki / Tempo / GrafanaObservabilitéMétriques, logs et traces unifiés : on voit l'état du système et on remonte une requête à travers tous les services.
KrakenD + Traefik / cert-managerGateway & IngressKrakenD agrège les API ; Traefik et cert-manager gèrent l'entrée HTTP et les certificats TLS automatiques.

Le choix d'hébergement

Bare Metal, VPS auto-géré ou cloud managé : ce qu'on retient et pourquoi.

CritèreBare MetalVPS auto-géré (Hetzner)Cloud managé (Scaleway / hyperscaler)
Coût à capacité égaleLe plus bas, mais engagementTrès bas (ARM), facturé à l'heurePlus élevé (compute premium)
ScalabilitéManuelle, lenteHorizontale via K8s (ajout de nœuds)Automatique (autoscaling managé)
Ops à notre chargeTout, matériel inclusLe cluster K8s, automatisé par TerraformMinimale (control-plane + DB managés)
RGPD / UESelon hébergeurOui (Hetzner, UE)Oui en région UE (Scaleway / OVH, FR)
Mise en placePlusieurs joursQuelques minutes (Terraform)Quelques minutes
Adapté àPas pour nousMaintenant (dev → keynote → early prod)Au scale (traction réelle)

Décision : VPS Cloud Hetzner auto-géré, lignes ARM (CAX), provisionné par Terraform. Depuis la hausse des prix Hetzner du 15 juin 2026 (jusqu'à +176 % sur les lignes AMD CPX/CCX, +30 % seulement sur l'ARM CAX), la ligne ARM devient la plus rentable et reste largement suffisante pour notre charge. Le bare metal est écarté (trop d'ops matérielle pour une équipe étudiante) ; le cloud managé est gardé pour le passage à l'échelle.

Stratégie en deux temps

Commencer simple et souverain, scaler uniquement quand le besoin réel apparaît.

Maintenant · Hetzner Cloud auto-géré (Terraform)Dev → keynote → premiers utilisateurs
  • Cluster Kubernetes provisionné par Terraform : control-plane CAX21 + 2 workers CAX31, environ 52 €/mois (~630 €/an) pour ~20 vCPU et 40 Go provisionnés, dimensionnés pour un besoin de ≈ 16 vCPU / 32 Go.
  • Lignes ARM (CAX) : le meilleur rapport prix / puissance chez Hetzner depuis juin 2026.
  • Déploiement GitOps via Argo CD, secrets chiffrés (SOPS + age), PKI interne (step-ca).
  • Souveraineté UE (Allemagne / Finlande), 20 To de trafic inclus par serveur.
Scale · Cloud managé EU · Scaleway KapsuleQuand la traction réelle le justifie (hors école)
  • Control-plane Kubernetes managé et gratuit : on n'opère plus le control-plane soi-même.
  • PostgreSQL managé, Object Storage S3, Load Balancer et GPU à la demande.
  • Reste en France / UE (RGPD), sans lock-in ni surcoût hyperscaler.
  • Alternative équivalente : OVHcloud Managed K8s (egress UE gratuit). Azure AKS gardé pour un besoin multi-région ou un SLA entreprise.

Maîtrise des coûts en développement

Éteindre ne suffit pas : on détruit et on recrée à la demande.

Le réflexe « j'éteins les serveurs hors usage » ne fonctionne pas chez Hetzner : un serveur arrêté reste facturé tant qu'il n'est pas supprimé. Le bon mécanisme s'appuie sur l'Infrastructure as Code.

  • Facturation horaire avec un plafond mensuel : un serveur qui n'existe que quelques heures par jour est facturé au prorata.
  • Environnements de dev éphémères : « terraform destroy » le soir et le week-end, « terraform apply » le matin.
  • Un cluster de dev actif ~40 h/semaine au lieu de 168 h coûte environ 25 % du plafond, soit près de 70 % d'économie sur le compute de dev.
  • Les données sont préservées sur des volumes persistants (~0,057 €/Go/mois) ou des snapshots ; seul le compute est détruit puis recréé.

Coût annuel hors école

Ce que coûterait le projet sur un an selon le modèle d'hébergement.

ScénarioCe qu'il comprendCoût annuel
Bare metal (serveur dédié)Compute brut le moins cher, mais toute l'ops matérielle à notre charge : réservé à des tests, jamais à la production~1 000 à 1 500 €/an
Hetzner Cloud auto-géré (retenu)1× CAX21 + 2× CAX31 (ARM) + backups + volumes + Load Balancer + domaine + IA≈ 1 750 €/an (dont ~150 € de dev)
Cloud managé EUScaleway / OVH : 3 nœuds + PostgreSQL managé + Object Storage + LB + IA~3 000 à 3 700 €/an
Hyperscaler (référence)Azure AKS équivalent (multi-région, SLA entreprise)~6 000 à 10 000 €/an

Ordres de grandeur, hors école. En phase projet (démo, faible trafic), l'IA coûte environ 15 €/mois ; au stade premiers utilisateurs, l'usage IA (Azure OpenAI cascade + Cohere) monte vers 30 à 50 €/mois. Le coût réel est piloté par le trafic et le volume de requêtes IA. Le chiffrage détaillé figure dans la page Budget.

Pourquoi pas un hyperscaler tout de suite

Pourquoi pas un hyperscaler tout de suite ? Coût 4 à 6 fois supérieur, souveraineté seulement partielle (le Cloud Act américain peut s'appliquer même en région UE), lock-in fournisseur et complexité inutile tant qu'on n'a ni multi-région ni SLA entreprise à tenir. On reste sur de l'auto-géré souverain et peu cher, et on bascule vers du managé le jour où la charge et l'équipe le justifient. Construire pour une échelle qu'on n'a pas encore, ce serait du sur-engineering.