BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

Docker Panel

Une plateforme de conteneurs pour les ingénieurs de GE Vernova

Yanis GANGNANT ZAMOFING — BUT R&T 3 option IoM
IUT Nord Franche-Comté — Université Marie et Louis Pasteur

Alternance 2024–2026 · GE Vernova Gas Power · Belfort TE05

Tuteur entreprise : Alexandre Picard
Tuteur académique : Boujemaa Aouabiza

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

Introduction (in English)

  • Yanis Gangnant Zamofing — BUT R&T 3 IoM
  • GE Vernova — Gas Power, Belfort (2024 → 2026)
  • Team : Engineering Digital Transformation
  • Main project : Docker Panel

Internal platform → engineers access complex web tools
easily · securely · transparently

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

Plan de la présentation

  1. GE Vernova & l'équipe
  2. Mes missions sur l'alternance — vue d'ensemble
  3. Problématique : pourquoi Docker Panel ?
  4. Avant Docker Panel : JupyterHub + Voilà
  5. L'architecture Docker Panel
  6. Le pipeline CI/CD
  7. La chronologie : 6 phases sur 18 mois
  8. L'expérience utilisateur final
  9. Difficultés rencontrées & solutions
  10. Bilan & perspectives
  11. Questions
GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

1 — GE Vernova : un acteur mondial de l'énergie

  • Spin-off de General Electric en avril 2024
  • 3 segments : Power · Wind · Electrification
  • ~75 000 employés dans >100 pays
  • Chiffre d'affaires 2024 : ~35 Md$
  • Mission : electrify and decarbonize the world

Gas Power = la division historique des turbines à gaz, qui équipe ~30 % des centrales mondiales.

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

1 — Le site de Belfort (TE05 / Techn'hom)

  • Berceau des grandes turbines à gaz 9HA
  • ~2 200 collaborateurs
  • R&D · ingénierie · assemblage final
  • Site de l'équipe Engineering Digital Transformation
GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

1 — Mon équipe : Engineering Digital Transformation

Rôle Personne
Tuteur entreprise / Manager Alexandre Picard
Collègue développeur Bastien Prieur-Garrouste
Apprenti BUT R&T Yanis Gangnant Zamofing (moi)
  • Mission de l'équipe : développer et maintenir une suite d'outils web internes pour les ingénieurs (simulation, calcul, analyse de données, dashboards)
  • Méthodologie : agile, code review systématique, GitHub Enterprise interne
  • Mon rôle a évolué : observateur (S5) → contributeur (S6–S7) → responsable de composants en production (S8–S9)
GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

2 — Mes missions sur l'alternance (rapide)

Projet Période Périmètre
🐳 Docker Panel mai 2025 → mai 2026 Mission principale — sujet de l'oral
🧪 Docker App Test parallèle DP Template + banc de test
⚗️ API HYSYS (C# → Python → FastAPI) déc. 2024 → janv. 2025 puis avril 2026 Wrapper COM Aspen HYSYS
📚 Documentation Sphinx été 2025 Documentation officielle de l'équipe
🧰 Toolbox Database hiver 2025 Base PostgreSQL des outils internes
🧪 Prototypage qgrid / NiceGUI ponctuel Veille technologique
GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

3 — Problématique

Comment permettre à des équipes d'ingénieurs non-IT d'accéder à des outils logiciels complexes, dans un environnement industriel international, soumis à de fortes contraintes de sécurité, de performance et de disponibilité ?

Trois sous-questions concrètes :

  1. Comment héberger une quinzaine d'applications web hétérogènes sans qu'elles s'interfèrent ?
  2. Comment isoler les sessions utilisateurs (mémoire, état, droits) ?
  3. Comment sécuriser l'accès : SSO interne, proxy Zscaler, certificats GE ?
GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

4 — Avant Docker Panel : JupyterHub + Voilà

État à mon arrivée (sept. 2024) :

  • Toutes les apps tournaient dans un JupyterHub mutualisé
  • Surcouche Voilà pour transformer les notebooks en pages web
  • ❌ Pas d'isolation Docker
  • ❌ Pas de port dynamique : un seul port pour toutes les sessions
  • ❌ Pas de libération mémoire Voilà → redémarrages réguliers du serveur
  • ❌ Mises à jour applicatives complexes : un bug d'une app pouvait planter toute la plateforme

Constat : la solution ne tenait pas à l'échelle attendue (15+ apps, plusieurs centaines d'utilisateurs).

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

5 — L'architecture Docker Panel (vue d'ensemble)

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

5 — L'architecture Docker Panel (détail des couches)

Couche Rôle
Zscaler ZTNA Filtrage Zero Trust en frontal corporate
Nginx Reverse proxy unique : URL publique → port dynamique
Vouch Proxy SSO d'entreprise via auth_request
Docker Manager (FastAPI) Cycle de vie des conteneurs, cookies signés HMAC, health checks, dashboard admin
Conteneurs Docker Un par session utilisateur, port aléatoire, cap-drop ALL + AppArmor
PostgreSQL Métadonnées d'apps, logs, statistiques

➡ Transparence pour l'utilisateur : il clique un lien dans l'AppStore, attend ~8 s, et utilise son outil sans rien voir de tout ça.

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

6 — Le pipeline CI/CD : build_app.py

2 200+ lignes de Python · 6 étapes · self-update du script · injection automatique du certificat racine GE et du proxy Zscaler dans l'image.

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

7 — Chronologie : 6 phases en 18 mois

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

7 — Détail des 6 phases

Phase Quoi Période
0 Prototype Voilà → modèle Panel fév – mai 2025
1 Passage à Docker + automatisation build mai – juin 2025
2 AppStore, SSO Vouch, documentation Sphinx juin – juillet 2025
3 Robustesse, health checks, nettoyage auto août – octobre 2025
4 Intégration des apps Voilà legacy nov – déc 2025
5 Dashboard admin temps réel, base centrale, AWS jan – fév 2026

➡ 330+ commits Git · code passé de monolithique à 20 modules thématiques.

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

8 — L'expérience utilisateur : l'AppStore

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

8 — Page de chargement

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

8 — Dashboard administrateur

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

8 — Terminal intégré

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

9 — Difficultés rencontrées & solutions

Difficulté Solution
Comprendre l'archi initiale (JupyterHub + Voilà non documenté) Lecture exhaustive du code · entretiens avec Bastien · diagrammes maison
Debug WebSocket à travers Nginx + Vouch Logs Nginx en mode debug · ajout de proxy_set_header Upgrade et Connection
Fuites mémoire des apps Voilà legacy Wrapper Panel autour des notebooks · kill automatique après inactivité
Certificat racine GE + proxy Zscaler dans Docker Injection automatique dans le Dockerfile par build_app.py
Premier déploiement en production Mise en place d'un staging server identique à la prod
GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

10 — Bilan : compétences mobilisées (BUT R&T IoM)

Quatre familles de compétences techniques :

  • 🖥️ Administrer — Linux, systemd, Docker, Nginx, PostgreSQL, EC2
  • 🌐 Connecterreverse proxy, WebSocket, SSO via auth_request, COM Aspen HYSYS
  • 💻 Programmer — Python (FastAPI, Pydantic, SQLAlchemy, Panel), uv · ruff · mypy · pytest, GitHub Actions
  • 🔐 Sécuriser — Vouch SSO, HMAC-SHA256, JWT/CSRF, TLS x509, durcissement Docker (cap-drop, AppArmor)
GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

10 — Bilan : soft skills

  • Autonomie : objectif défini → défricher seul → trancher en argumentant
  • Documentation comme partie intégrante du livrable (Sphinx)
  • Anglais technique (écrit) — collaboration régulière avec les équipes US
  • Revue de code — argumenter ses choix, accepter la critique technique
  • Assumer ses erreurs — prévenir vite, comprendre la cause, documenter pour ne pas répéter
GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

10 — Perspectives

  • Court terme : finalisation de la migration des applications Voilà legacy vers Docker
  • Moyen terme : déploiement multi-régions sur AWS (US + Europe)
  • Long terme : ouverture de Docker Panel à d'autres divisions de GE Vernova (Wind, Electrification)

Pour moi : je continue dans la même équipe à GE Vernova, en apprentissage UTBM (cycle ingénieur), pour poursuivre Docker Panel et prendre en charge de nouveaux outils.

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

Merci pour votre attention

Je suis à votre disposition pour vos questions

I will be happy to answer your questions in English as well.

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026
BUT R&T 3 — Soutenance d'alternance — Yanis GANGNANT ZAMOFING

Yanis GANGNANT ZAMOFING — BUT R&T 3 option IoM
GE Vernova · Gas Power · Belfort TE05

GE Vernova — Gas Power · Belfort TE05 · 2024 → 2026

Speaker notes (à mémoriser) : Good morning, and thank you for being here today. My name is Yanis Gangnant Zamofing, I am a final-year apprentice in the Networks and Telecommunications Bachelor program, with a specialization in the Internet of Things and Mobility, at the IUT Nord Franche-Comté. For the past two years, I have been working at GE Vernova — Gas Power, in Belfort, within the Engineering Digital Transformation team. My main project there has been Docker Panel, an internal platform that allows engineers — most of whom are not IT specialists — to access complex web applications easily, securely and without worrying about the underlying infrastructure. In the next twenty minutes, I will focus exclusively on this project.

Note orateur : je me concentre volontairement sur Docker Panel pour aller au fond du sujet. Les autres projets (API HYSYS, documentation Sphinx, base PostgreSQL centrale, Docker App Test) sont détaillés dans le rapport écrit — je serai ravi d'y revenir pendant les questions.