Métier
Ingénieur plateforme
Offrir aux équipes de développement une plateforme interne en libre-service, sûre par défaut, où le bon chemin pour construire, déployer et exploiter est aussi le plus simple.
Viser ce métierCe que fait ce métier
- 6 responsabilités
- 18 missions
- 68 compétences
- 250 heures de travail une estimation, en partant de zéro
Le métier
Ce que fait un Ingénieur plateforme
Six responsabilités. Chacune s’exerce à travers des missions concrètes, qui demandent des compétences.
Isoler et sécuriser les équipes sur la plateforme
Missions qui la composent
-
Centraliser l'identité des utilisateurs sur un fournisseur d'identité
Livrableun fournisseur d'identité persistant avec son realm, ses utilisateurs, groupes, rôles et journaux d'événements, et une application branchée en OpenID Connect dont les jetons sont validés
-
Fournir secrets et identités aux applications
Livrablechaque application avec une identité minimale et un accès au coffre limité à ses chemins, ses secrets délivrés à durée de vie bornée ou montés depuis un Secret Kubernetes, jamais écrits dans son image ou ses manifestes
- Stocker un secret dans un coffre et le lire sans jamais l'écrire en clair
- Scoper l'accès à un coffre au strict nécessaire et expliquer un refus
- Délivrer un secret à durée de vie bornée, le renouveler et le révoquer en urgence
- Configurer une application par ConfigMap et Secret
- Donner à un workload une identité minimale (ServiceAccount)
-
Plafonner les ressources des équipes d'une plateforme
Livrabledes quotas et des plages de ressources par équipe, un dépassement refusé par le cluster
-
Ouvrir à une équipe un espace isolé sur un cluster partagé
Livrableun espace où le cluster refuse ce qui est interdit, où l'identité de l'équipe ne peut presque rien, et que rien d'extérieur n'atteint
Fournir des chemins balisés aux équipes
Missions qui la composent
-
Fournir l'observabilité aux équipes
Livrableune collecte de télémétrie standard, pipeline et conventions d'instrumentation, que les équipes branchent sans la reconstruire
-
Livrer un outil interne aux autres équipes
Livrableun outil interne testé, relu, versionné et installable par les autres équipes sans aide
-
Standardiser la CI d'une équipe
Livrabledes modèles de pipeline réutilisés par plusieurs dépôts, avec leurs règles de contribution
-
Publier un chart Helm de référence pour les équipes
Livrableun chart maintenu, au contrat de values documenté et validé, signé et publié dans un registre OCI
Opérer le socle d'exécution de la plateforme
Missions qui la composent
-
Observer la plateforme
Livrableune plateforme dont la santé, la saturation et les erreurs sont collectées, interrogeables, visualisées et alertées de façon exploitable
- Interroger les métriques d'un service pour répondre à une question d'exploitation
- Collecter les métriques d'un service et en contrôler la qualité
- Construire un tableau de bord qui répond à une question d'exploitation
- Définir une alerte actionnable et la router sans bruit
- Observer la santé et la consommation d'un cluster
-
Rétablir un cluster défaillant
Livrableun nœud, un plan de contrôle ou une résolution de noms rétabli, la cause trouvée sans procédure
-
Remettre en service une application sur un cluster
Livrableune application qui répond de nouveau, ses défauts trouvés sans ticket ni procédure
-
Opérer un cluster Kubernetes dans la durée
Livrableun cluster installé, durci selon le CIS, observé, sauvegardé et restauré à partir de sa sauvegarde
- Configurer l'accès de kubectl à ses clusters : kubeconfig, contextes et namespace par défaut
- Observer la santé et la consommation d'un cluster
- Installer un cluster Kubernetes
- Sauvegarder et restaurer l'état d'un cluster
- Exécuter la routine d'exploitation d'un cluster
- Maintenir et gérer les nœuds sans interrompre le service
- Durcir les composants d'un cluster à partir du CIS Benchmark
-
Mettre à jour un cluster sans interrompre le service
Livrableun cluster passé à la version mineure suivante, API dépréciées migrées, nœuds drainés sans coupure
Permettre le déploiement en libre-service
Missions qui la composent
-
Livrer une application sur Kubernetes d'après un cahier des charges
Livrableune application configurée, sondée, dotée d'une identité minimale, exposée et isolée, sans mode d'emploi
- Exposer une application par Service, Ingress ou Gateway
- Configurer une application par ConfigMap et Secret
- Fiabiliser un workload : sondes de santé et ressources
- Donner à un workload une identité minimale (ServiceAccount)
- Cloisonner les flux entre Pods par NetworkPolicy
- Auditer une application facteur par facteur (12-factor) sur Kubernetes et corriger ses écarts
-
Livrer un même artefact vers plusieurs environnements
Livrableun artefact construit une fois, promu de la recette à la production de façon reproductible, contrôlée et traçable, configuration propre à chaque environnement
- Construire un artefact une fois et le promouvoir entre environnements
- Mettre à jour une application et revenir en arrière
- Configurer une application par ConfigMap et Secret
- Fiabiliser un workload : sondes de santé et ressources
- Concevoir des pipelines dynamiques (variables, conditions, réutilisation)
- Livrer vers des environnements, artefacts compris
- Décliner des manifestes par environnement avec Kustomize
- Modifier des ressources Kubernetes de façon déclarative, sans dériver de Git
-
Déployer en GitOps
Livrablenotes-api déployée et promue entre deux environnements depuis Git
Décrire l'infrastructure de la plateforme en code
Missions qui la composent
-
Décrire une infrastructure en code, partageable et rejouable
Livrableune infrastructure découpée en modules versionnés, son state partagé et verrouillé, rejouée à l'identique
- Prévoir ce qu'un outil IaC va créer, modifier ou détruire : déclaratif, idempotence, état et plan
- Tenir un dépôt IaC sain : structure par couche, revue du plan, pyramide de contrôles et secrets hors du code
- Structurer une infrastructure en code à l'échelle : stacks, modules versionnés, environnements et dette
- Partager un state Terraform distant, verrouillé et récupérable
- Consommer et versionner des modules Terraform de façon reproductible
- Concevoir, structurer et tester un module Terraform réutilisable
Garantir des images et des artefacts de confiance
Missions qui la composent
-
Livrer un artefact traçable
Livrableune image durcie, son SBOM et une attestation de provenance
- Lire une image OCI et vérifier son intégrité : index, manifeste, configuration, couches et digests
- Sécuriser l'installation et les conteneurs
- Durcir le build, les images et l'IaC
- Produire le SBOM d'un artefact et qualifier ses vulnérabilités avec un VEX
- Publier une image sur un registre : jeton d'accès, tag, digest et publication depuis la CI
- Signer un artefact, attester sa provenance et la vérifier avant déploiement
Demandé aussi, hors mission
Les moyens
Avec quels outils ?
Choisissez vos outils : le choix change les leçons à lire, jamais les responsabilités.
Plateforme d’intégration continue
Outil GitOps
Langage d’automatisation
Hyperviseur
Pour aller plus loin
Les spécialisations
Facultatives, mesurées à part du métier.
Opérer le coffre de secrets de la plateforme
Écrire l'outillage de la plateforme
- Lire et transformer des données (JSON, YAML, API)
- Écrire un outil en ligne de commande testé
- Organiser son code en modules et publier un paquet sur PyPI
- Gérer les versions de Python, les dépendances et les outils installés (pyenv, pipx, Poetry)
- Tester en isolation et sur plusieurs versions de Python (unittest, mock, tox)
- Auditer la qualité et la sécurité du code et des dépendances d'un projet
- Exposer une API REST en Python et la protéger par JWT
- Développer un module ou un plugin Ansible en Python
Poser les garde-fous de la plateforme en politiques Rego
Opérer un cloud privé en libre-service sur Incus
- Décrire et déployer des instances en Terraform avec le provider de l'hyperviseur
- Sécuriser un serveur Incus et son administration à distance
- Administrer des nœuds Incus OS par l'API : installation par seed, mises à jour A/B, Tailscale, sauvegarde, supervision et flotte
- Monter et faire vivre un cluster Incus : jonction, quorum et rôles, workers, stockage partagé CephFS
- Isoler des tenants sur Incus : VPC OVN, load balancer, ACL, quotas, credentials scopés et déploiement 3-tiers en Terraform
Développer des outils Python maintenables
- Manipuler listes, tuples, ensembles et découpes en Python
- Concevoir des classes Python : encapsulation, héritage, abc et mixins
- Exécuter des traitements concurrents et choisir le bon modèle
- Durcir une suite de tests Python : Hypothesis, fixtures pytest, couverture et mutation
- Modéliser et typer des données en Python avec dataclasses, Enum et annotations
- Écrire du Python idiomatique : décorateurs, générateurs, context managers et itertools
- Profiler et optimiser un programme Python, jusqu'à l'extension native
Travailler avec un agent IA de code, sous contrôle
- Cadrer une tâche confiée à Claude Code et valider son résultat par plan, diff et tests
- Confiner l'exécution de Claude Code : permissions, secrets et bac à sable
- Automatiser et outiller Claude Code avec des hooks, des skills et des plugins
- Brancher un serveur MCP à Claude Code et déléguer à des subagents isolés
- Reprendre le contrôle d'une session Claude Code qui dérive et dépanner sa configuration
- Livrer un projet complet piloté par Claude Code, tranche verticale par tranche verticale
- Exécuter Claude Code sans session interactive, en CI, avec le modèle et le coût adaptés
Fournir une plateforme IA souveraine aux équipes
- Expliquer le fonctionnement, l'inférence et la quantification d'un LLM
- Écrire des prompts fiables : rôles, few-shot, Chain-of-Thought et ReAct
- Exécuter et servir un LLM open source, du poste au GPU
- Exploiter une passerelle LLM : routage, repli, cache, clés et budgets
- Tracer les appels LLM avec OpenTelemetry GenAI jusqu'à Grafana Tempo
- Sécuriser, tester, authentifier et déployer des serveurs MCP
- Faire exécuter du code par un agent dans un bac à sable durci
- Assembler une stack IA souveraine et l'exposer derrière une interface web sécurisée
- Analyser les risques d'une application LLM avec l'OWASP Top 10 LLM 2025 et choisir ses défenses en profondeur
Exploiter et gouverner le fournisseur d'identité de la plateforme, et y brancher Kubernetes et Vault
- Protéger une API par jeton OAuth 2 : audience, scopes, accès machine et choix du flow d'un client sans navigateur
- Exiger un second facteur par groupe dans Keycloak, avec enrôlement forcé et récupération, et poser une politique de mot de passe conforme à NIST SP 800-63B-4
- Gérer le cycle de vie des comptes dans Keycloak par SCIM et Workflows, traiter un départ et conduire une revue des accès
- Exploiter Keycloak en production : proxy TLS, sauvegarde restaurée, montée de version, accès de secours et realm décrit en Terraform
- Brancher le serveur d'API Kubernetes et Vault sur un fournisseur d'identité OIDC, convertir les groupes du jeton en droits limités et diagnostiquer un refus
Administrer une forge Git auto-hébergée (Forgejo)
- Mettre en service Forgejo sur PostgreSQL derrière un proxy TLS, accessible en HTTPS et en SSH, puis régler courrier, LFS et inscriptions
- Gouverner les accès à Forgejo : organisations, équipes et droits, connexion par un fournisseur OIDC avec second facteur imposé, et assistance aux comptes en ligne de commande
- Superviser Forgejo par ses journaux et ses métriques Prometheus, déclencher une alerte et diagnostiquer une panne de la base
- Sécuriser une instance Forgejo : webhooks fermés au réseau interne, force brute bannie par fail2ban, compte administrateur de secours, jetons à portée limitée et commits signés
- Sauvegarder Forgejo, copier la sauvegarde chiffrée hors de la machine, la restaurer sur une pile vierge et rédiger le runbook de reprise
- Entretenir Forgejo et monter de version : tâches planifiées, doctor et quotas, montée répétée sur une copie avec critères de validation et retour arrière par la sauvegarde
Ce que le site ne couvre pas encore
Portail développeur (catalogue de services, modèles de projet) et environnements de développement reproductibles : en préparation (brouillons platform.portal.catalog et dev.environment.provide). Les machines virtuelles jetables sont recommandées ; Nix, enseigné par la formation Linux, reste hors métier (outil de niche).
Chemins balisés (niveau 4) : déclarés, non démontrés tant que les preuves Helm, CI standardisée et observabilité pour les équipes manquent (blog-roadmap #52, #55, #58).
Remise d'un secret depuis un coffre à un workload Kubernetes (External Secrets Operator, CSI) : non enseignée ; la leçon secrets-kubernetes rejoint la formation Kubernetes (décision du 2026-10-14). Le coffre, ses accès et ses secrets à durée bornée sont au socle (sec.secrets.store, access, lifecycle) depuis le 2026-10-14, sans preuve tant que les labs secrets manquent.