ONG médicale · Belgique

Plateforme éditoriale de MedMission

En développementSoftware Engineering · DevSecOps · GitOps & Cloud · Data

Contexte

MedMission AISBL, une ONG médicale belge, doit présenter ses missions au public et permettre à son équipe de publier et de mettre à jour ce contenu sans dépendre d'un prestataire à chaque modification.

Problème et contraintes

  • Un site public et un back-office éditorial dans un même produit, maintenable par une petite équipe.
  • Des médias (photos, vidéos) à traiter sans ralentir le site.
  • Des données de missions à gouverner : qui publie quoi, et ce qui peut être agrégé publiquement.

Décisions d'architecture et compromis

Dix décisions d'architecture sont documentées dans le dépôt. Les principales :

  • Monolithe modulaire plutôt que microservices : une seule unité de déploiement pour une petite équipe, avec des frontières de modules explicites pour pouvoir extraire un module plus tard.
  • Architecture hexagonale rendue exécutable : les règles de dépendance entre couches sont vérifiées par des tests ArchUnit à chaque build, pas seulement décrites.
  • Back-office sur mesure plutôt qu'un CMS générique : le modèle éditorial des missions est spécifique, et un CMS aurait imposé son propre modèle.
  • PostgreSQL comme source de vérité des missions, avec un worker séparé pour le traitement asynchrone des médias.

Sécurité et livraison

  • Pipeline Jenkins : contrôles préalables, version SemVer, compilation et tests, puis scan de secrets, analyse des dépendances (SCA), analyse statique (SAST) et génération d'un SBOM.
  • Images de conteneur scannées avant publication, puis promotion vers un dépôt GitOps : le déploiement passe par Argo CD, jamais par une commande manuelle.
  • Chaque exécution collecte ses preuves (rapports, artefacts) : la livraison est auditable après coup.
  • Couverture (JaCoCo) et tests de mutation (PIT) outillés dans le build Maven.

Données

Une décision d'architecture dédiée cadre la gouvernance des données. Le schéma évolue par migrations versionnées (dix à ce jour), et le bilan public des missions est calculé de façon agrégée.

Résultats et état actuel

  • En développement actif, déjà déployé ; dernière version taguée v0.5.0.
  • 10 décisions d'architecture et 52 fichiers de tests dans le dépôt.
← Toutes les réalisations