Engie
Refonte du portail Credit Risk : plusieurs solutions tierces regroupées en un portail unifié offrant une vue 360° aux analystes crédit.
Domaine fonctionnel
- Risque de contrepartie
- Fédération de données
- Vue 360° portefeuille
- Pilotage du risque
Méthode & pratiques
- Scrum
- Backlog et suivi sur Azure DevOps
- Recette métier
- Tests de charge intégrés au cycle
Stack technique
- React
- TypeScript
- Vite
- Python
- FastAPI
- API REST
- Docker
- Azure AKS
- Okta
- OAuth 2.0
- OIDC
- Azure DevOps
- k6
L'univers
Un énergéticien vend de l'électricité et du gaz à des contreparties qui peuvent faire défaut. La Direction des Risques doit connaître à tout moment l'exposition du groupe sur chacune d'elles. Le problème n'était pas le calcul : la donnée vivait dans plusieurs solutions tierces qui ne se parlaient pas. Un analyste crédit commençait sa journée à recoller des extractions, ce qui repoussait ses arbitrages à l'après-midi et rendait toute décision urgente impossible à instruire proprement.
Le challenge
Fédérer des sources hétérogènes en un portail unifié, sans interrompre le portail d'alertes crédit déjà en service.
Les contraintes
- Sources
- Plusieurs solutions tierces à fédérer
- Sécurité
- Sécurisation des flux via Okta (OAuth 2.0 / OpenID Connect)
- Infra
- Migration de pods AKS : Docker, load balancer, certificats SSL, tests k6
- Existant
- Portail d'alertes crédit Python / React maintenu en parallèle
- Chaîne
- Azure DevOps
Les décisions d'architecture
-
Reconstruire le front from scratch plutôt que l'habiller
Motif La vue 360° n'était pas un écran de plus : c'était un autre modèle de lecture du portefeuille. La greffer sur l'ancien front aurait figé l'ancienne logique.
Conséquence acceptée Un chantier front complet, mené pendant que l'ancien portail restait en service.
-
Migrer les pods sur AKS pendant le projet, pas après
Motif Repousser la mise à l'échelle après la mise en production revenait à la faire dans l'urgence, sous incident.
Conséquence acceptée Conteneurisation, load balancer, certificats et tests de charge à absorber dans le planning.
Mon périmètre réel
Ce que j'ai décidé
- Participation à la conception de l'architecture cible
- Découpage front / back et contrat d'API
- Cible de déploiement AKS
Ce que j'ai codé
- Front React / TypeScript / Vite reconstruit from scratch
- Vue 360° des portefeuilles client / crédit
- Sécurisation des flux via Okta
- Évolutions et correctifs du portail d'alertes crédit
Livré par l'équipe
- Connecteurs vers les solutions tierces
- Recette métier
Résultat
- Vue 360° disponible en début de journée, sans recollage manuel
- Plateforme migrée sur AKS, comportement sous charge mesuré avec k6
- Authentification unifiée sur l'annuaire du groupe
L'univers étendu
Missions similaires
Ce qu'on m'a demandé sur cette mission
Tu écris encore du code au quotidien ?
Oui, et c'est un choix. Les décisions prises loin du code sous-estiment le coût des cas particuliers : l'authentification entre deux services, la pagination, les erreurs partielles. Chez Engie j'ai écrit le front React/TypeScript from scratch et la sécurisation Okta ; chez Alstom, le pipeline RAG et le backend FastAPI. Un architecte qui ne code plus décide moins bien.
SourcesArchitecte & codeEngie
Comment tu fédères des sources hétérogènes en une vue unique ?
Chez Engie, en refusant d'attendre l'unification des référentiels amont : c'était un projet de plusieurs années pour un portail attendu en quelques mois. À la place, une fédération avec des règles de rapprochement explicites, et les écarts affichés plutôt que masqués. Un analyste crédit préfère voir « ces deux sources divergent » qu'un chiffre unique dont il ne sait pas d'où il vient.
Comment s'est passée la migration des pods sur AKS ?
Menée pendant le projet, pas après — une migration sous incident coûte trois fois plus cher. Ce qui a cassé : les sondes de disponibilité calquées sur les sondes de vivacité, qui faisaient redémarrer des pods sains au premier ralentissement de la base, et un renouvellement de certificat absent de la procédure de bascule. Les tests k6 ont servi de référence avant / après.
SourcesDocker → AKSEngie
Un contexte proche du vôtre ?
Poser une question