Aller au contenu

Ingénieur DevOps · Platform Engineer · Toulouse

Je construis des plateformes qui tiennent quand je ne suis pas là.

Quatre ans d’infrastructure cloud en mission dans l’aéronautique et l’industrie : AWS, Azure, Kubernetes, CI/CD sécurisée, coûts maîtrisés. Et une plateforme personnelle en production, opérée par des agents IA. Ce site en fait partie.

Boubacar Soumaré
en production · 24 h/24 · infrastructure auto-hébergée
  • Plateforme interne

    Une plateforme auto-hébergée, en production, dont les utilisateurs sont des agents IA : règles écrites, état généré, bancs, alertes. Les mêmes contraintes qu’une équipe de développeurs.

    voir la preuve complète

  • Cloud et infrastructure en code

    En mission : coûts AWS réduits de 65 à 75 % sans un incident, environnements Azure isolés dès le démarrage. Sur la plateforme : DNS, TLS et pare-feu décrits en code, rien ne s’applique sans un plan relu.

    voir la preuve complète

  • Kubernetes et GitOps

    En mission : EKS sur une plateforme de données sécurisée. Sur la plateforme : manifestes dans le dépôt, réconciliés par un contrôleur GitOps, versions épinglées ; écrit, éprouvé au banc.

    voir la preuve complète

  • CI/CD et sécurité de la chaîne

    En mission : analyse statique, SonarQube et tests de bout en bout dans les pipelines Jenkins. Sur la plateforme : recherche de secrets, audit des dépendances, image construite puis scannée à chaque poussée.

    voir la preuve complète

  • Observabilité et SLO

    Un workflow d’erreurs branché sur chaque workflow de production, une sonde chaque matin qui compare l’état déclaré à l’état réel. Les SLO chiffrés sont l’étape suivante.

    voir la preuve complète

  • Agents IA

    Des agents qui agissent sans moi à travers MCP et les SDK d’agents, et des workflows autonomes en production, chacun couvert par un contrôle.

    voir la preuve complète

  • Gouvernance

    Un point d’entrée que tout agent lit en premier, un état du système généré, des bancs, un registre des chantiers : je peux vérifier ce qui a été fait.

    voir la preuve complète

Livraison

En mission et sur ma plateforme, la même exigence

Des résultats mesurés chez des industriels, et la chaîne de livraison de ma plateforme telle qu’elle existe aujourd’hui.

En mission

Un avionneur européen · AWS

Coûts AWS réduits de 65 à 75 %

0 incident

Audit du provisionnement réel, service par service, puis réduction en deux paliers d’une semaine validés par les alarmes. Aucune interruption de production.

Un avionneur européen · AWS

Sécurisation d’une plateforme multi-services

EKS, ECS, Lambda, RDS

Durcissement WAF et Shield, secrets centralisés (Secrets Manager, KMS), alarmes de sécurité et de performance sur une plateforme de données sécurisée.

DevSecOps

La sécurité dans la chaîne CI/CD

SAST · qualité · E2E

Analyse statique, SonarQube et tests de bout en bout intégrés aux pipelines Jenkins, failles corrigées, artefacts gérés, jobs parallélisés.

Un programme de services aux citoyens · Azure

Environnements Azure de bout en bout

dev · test · bac à sable

Trois environnements isolés dès le démarrage du projet, règles de sécurité réseau, alertes FinOps en temps réel, secrets centralisés.

La chaîne de livraison de la plateforme

Telle qu’elle existe dans le dépôt, avec l’état réel de chaque maillon.

  1. écrit, éprouvé au banc

    Intégration continue multi-architecture

    À chaque poussée : recherche de secrets, bancs de test, audit des dépendances, contrôles des pages ; puis une image construite pour deux architectures de processeur, et scannée.

  2. écrit, éprouvé au banc

    Infrastructure en code

    Le DNS, le TLS et le pare-feu décrits en code, validés contre le vrai fournisseur, éprouvés par un banc. Rien ne s’applique sans un plan relu.

  3. écrit, éprouvé au banc

    Kubernetes et GitOps

    Les manifestes vivent dans le dépôt ; un contrôleur GitOps les réconcilie en lecture seule. Versions épinglées, répétition complète sur une machine jetable.

  4. en service

    Alertes et sondes

    Un workflow d’erreurs branché sur chaque workflow de production, trois essais d’envoi. Chaque matin, une sonde compare l’état déclaré à l’état réel.

  5. étape suivante

    SLO et budget d’erreur

    Des objectifs de service chiffrés, relevés sur trente jours, et des alertes par taux de consommation du budget d’erreur.

  6. en service

    Runbooks

    Des modes d’emploi exécutables dans le dépôt : installer, basculer, restaurer, revenir en arrière, chaque geste dans l’ordre.

  7. en service

    Post-mortems sans coupable

    Chaque panne racontée au même gabarit : problème, mesure, décision, résultat, ce que je referais autrement. On cherche une cause, jamais une personne.

Relevé

Ce que la plateforme a fait ces sept derniers jours

Trois compteurs, lus par un script dans la base du moteur de workflows de production, à la date écrite sous les chiffres. Aucun n’est écrit à la main.

11
workflows de production actifs
lu dans le moteur de workflows
105
exécutions réussies sur sept jours
statut succès, fenêtre glissante
9
exécutions en échec sur sept jours
chacune a déclenché une alerte

Dernière écriture : .

Mise en production

Ce que la plateforme a appris à faire, dans l’ordre

Chaque étape a tourné pour de vrai avant la suivante.

  1. étape 01

    Une seule porte, un routage déterministe

    Tout entre par une messagerie. Une règle, pas un modèle, décide ce qui est privé, et le privé ne rencontre aucun modèle. Le reste devient une note ou une tâche dans un second cerveau.

  2. étape 02

    Le premier workflow de production autonome

    Sujet, rédaction, génération, contrôles, assemblage, livraison : une chaîne complète, sans main humaine entre le déclencheur et le livrable.

  3. étape 03

    Un bot par rôle

    La capture garde sa porte ; la conversation avec un agent a la sienne. Chaque usage a exactement une porte.

  4. étape 04

    La production quitte le poste de travail

    Plus rien ne dépend d’un ordinateur allumé. Tout ce qui produit vit sur le serveur ; le poste de travail sert aux essais et aux mesures.

  5. étape 05

    L’inférence sur un GPU à la demande

    La charge GPU part vers un service serverless facturé à la seconde. Coût mesuré par exécution : 0,041 $.

  6. étape 06

    L’état du système se génère

    Une page d’état produite par script depuis des déclarations, un banc qui la vérifie, une sonde qui compare le déclaré au réel.

  7. étape 07

    Sauvegarde chiffrée, garde des secrets, journal des agents

    Les secrets partent chiffrés hors machine chaque nuit ; une garde bloque toute clé avant qu’elle quitte la machine ; chaque session d’agent est journalisée.

  8. étape 08

    Des exécutions chaque jour, sept jours sur sept

    Livraison à chaque destination, relevé des indicateurs, alerte à chaque échec.

La plateforme

Explorez-la : chaque nœud est quelque chose qui tourne

Une infrastructure auto-hébergée sur un serveur cloud, des GPU à la demande, et rien qui n’existe qu’à un seul endroit. Un nœud choisi ouvre son détail.

nœud

Le moteur de production

des workflows quotidiens

Rédaction, génération, contrôles, assemblage, livraison. Chaque exécution journalisée, chaque échec alerté.

chaque exécution journalisée · chaque échec alerté

générervérifierlivrer

Un run en deux temps

La forme vraie d’un workflow de production, redessinée avec des nœuds génériques : ni fournisseur, ni service, ni identifiant. Un nœud choisi dit ce qu’il fait.

  • La formeLe temps 1 prépare, dépose et s’arrête. Hors de la plateforme, un agent planifié génère ; le connecteur contrôle chaque dépôt.
  • Le réveilAu dernier dépôt, un webhook relance le même workflow, une seule fois. Aucun exécuteur n’attend.
  • La repriseL’état du run est relu : ce qui est fait n’est pas refait.

Pour des agents

Une plateforme dont les utilisateurs sont des agents IA

La contrainte est la même que pour une équipe de développeurs : ils doivent pouvoir agir sans moi, et je dois pouvoir vérifier ce qu’ils ont fait. Ça m’a obligé à écrire des règles explicites, à générer l’état du système, à couvrir le tout de bancs, et à journaliser chaque session. Voici les quatre mécanismes, avec des extraits réels.

01

Le point d’entrée

| quand | quoi |
| d’office, à chaque session | AGENTS.md |
| première chose à ouvrir | l’état du système, généré |
| sur ouverture | nomenclature, registre, décisions |

Un fichier agnostique que tout agent lit en premier, quel que soit l’outil. Il ne raconte rien : il dit où c’est raconté, et ce qui ne se discute pas.

02

L’état généré

projet : le site de preuve
état : en production
déclenché : à chaque construction
→ page d’état régénérée, banc au vert

Écrit par un script depuis des déclarations, jamais à la main. Un projet qui n’est pas déclaré n’existe pas pour le système.

03

Les bancs

7 · Le registre se compte juste
  ok  un numéro porté deux fois est trouvé
  ok  une barre nue dans une case arrête le script
44 vérifications passées, 0 échouée

Le verdict est « 0 échouée », jamais un total : un total change avec l’outillage, et un chiffre attendu fait croire à une régression le jour où il bouge.

04

Le journal des sessions

{ "duree_min": 45,
  "depots": { "gouvernance": 1, "projects": 2 },
  "ecrit_par": "journaliser_session",
  "entree": "agent-b" }

Chaque session d’agent laisse une ligne : sa durée et les dépôts qu’elle a touchés. Deux agents de fournisseurs différents y écrivent au même format.

Ce que ça m’a appris, et ce que ça a coûté

01Je mesure avant de corriger

Deux correctifs sont partis sans que le signal ait été mesuré. Dès qu’il l’a été, la cause est apparue en une passe. Depuis, chaque correctif commence par une mesure.

02Chaque service signale quand il fonctionne mal

Un service a répondu 200 pendant six semaines en sautant une étape. Il indique maintenant qu’il est dégradé, et cette alerte a été vérifiée en production.

03Un nombre de pannes est noté avec son heure

44 sur 49 le soir, 46 sur 51 le lendemain : le nombre augmentait pendant que j’écrivais le correctif. Je note l’heure du relevé et la vitesse à laquelle il monte.

04Le code vérifie ce que le modèle écrit

Après trois correctifs du même type dans un prompt, j’ai changé de méthode : le modèle remplit des champs définis à l’avance, et le code vérifie chaque champ avant de continuer.

05La page d’état est produite par un script

Tenue à la main, une page d’état devient fausse en quelques jours. Produite par un script et vérifiée par un banc, elle correspond chaque matin à ce qui tourne.

06Chaque chantier est inscrit dans un registre

Trois feuilles de route étaient rangées dans trois dossiers, sous trois noms différents ; retrouver la troisième a demandé de fouiller le disque. Il y a maintenant un registre, une ligne par chantier, mis à jour le jour même.

Études de cas

Quatre problèmes, quatre mesures, quatre décisions

Même squelette à chaque fois : le problème, la mesure, la décision, le résultat, et ce que je referais autrement. Un chiffre n’apparaît jamais sans la façon dont il a été mesuré.

2025 à 2026 · AWS

Couper 65 à 75 % des coûts cloud d’un avionneur européen, sans un incident

65 à 75 % · 0 incident

Problème

Une plateforme de données sécurisée, une facture AWS qui croissait plus vite que l’usage, et une production qu’on ne pouvait pas arrêter.

Mesure
audit du provisionnement, service par service, sur 30 jours de métriques CloudWatch : CPU, mémoire, IOPS réels contre réservés
Décision

Réduire en deux paliers d’une semaine, avec validation par les alarmes entre les deux, plutôt qu’en une fois. Écarté : la coupe en une passe, et les instances spot sur les charges d’ingestion, qui pouvaient rejouer des fichiers.

Résultat
65 à 75 % de baisse selon le service, lue sur la facturation ; 0 incident de production pendant et après la coupe, lu sur les alarmes
Ce que je referais autrement

Poser des alarmes de seuil avant la coupe plutôt qu’observer après, et automatiser la détection du surprovisionnement au lieu de l’auditer à la main.

données

Le privé ne rencontre aucun modèle

0 donnée privée vers une API

Problème

Un assistant qui trie tout ce qui entre, y compris des messages vocaux et des photos de factures. Une partie ne doit jamais sortir de la machine.

Mesure
chaque exécution relue en base : le message, la classe rendue, le modèle appelé, les jetons ; 24 exécutions réelles sur une nuit
Décision

Une règle déterministe, pas un modèle, décide du privé. D’abord un modèle local pour le privé ; puis, mesuré trop lent au démarrage, retiré : le privé est gardé mot pour mot, sans aucun modèle, et invisible pour les outils de lecture de l’assistant.

Résultat
0 message privé parti vers une API, par construction ; classement 8 sur 8 juste sur le lot mesuré
Ce que je referais autrement

Éprouver le modèle local à froid avant de l’installer : 175 secondes de chargement sur le serveur, ça se mesure en dix minutes, pas après deux semaines.

FinOps

L’inférence GPU quitte le poste de travail

0,041 $ par exécution

Problème

Un modèle génératif qui tournait sur le GPU d’un ordinateur portable. Éteint ou occupé, le workflow attendait 58 minutes un résultat qui ne venait plus, sans lever d’erreur.

Mesure
coût par exécution relu dans le journal du service, sur 6 travaux réels : 0,037 à 0,047 $
Décision

L’inférence sur un GPU serverless facturé à la seconde ; le post-traitement, du calcul léger, reste sur le serveur. Écarté : un GPU dédié dans le cloud, payé même à vide.

Résultat
0,041 $ par exécution, soit environ 6 $ par mois pour cinq exécutions par jour ; plus rien ne dépend du poste de travail
Ce que je referais autrement

Relire le coût au lieu de le recopier : le commentaire du code annonçait 0,0675 $ pendant dix jours après la mesure réelle.

fiabilité

La panne silencieuse : 46 exécutions sur 51 en dégradé, toutes en HTTP 200

la panne n’est plus muette

Problème

Un service de post-traitement cherchait un composant à une adresse écrite en dur. Le composant a redémarré, l’adresse a changé, et le service a continué de répondre 200 en sautant l’étape.

Mesure
journal du service compté ligne à ligne : 46 sur 51 travaux portaient « injoignable » ; trois chiffres contradictoires avant de compter sur la chaîne exacte, avec ses espaces
Décision

Le service dit son état : une sonde de santé rend « dégradé » avec la raison, le compte rendu porte l’état du post-traitement, le journal l’écrit. Le composant se joint par un nom, plus par une adresse. Écarté : régénérer en silence quand le composant manque.

Résultat
déployé et constaté : la sonde rend dégradé tant que le composant n’est pas publié, et le dit ; la panne n’est plus invisible
Ce que je referais autrement

Interdire toute adresse en dur dès la première version, et dater tout chiffre de panne : il montait de deux par jour pendant que j’écrivais.

Parcours

Quatre secteurs, quatre piles techniques

Quatre ans chez le même employeur de services numériques, en mission chez des industriels. Les clients sont nommés par leur secteur.

  • Un avionneur européen · plateforme de données sécurisée

    Réduction des coûts AWS de 65 à 75 % ; chaînes d’ingestion (Glue, EventBridge, S3) ; analyse statique et qualité dans les pipelines ; durcissement WAF, secrets et KMS ; Terraform et CloudFormation ; recherche augmentée par IA sur GCP.

  • Un programme de services aux citoyens · Azure

    Environnements Azure de bout en bout, règles de sécurité réseau, alertes FinOps.

  • Un constructeur d’engins agricoles · applications mobiles des concessionnaires

    Dette technique réduite d’environ 80 %, migration Cordova vers Capacitor, CI/CD mobile, six livraisons trimestrielles sur les stores.

  • Un constructeur de véhicules industriels · supervision de flottes

    Migration AngularJS vers Angular 16 dans un projet France et Inde de plus de cent personnes.

  • Une jeune entreprise de la restauration · en alternance

    Infrastructure AWS complète, PWA serverless, paiement, mises en production iOS et Android.

Cloud et infrastructure en code

AWSAzureGCPTerraformOpenTofuCloudFormation

Kubernetes et conteneurs

KubernetesEKSECSDockerHelmGitOps

CI/CD et sécurité de la chaîne

JenkinsGitLab CIAzure DevOpsArtifactorySASTSonarQubeCypressKMSWAF

Observabilité et FinOps

CloudWatchalarmessondesAWS Budgetsalertes de coûts

Agents IA et automatisation

MCPSDK d’agentsn8nRAGroutage déterministeFinOps des LLM

Langages

Python · FastAPIJavaScript · TypeScriptBashSQLC#Java

CV

Le CV, en entier

La version complète, sur sa propre page, imprimable en deux pages A4.

Boubacar Soumaré

Ingénieur DevOps et Platform Engineer · Cloud AWS et Azure, certifié AWS

Toulouse, France · contact@boubacarsoumare.com · linkedin.com/in/boubacar-soumare

Profil

Ingénieur DevOps, Cloud et Platform, quatre ans d’expérience sur des infrastructures critiques et industrielles (aéronautique, machinisme agricole, véhicules industriels). Spécialisé sur les environnements multi-services AWS et Azure, j’industrialise les chaînes CI/CD et DevSecOps (Jenkins, GitLab CI, Checkmarx) et pilote l’efficience cloud : réduction mesurée de 65 à 75 % des coûts AWS chez un avionneur européen, sans interruption de production. Issu du génie logiciel (Python et outillage multi-langages), je traite l’infrastructure comme du code modulaire et testé (Terraform). En parallèle, j’exploite en production continue une plateforme d’infrastructure auto-hébergée, 24 h/24 (conteneurs, automatisation IA, agents), avec la même rigueur d’exploitation.

Certifications

AWS Certified Cloud Practitioner (2024)

CKA, Certified Kubernetes Administrator (en préparation)

Formation

MSc Pro Développeur d’applications, Epitech Toulouse (2022)

Licence informatique, Université de Haute-Alsace, Mulhouse (2020)

Langues

Français, langue maternelle

Anglais professionnel (B2) : quatre ans en environnement international, comités quotidiens avec les équipes France et Inde

Expérience professionnelle

Une entreprise de services numériques · ingénieur logiciel, puis ingénieur DevOps et cloud
  • Un avionneur européen · plateforme big data sécurisée août 2025 → aujourd’hui
  • Un programme de services aux citoyens · environnements Azure mai → juil. 2025
  • Un constructeur d’engins agricoles · applications mobiles du réseau de concessionnaires nov. 2023 → avr. 2025
  • Un constructeur de véhicules industriels · supervision de flottes 2022 → 2023
Une jeune entreprise de la restauration · développeur full stack, alternance
  • Plateforme de mise en relation entre restaurateurs et cuisiniers
Plateforme d’automatisation et d’IA, en production
  • Conçue, développée et exploitée seul, en production 24 h/24.

Contact

Écrivez-moi

Un projet, une question sur la plateforme, une idée à discuter : un courriel suffit, je réponds.

contact@boubacarsoumare.comlinkedin.com/in/boubacar-soumare