Architecture MLOps · Binôme
CloudPredict
Une plateforme MLOps cloud-native qui s'adapte seule de 2 à 10 pods.
- de taille d'image Docker (multi-stage)
- -60%
- de taille d'image Docker (multi-stage)
- pods, autoscaling à 50 % de CPU
- 2 → 10
- pods, autoscaling à 50 % de CPU
- piliers d'observabilité : Prometheus, Grafana, Loki
- 3
- piliers d'observabilité : Prometheus, Grafana, Loki
01 Contexte
Une plateforme de production cloud-native qui prédit des prix immobiliers (dataset California Housing) et couvre tout le cycle MLOps, de l'entraînement automatisé au monitoring proactif sur un cluster orchestré. Réalisée en binôme : ingénierie ML d'un côté, architecture système de l'autre.
02 Problème
Un modèle n'est utile que s'il est servi de façon fiable. La plateforme avait besoin d'images légères et sûres, d'une haute disponibilité sous charge, d'un accès à moindre privilège pour la stack de monitoring et d'une visibilité complète sur les métriques d'infrastructure comme métier.
03 Ce que j'ai construit
construit par moi coéquipier
- 01
Build Docker multi-stage - une étape de build pour les dépendances lourdes et une étape d'exécution python:3.11-slim, sans compilateurs en production pour réduire la surface d'attaque.
- 02
Déploiement Kubernetes - au moins 2 réplicas avec une stratégie RollingUpdate.
- 03
Horizontal Pod Autoscaler - passage de 2 à 10 pods selon un seuil CPU de 50 %.
- 04
Réseau - Nginx Ingress Controller pour centraliser le trafic, service NodePort pour la communication interne.
- 05
Sécurité - RBAC avec un ServiceAccount et un ClusterRole dédiés pour isoler les droits de la stack de monitoring.
- 06
Observabilité - collecte Prometheus en mode pull toutes les 15 s, Loki & Promtail pour centraliser les logs, et un dashboard Grafana unifié mêlant métriques d’infrastructure (CPU/RAM) et métier (volume de prédictions).
04 Résultats
- de taille d'image Docker (multi-stage)-60%
- pods, autoscaling à 50 % de CPU2 → 10
- piliers d'observabilité : Prometheus, Grafana, Loki3
05 Ma part
Moi
- Architecture cloud & DevOps (toute la partie cloud/DevOps)
- Conteneurisation optimisée (Docker multi-stage)
- Orchestration Kubernetes : HPA, Ingress, RBAC
- Stack d'observabilité : Prometheus, Grafana, Loki
Coéquipier
- Pipeline d'entraînement Random Forest
- API d'inférence FastAPI instrumentée avec validation des entrées
- Suivi des expériences avec MLflow
06 Ce que j'ai appris
- La taille d'une image est un enjeu de vitesse et de sécurité : les builds multi-stage gardent compilateurs et outils de build hors de la production.
- La disponibilité vient de la configuration : nombre minimal de réplicas, rolling updates et seuils d'autoscaling adaptés à la charge réelle.
- Le moindre privilège s'applique aussi dans le cluster : la stack de monitoring a son propre ServiceAccount et son propre ClusterRole.
- Métriques et logs ne sont utiles qu'ensemble : une vue Grafana qui mêle infrastructure et métier répond à « est-ce que ça marche ? » en quelques secondes.
- Un partage clair des responsabilités (ML vs plateforme) permet à un binôme d’avancer vite sans se marcher dessus.
Étude de cas suivante
Real-Time Shop Data Streaming