Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Do more with less : AI Engineering & AIOps on-p...

Do more with less : AI Engineering & AIOps on-premise grâce aux SLM

Do more with less : AI Engineering & AIOps on-premise grâce aux SLM - Fedir Rykhtik - WAX Conf 2026 #WAXConf #AIOps #AIEngineering #SLM #Kubernetes

Avatar for Fedir RYKHTIK

Fedir RYKHTIK

October 01, 2026

More Decks by Fedir RYKHTIK

Other Decks in Technology

Transcript

  1. DevOps Architect — 15+ ans, 200+ projets Fedir RYKHTIK Consultant

    DevOps Architect (FGTech) depuis 2026, ex-architecte Groupe AGPM (2020-2025) et CTO Stratis (2010-2020, 100+ ingénieurs). • Certifié CKAD, Terraform Associate, Google Cloud, ArchiMate 3, Google AI Leader • Intervenant à l'ISEN (DevOps, Kubernetes, cloud), basé à Toulon
  2. Les Filles et les Garçons de la Tech FGTech Un

    modèle « 4 jours + 1 » : 4 jours de mission chez les clients, 1 jour par semaine d'engagement associatif. • Ce jour sert la communauté : veille, partage, formation, événements • Il a donné naissance à la WAX Conference (1er octobre 2026, Cepac Vélodrome, 800+ visiteurs)
  3. Le hardware coûte de plus en plus cher Pourquoi cette

    présentation ? RAM, SSD et GPU renchérissent, le cloud suit : ajouter des machines n'est plus la réponse par défaut. • Données sensibles : elles doivent rester sur site • Budget : un mini-PC à la place d'une facture récurrente
  4. Un SLM local plutôt qu'une plateforme lourde Do More With

    Less Un mini-PC, un modèle de 9 Md de paramètres quantisé 4bit (9 Go => 5 Go), un humain qui valide. • Le modèle n'a ni shell, ni kubeconfig, ni cluster-admin • Il reçoit une évidence bornée, rend un JSON contraint
  5. Tiny (ThinkCentre, 16 Go) + un Mac PoC : le

    hardware Tiny héberge le cluster ; le Mac pilote, héberge le modèle (LM Studio) et affiche Grafana. • Lien filaire dédié 10.42.0.0/30, sans route par défaut • Tout est préchargé : aucun accès Internet pendant la démo
  6. libvirt / KVM, piloté par Terraform PoC : la virtualisation

    Trois VMs Ubuntu 24.04 de 2 vCPU / 2,5 Go, créées en un `make up`. • Réseau NAT 192.168.150.0/24, IP déterministes (.10, .11, .12) • Cloud-init : containerd + kubeadm v1.35 ; kubeadm init et CNI à la main
  7. `cp`, `worker-0`, `worker-1` PoC : Kubernetes Le control plane reste

    hors du domaine de panne ; les pannes ne touchent que worker-0. • worker-0 : ingestor + volume ext4 réel de 96 Mio • worker-1 : générateur de charge, Prometheus, Grafana
  8. `wax-demo` : un binaire Go, deux rôles Architecture de l'application

    wax-loadgen l'inonde de requêtes (2 workers, 1 requête / 250 wax-ingestor écrit des événements sur disque. • Pannes réelles : ENOSPC, throttling CPU (50m), OOMKilled (exit 137) • Preuves : queue_depth, retry_count, nr_throttled ms);
  9. Preuves → modèle contraint → humain La boucle AIOps Python

    classe la panne (ENOSPC / throttle / OOM) ; le modèle ne choisit que des valeurs bornées. • Preuves citées vérifiées, sinon rejet (3 essais, température 0,1 → 0,3 → 0,5) • Kyverno → kubectl diff → dry-run → APPLY-WAX-DEMO
  10. Un SLM local, pas une API Choix du modèle Critères

    : tourne sur le Mac, hors ligne, JSON valide, réponse en quelques secondes. • Oui : 7-9 Md de paramètres, quantifié, LM Studio • Non : API cloud (données hors site, dépendance) • Non : très gros modèle local (RAM, latence)
  11. `ornith-1.5-9b-mlx` Pourquoi Ornith ? 9 Md de paramètres au format

    MLX (Apple Silicon), sans tokens de raisonnement avec notre template. • Respecte le schéma JSON contraint • Choisit retries, backoff, queue, CPU, mémoire depuis la preuve live • La fiabilité vient du système, pas du modèle
  12. Pas d'agent autonome : un `make` par action La méthode

    Chaque étape de la démo est une cible `make` distincte (wax-enospc, wax-diagnose-ai, wax-repair…), pour découper les actions, les montrer et les rejouer. • Le modèle propose, un script valide, un humain approuve • En production : plutôt event-based (alerte → diagnostic) ou en boucle de réconciliation
  13. Le harness devient un service En production : l'architecture de

    l'agent Mêmes composants que la démo, déclenchés par événement, avec des droits minimaux. • Alerte → événement → une boucle d'agent par incident • Collecteurs en lecture seule, exécuteur séparé • SLM local : il propose et prédit, il n'exécute jamais • Validateur déterministe, audit de chaque décision
  14. Un seul maillon sur cinq est un LLM Le harness

    : qui fait quoi Le harness est une chaîne de petits scripts au rôle unique : Python décide et contrôle, le modèle ne propose que des valeurs. • diagnose.py : collecte en lecture seule (kubectl + K8sGPT) → evidence.json • compact() : classe le stade (OOM > throttle > ENOSPC) en Python • propose_repair.py : interroge Ornith via LM Studio (:1234) • remediation.py : valide les bornes, génère le patch YAML • repair.sh : policy, Kyverno, diff, dry-run, approbation humaine
  15. Le système tient la fiabilité, pas le modèle Le harness

    : garde-fous techniques Chaque réponse d'Ornith passe six filtres avant de toucher le cluster. • Décodage contraint par json_schema, thinking désactivé, max_tokens 1024 • Ancrage : au moins 50 % des preuves citées doivent référencer le résumé réel • 3 essais, température 0,1 → 0,3 → 0,5 • Bornes : retries 0-5, backoff 100-2000 ms, queue 64-512, CPU 100-1000m, mémoire 128-512Mi • ENOSPC forcé en Python : le filler est retiré quoi qu'en dise le modèle • Kyverno (Enforce), kubectl diff, dry-run serveur, APPLY-WAX-DEMO
  16. Une prédiction vérifiable, pas une opinion Prédire avant d'agir Le

    modèle joint à sa proposition ce qu'il s'attend à observer : des signaux déjà mesurés, avec un sens d'évolution. • Schéma : predictions: [{signal, attendu}], ex. queue_depth ↓, nr_throttled stable, write_errors → 0 • Signaux limités à ceux du résumé : queue_depth, nr_throttled, write_errors, restart_count • Après l'apply : observé vs prédit ; un écart stoppe tout et rend la main à l'humain
  17. 3 pannes en 9 minutes Démo (1/2) : les pannes

    Partir du baseline vert dans Grafana, puis dégrader. • make wax-enospc : volume 96 Mio plein • make wax-throttle : CPU 50m, latence 2,5 s • make wax-oom : OOMKilled en ~5 s
  18. De l'IA à la preuve de récupération Démo (2/2) :

    diagnostic et réparation Ornith propose, l'humain approuve, Grafana confirme le retour au vert. • make wax-diagnose-ai : JSON + patch YAML généré • make wax-repair : policy, diff, dry-run, approbation • make wax-verify : nœuds Ready, aucun OOM
  19. MERCI Merci à vous, l'audience : zéro cloud, un SLM

    de 9 Md de paramètres, et vous êtes toujours là. • Merci à FGTech, qui me soutient (4 jours + 1, c'est un vrai plus) • Merci aux sponsors qui soutiennent FGTech pour cette conf : Everpure, Portworx, Red Hat, Nutanix, Fortinet, EDB Postgres, Cheops Technology • make questions => fedir.fr