Cahier des charges – Projet DevSecOps OpenMRS

Cahier des charges DevSecOps

Infrastructure de santé moderne basée sur OpenMRS

Projet AudioProthèse+
Infrastructure hybride & cloud
Conformité RGPD & Santé

Introduction

AudioProthèse+ est un réseau national de centres d'audioprothèse implanté dans plus de cinquante villes en France. L'entreprise fournit des services de diagnostic, d'appareillage et de suivi médical pour des patients souffrant de troubles auditifs. Son activité repose sur la manipulation quotidienne de données médicales sensibles et sur l'utilisation d'équipements médicaux connectés.

Face à l'augmentation des cybermenaces ciblant le secteur de la santé et au renforcement des obligations réglementaires, AudioProthèse+ a engagé un projet structurant visant à moderniser son infrastructure IT. L'objectif est de concevoir une infrastructure sécurisée, automatisée, observable et résiliente, capable d'accompagner durablement l'évolution de l'entreprise.

Santé DevSecOps Kubernetes Infrastructure as Code CI/CD Observabilité

Contexte technique

Infrastructure actuelle

L'infrastructure d'AudioProthèse+ repose sur un modèle hybride combinant des environnements on-premise, hébergeant les applications médicales critiques, et des services cloud destinés à l'observabilité, à la sécurité et à la montée en charge.

Chiffres clés

  • 50+ sites distants répartis sur le territoire national
  • 500 postes utilisateurs pour le personnel médical et administratif
  • 100+ serveurs physiques et virtuels (on-premise et cloud)
  • Liaisons chiffrées entre tous les sites et services cloud

Application de santé de référence

Le projet s'articule autour de OpenMRS, une application open source de gestion de dossiers médicaux (Electronic Medical Records). OpenMRS est utilisée comme application métier centrale, représentative des contraintes réelles d'un système de santé.

Contraintes applicatives

  • Déploiement conteneurisé avec orchestration Kubernetes
  • Exposition des logs, métriques et traces pour l'observabilité complète
  • Accès sécurisé en HTTPS avec certificats valides
  • Protection des données sensibles au repos et en transit (chiffrement)
  • Isolation des environnements (dev, staging, production)
  • Haute disponibilité et résilience

Note importante : OpenMRS sert de cas d'usage concret pour démontrer les capacités de l'infrastructure DevSecOps. Les principes appliqués sont extensibles à d'autres applications médicales.

Scénarios de déploiement

L'infrastructure peut être déployée selon trois modèles principaux, chacun répondant à des contraintes spécifiques de sécurité, de conformité et de scalabilité.

On-Premise

L'application OpenMRS est déployée au sein du datacenter central de l'entreprise. Les nœuds applicatifs, les bases de données et les composants de supervision sont hébergés sur une infrastructure maîtrisée de bout en bout.

Avantages

  • Contrôle total sur les données médicales
  • Conformité maximale aux réglementations santé
  • Latence minimale pour les sites locaux
  • Pas de dépendance aux fournisseurs cloud

Composants hébergés

  • Cluster Kubernetes (nœuds master + worker)
  • Base de données MySQL (StatefulSet)
  • Stack d'observabilité (Prometheus, Grafana, Loki)
  • Gestion des secrets (HashiCorp Vault)
  • Service mesh (Istio/Linkerd)

Hybride

OpenMRS et ses dépendances critiques demeurent hébergées on-premise, tandis que certaines briques transverses sont externalisées dans un environnement cloud sécurisé.

Avantages

  • Données sensibles conservées on-premise
  • Scalabilité cloud pour l'observabilité
  • Coûts optimisés (infrastructure flexible)
  • Reprise d'activité facilitée

Répartition des composants

  • On-premise : OpenMRS, bases de données, secrets
  • Cloud : Observabilité centralisée, logs long-terme
  • Cloud : CI/CD runners, artefacts, registres
  • Cloud : Backup secondaire et disaster recovery

Full Cloud

Déploiement complet dans le cloud avec des services managés pour maximiser l'élasticité, la disponibilité et réduire la charge opérationnelle. Idéal pour une scalabilité globale.

Avantages

  • Scalabilité automatique (auto-scaling)
  • Haute disponibilité multi-régions
  • Services managés (réduction ops)
  • Déploiement rapide et global

Architecture cloud native

  • Compute : GKE/EKS/AKS (Kubernetes managé)
  • Database : Cloud SQL / RDS (MySQL managé)
  • Observabilité : Cloud Monitoring / CloudWatch
  • Secrets : Cloud KMS / Secrets Manager
  • Storage : Cloud Storage / S3 (sauvegardes)
  • Réseau : VPC privé, Load Balancer, Cloud CDN

Attention : Le déploiement full cloud nécessite une évaluation approfondie de la conformité réglementaire (RGPD, hébergement données santé). Privilégier des régions européennes et des fournisseurs certifiés HDS (Hébergeur de Données de Santé).

Flux et sécurité inter-environnements

Quel que soit le modèle choisi, les flux entre environnements sont strictement contrôlés :

  • Chiffrement TLS 1.3 pour toutes les communications
  • VPN site-to-site ou Private Link pour les connexions on-premise ↔ cloud
  • Network policies Kubernetes et firewalls applicatifs
  • Authentification mutuelle (mTLS) via service mesh
  • Journalisation complète des accès et des flux réseau

Objectifs du projet

  • Centraliser la surveillance de la sécurité et des performances
  • Détecter et répondre rapidement aux incidents de sécurité
  • Automatiser les déploiements et la configuration (GitOps)
  • Garantir la conformité réglementaire (RGPD, données santé)
  • Améliorer la résilience et la disponibilité des services critiques
  • Optimiser les coûts d'exploitation et de licences

Architecture cible

Infrastructure as Code (IaC)

L'ensemble de l'infrastructure est décrite sous forme de code afin de garantir reproductibilité, traçabilité et maintenabilité. Le provisionnement est automatisé, tout comme la configuration des composants.

Technologies utilisées

  • Terraform : Provisionnement de l'infrastructure cloud et on-premise
  • Ansible : Configuration automatisée des serveurs et services
  • Helm : Gestion des packages Kubernetes
  • GitOps (ArgoCD/Flux) : Déploiement déclaratif continu

Conteneurisation et orchestration

Les composants applicatifs et techniques sont déployés sous forme de conteneurs orchestrés par Kubernetes. Les environnements sont isolés par namespaces et les composants persistants utilisent des mécanismes adaptés.

Composants Kubernetes

  • Cluster multi-zones pour haute disponibilité
  • StatefulSets pour les bases de données
  • Deployments pour les applications stateless
  • Services et Ingress pour l'exposition sécurisée
  • Network Policies pour la segmentation réseau
  • RBAC strict pour le contrôle d'accès

CI/CD et GitOps

Les pipelines d'intégration et de déploiement continus assurent des mises en production automatisées, sécurisées et reproductibles. Une approche GitOps est adoptée pour la gestion déclarative des configurations.

Pipeline type

  • Build : Compilation, tests unitaires, analyse de code (SonarQube)
  • Security : Scan de vulnérabilités (Trivy, Grype), SAST/DAST
  • Package : Création des images Docker, signature
  • Deploy : Déploiement GitOps via ArgoCD
  • Verify : Tests d'intégration, smoke tests
  • Monitor : Alertes et métriques de déploiement

Sécurité, observabilité et résilience

Piliers de sécurité

  • Gestion centralisée des secrets (HashiCorp Vault, Sealed Secrets)
  • Segmentation réseau fine (Network Policies, Service Mesh)
  • Scans de vulnérabilités automatisés (images, dépendances, manifests)
  • Politiques de sécurité (OPA, Kyverno, Pod Security Standards)
  • Journalisation complète et immuable des accès et événements
  • Chiffrement des données au repos et en transit

Stack d'observabilité

Les métriques, logs et traces sont centralisés afin d'offrir une visibilité complète sur l'état du système et faciliter le diagnostic.

  • Métriques : Prometheus + Grafana (dashboards temps réel)
  • Logs : Loki ou ELK Stack (centralisation et indexation)
  • Traces : Jaeger ou Tempo (traçabilité distribuée)
  • Alerting : Alertmanager, PagerDuty, intégrations Slack
  • Synthetic monitoring : Tests continus de disponibilité

Mécanismes de résilience

  • Haute disponibilité multi-zones (zone failure tolerance)
  • Auto-scaling horizontal et vertical (HPA, VPA)
  • Sauvegardes automatisées et testées régulièrement
  • Plan de reprise d'activité (PRA) et de continuité (PCA)
  • Chaos engineering pour tester la résilience

Sécurité et conformité réglementaire

L'architecture est conçue pour répondre aux exigences de conformité liées aux données médicales et au RGPD. La journalisation complète des accès, la traçabilité des actions et la protection des données au repos et en transit sont des exigences non négociables.

Exigences de conformité

  • RGPD : Consentement, portabilité, droit à l'oubli
  • Hébergement données santé (HDS) : Certification obligatoire
  • ISO 27001 : Gestion de la sécurité de l'information
  • Traçabilité : Logs d'accès immuables et auditables
  • Chiffrement : Données au repos (AES-256) et en transit (TLS 1.3)
  • Anonymisation : Techniques de pseudonymisation des données

Audit automatisé : Des contrôles de conformité sont intégrés dans les pipelines CI/CD pour garantir que chaque déploiement respecte les standards de sécurité.

Livrables attendus

  • Architecture DevSecOps fonctionnelle autour d'OpenMRS
  • Code Infrastructure as Code (Terraform, Ansible)
  • Manifests et charts Kubernetes (Helm, Kustomize)
  • Pipelines CI/CD sécurisés et automatisés (GitLab CI, GitHub Actions)
  • Plateforme de supervision centralisée (métriques, logs, traces)
  • Documentation technique complète (architecture, runbooks, procédures)
  • Documentation d'exploitation (déploiement, monitoring, incident response)
  • Démonstration fonctionnelle (MVP) avec scénarios de déploiement

Documentation attendue

  • Schémas d'architecture (diagrammes réseau, flux de données)
  • Guide d'installation et de configuration
  • Procédures opérationnelles (runbooks)
  • Guide de troubleshooting
  • Plan de reprise d'activité (PRA)
  • Matrice de conformité réglementaire

Études techniques détaillées

Architecture Kubernetes multi-zones

L'architecture repose sur un cluster Kubernetes multi-zones garantissant la haute disponibilité des services critiques. Les composants sont répartis par namespaces distincts afin d'isoler l'application de santé, les outils d'observabilité et les briques de sécurité.

Organisation des namespaces

  • openmrs-prod : Application OpenMRS en production
  • openmrs-staging : Environnement de pré-production
  • monitoring : Stack d'observabilité (Prometheus, Grafana)
  • logging : Centralisation des logs (Loki, Elasticsearch)
  • security : Outils de sécurité (Vault, scanners)
  • ingress-nginx : Contrôleur d'entrée et load balancing

Gestion de la persistance

Les bases de données persistantes utilisées par OpenMRS sont déployées à l'aide de StatefulSets. Les volumes persistants utilisent des StorageClass adaptées avec réplication et snapshots automatiques.

Sécurité réseau avancée

Les communications inter-services sont sécurisées via des politiques réseau fines et peuvent être renforcées par l'utilisation d'un service mesh (Istio ou Linkerd).

  • Network Policies Kubernetes (deny-all par défaut)
  • Service Mesh pour mTLS automatique entre pods
  • Segmentation micro-périmétrique (zero-trust)
  • Firewall applicatif web (WAF) en frontal

Conditions d'exploitation et gestion des services

Processus opérationnels

L'exploitation de l'infrastructure repose sur des processus formalisés de supervision, d'alerting et de gestion des incidents. Des SLA sont définis afin de garantir des délais d'intervention et de résolution adaptés aux contraintes du secteur de la santé.

SLA cibles

  • Disponibilité : 99.9% (environ 8h de downtime/an maximum)
  • Temps de réponse : < 500ms (P95) pour les requêtes critiques
  • Incident critique : Temps de résolution < 2h
  • Incident mineur : Temps de résolution < 24h
  • Sauvegardes : Quotidiennes avec rétention 30 jours

Automatisation de la maintenance

  • Mises à jour automatiques des dépendances (Renovate, Dependabot)
  • Sauvegardes régulières testées mensuellement
  • Tests de résilience automatisés (chaos engineering)
  • Contrôles de sécurité continus (vulnerability scanning)
  • Rotation automatique des secrets et certificats

Contraintes financières et optimisation des coûts

Le projet intègre des contraintes budgétaires réalistes. Les choix technologiques privilégient les solutions open source afin de limiter les coûts de licences, tout en garantissant un niveau élevé de sécurité et de performance.

Stratégies d'optimisation

  • Open source first : Kubernetes, Prometheus, Grafana, Loki
  • Auto-scaling : Adaptation dynamique aux charges (réduction coûts cloud)
  • Spot instances : Utilisation pour les charges non-critiques
  • Rétention optimisée : Archivage des logs anciens sur stockage froid
  • Multi-cloud évitable : Réduction des coûts de transfert inter-cloud

Analyse comparative

Une analyse comparative est réalisée pour justifier les choix d'outils et d'architectures, notamment entre solutions open source et solutions commerciales. Les critères incluent : le TCO (Total Cost of Ownership), la maturité, le support communautaire, la sécurité et la facilité d'intégration.