DevOps et MLOps : comprendre l'essentiel

Plus qu'un simple buzzword technique, le DevOps est une manière de travailler, un ensemble d'outils et de pratiques pour les entreprises qui veulent livrer/déployer plus rapidement, plus souvent et avec plus de fiabilité. Si vous vous interrogez sur ce qui se cache derrière ce mot-valise, cet article est une introduction aux grands principes et outils du DevOps.

Le DevOps : de quoi parle-t-on ?

Avant tout, le DevOps est une démarche qui vise à rapprocher les équipes de développement (Dev) et d'exploitation (Ops). L'objectif ? Briser les silos organisationnels, fluidifier la collaboration et automatiser tout ce qui peut l'être, avec, pour bénéfices directs, une accélération des déploiements et une réduction du time-to-market (le temps entre la conception d'une fonctionnalité et sa mise à disposition aux utilisateurs).

La mise en place de méthodes DevOps doit permettre de :

  • Améliorer la confiance entre les équipes
  • Accélérer les livraisons
  • Résoudre plus vite les incidents
  • Mieux gérer les urgences et les imprévus

L'adoption du DevOps transforme non seulement les processus, mais aussi la culture d'entreprise.

Les origines du DevOps

Le terme DevOps est apparu autour de 2008, dans un contexte où les équipes de développement et d'exploitation poursuivaient des objectifs souvent contradictoires avec d'un côté, les devs qui veulent livrer rapidement des fonctionnalités et de l'autre côté, les ops qui cherchent à garantir la stabilité et la disponibilité.

Ce conflit, souvent appelé "le mur de la confusion", rend les mises en production longues, risquées et stressantes.

Le DevOps est né comme une réponse à cette problématique : un modèle collaboratif, basé sur l'automatisation des processus, l'intégration continue et le déploiement continu.

👋 Nous c'est Antoine et Louis de Statoscop, une coopérative de statisticiens / data scientists. Vous cherchez un prestataire pour vous aider analyser, modéliser et visualiser vos données ?


Le DevOps en entreprise

Entre une méthodologie théorique et son application au sein d'une organisation, petite ou grande, la marche peut sembler haute. Il peut donc être rassurant de voir comment cela a été mis en place ailleurs.

Les approches DevOps

Il n'y a pas une seule bonne manière d'implémenter DevOps. L'organisation, la culture et les contraintes techniques dictent souvent l'approche. Certaines configurations sont efficaces, d'autres sont à éviter. Allez donc visiter le site DevOps Topologies qui propose des patterns et anti-patterns d'implémentation DevOps.

Le modèle CALMS

Le modèle CALMS est souvent utilisé pour évaluer la maturité DevOps d'une organisation. Il repose sur 5 piliers :

  • Culture : Dev et Ops collaborent autour d'objectifs communs.
  • Automation : tout ce qui peut être automatisé doit l'être.
  • Lean : éliminer les gaspillages, optimiser les flux de travail.
  • Mesure : mesurer pour comprendre et améliorer.
  • Sharing : partager les responsabilités, les réussites… et les échecs.

Des exemples d'entreprises

Parmi les nombreuses entreprises converties à cette méthodologie DevOps, les géants du numérique sont précurseurs dans cette transition.

Entreprise Création Début Avant Après Résultat
Amazon 1994 ~2011 Déploiements manuels, très longs et risqués. Problèmes fréquents de coordination entre développeurs et équipes opérationnelles. Faible fréquence de mise en production Automatisation complète des déploiements (CI/CD). Des milliers de déploiements par jour. Forte amélioration de la résilience, de la vitesse de livraison et du retour client 1 déploiement toutes les 11,6 secondes
Netflix 1997 ~2009 Monolithes complexes. Dépendance à une infrastructure physique. Temps d'indisponibilité importants lors de bugs ou d'erreurs de déploiement Passage au cloud et microservices. Automatisation poussée avec Chaos Monkey. Culture DevOps forte : "You build it, you run it" Disponibilité quasi totale, déploiements rapides
Etsy 2005 ~2009 Déploiements peu fréquents, manuels et risqués. Environnements de test et de production très différents. Développeurs peu impliqués dans la gestion de production Mise en place de pipelines CI/CD automatisés. Culture de l'amélioration continue et de la transparence. Déploiements plusieurs fois par jour sans interruption de service 50+ déploiements/jour, MTTR réduit de plusieurs heures à < 4 minutes
Facebook 2004 ~2010 Croissance rapide qui rendait difficile la gestion manuelle des infrastructures. Intégration et déploiement complexes à l'échelle Automatisation avancée. Chaque commit peut aller en production rapidement. Culture "move fast and break things" Centaines de déploiements/jour

Le MTTR est le Mean Time to Recovery : il correspond au temps moyen nécessaire à la restauration d'un service.

Les défis du DevOps

Même si la promesse est forte, adopter DevOps peut aussi soulever des difficultés :

  • Inertie organisationnelle : changer la culture et les processus internes demande du temps.
  • Endettement technique : difficile d'automatiser si le code est mal structuré ou mal documenté.
  • Complexité des outils : la diversité des solutions peut rendre le choix et l'intégration délicats.
  • Surcharge cognitive : les développeurs doivent parfois gérer des aspects d'infrastructure or tout le monde ne le souhaite pas...
  • Sécurité : l'automatisation sans garde-fous peut ouvrir des failles (par exemple, des secrets exposés dans les pipelines).

Il est donc essentiel de progressivement embarquer les équipes, d'avoir une stratégie d'adoption par petits pas et d'investir dans la formation continue.

Les outils DevOps

Au delà d'une simple approche méthodologique, le DevOps ne fonctionne pas sans outillage adapté. Le tableau ci-dessous référence une liste, loin d'être exhaustive, des outils les plus utilisés :

Domaine Définition Exemples d'outils
CI/CD Intégration et déploiement continus : automatisation du cycle de vie de développement, de l'intégration du code jusqu'à la mise en production Jenkins, GitLab CI, GitHub Actions
Conteneurisation Technique de packaging d'une application avec ses dépendances pour garantir son exécution sur tout environnement Docker
Orchestration Gestion automatisée du déploiement, de la mise à l'échelle et du fonctionnement de conteneurs dans un cluster Kubernetes
Versioning Suivi et gestion des modifications du code source dans le temps, avec historique et collaboration Git
Automatisation / Configuration Outils pour déployer et configurer automatiquement des infrastructures et des environnements Ansible, Terraform
Monitoring & Observabilité Surveillance des performances, collecte de métriques, visualisation des logs et analyse du comportement en temps réel Prometheus, Grafana, ELK Stack
Sécurité / Secrets Gestion sécurisée des identifiants, mots de passe, clés API et autres données sensibles utilisées HashiCorp Vault

Chaque entreprise fait ses choix en fonction de son environnement technique et de ses priorités.

MLOps : entre data science et DevOps

Si le DevOps optimise le cycle de vie des applications, le MLOps (pour Machine Learning Operations) s'intéresse à la mise en production des modèles de machine learning. Il en reprend les grands principes (CI/CD, monitoring, collaboration...), tout en y ajoutant les spécificités de la data science :

  • Suivi des données d'entraînement
  • Versioning des modèles
  • Tests sur la dérive des performances
  • Automatisation du retraining
  • Déploiement multi-environnements (batch, temps réel)

Mettre un modèle en production, ce n'est pas juste lancer un script Python. Il faut gérer :

  • Des pipelines complexes (prétraitement, entraînement, validation, etc.)
  • Des données changeantes (data drift / concept drift)
  • Des métriques métiers spécifiques (précision, rappel, F1, etc.)
  • La collaboration inter-équipes (data scientists, devs, ops, métiers)
  • Le suivi post-prod (monitoring, logs, triggers de retraining…)

Voici quelques outils souvent utilisés :

Domaine Définition Exemples
Suivi des expériences Log des essais, paramètres, résultats MLflow, Weights & Biases
Versioning modèles/data Historique complet et reproductible DVC, MLflow Models
Orchestration ML Enchaînement des étapes ML Kubeflow, Airflow, Metaflow
Déploiement Packaging et serveurs de modèles Seldon, BentoML, SageMaker
Monitoring Suivi performance / drift Evidently, Arize AI, Fiddler

En résumé, le MLOps permet de passer du de la preuve de concept (PoC en anglais) à la production de manière fiable et industrialisée, avec tous les enjeux que cela implique autour des données et des modèles.

Conclusion

Adopter une approche DevOps, ce n'est pas installer Jenkins ou Docker du jour au lendemain. C'est amorcer une transformation culturelle, technique et humaine. C'est une manière de penser, de collaborer, et de livrer en continu un contenu de qualité.
Et avec le MLOps, cette logique s'étend à la gestion des projets de machine learning, encore trop souvent cantonnés à l'expérimentation.

Quoiqu'il en soit, si cet article vous a donné envie de réagir ou d'en savoir plus, vous pouvez nous contacter sur le site de Statoscop pour discuter des prochaines étapes !