Étude de cas · Commission européenne

My Workplace et OPSYS : moderniser un très grand espace de travail de la Commission avec des micro-frontends

Pour la Commission européenne, nous avons modernisé My Workplace — le portail sécurisé du personnel dans l’écosystème numérique utilisé pour gérer les programmes et projets de l’action extérieure de l’UE — d’Angular 2 vers la dernière version d’Angular, et l’avons restructuré en espace de travail à micro-frontends : des applications distinctes livrées sous forme de packages versionnés indépendamment, et des applications de différents services de la Commission intégrées dans un seul espace de travail partagé.

Angular à jourun très grand espace de travail du personnel modernisé depuis Angular 2
Micro-frontendsdes applications distinctes livrées sous forme de packages versionnés indépendamment
1 shelldes applications de différents services de la Commission intégrées dans un seul espace de travail partagé
2 voletsMy Workplace pour le personnel de la Commission, le portail Funding & Tenders pour les partenaires externes
Contexte

My Workplace et OPSYS sont des composants de l’écosystème numérique que la Commission européenne utilise pour gérer les programmes et projets de l’action extérieure. OPSYS suit le cycle du projet — des interventions et de leurs cadres logiques aux contrats, aux résultats et au suivi.

L’écosystème a deux volets. Le personnel de la Commission travaille dans l’environnement interne via le portail sécurisé My Workplace, aux côtés d’autres outils institutionnels. Les partenaires externes et les contractants accèdent à OPSYS via le portail Funding & Tenders de l’UE, le portail électronique central de la Commission pour gérer propositions et contrats avec l’UE.

My Workplace est très vaste : de nombreux domaines métier, écrans et workflows utilisés chaque jour par le personnel de la Commission. Son front-end avait été démarré sous Angular 2 et était devenu une base de code difficile à mettre à jour, à tester et à partager entre équipes.

Le défi

  • Un très grand front-end démarré sous Angular 2, en retard de nombreuses versions majeures
  • Plusieurs domaines métier et équipes dans la même application, avec des mises en production liées entre elles
  • Des applications appartenant à différents services de la Commission qui devaient former un espace de travail cohérent pour le personnel
  • Un système en production et critique pour l’activité, impossible à geler pour une réécriture « big bang »
  • Une apparence, un comportement, une sécurité et une accessibilité cohérents dans chaque application intégrée

Ce que nous avons construit

Un shell d’espace de travail partagé et des packages applicatifs versionnés indépendamment — modernisés étape par étape, sans tout réécrire d’un coup.

  1. 1

    Shell de l’espace de travail

    Une application hôte qui fournit la navigation, la mise en page, le contexte utilisateur et les services partagés, et compose les applications métier en un seul espace de travail.

  2. 2

    Packages applicatifs versionnés indépendamment

    Chaque domaine métier est construit, testé et livré comme son propre package, avec sa version et son cycle de vie, puis branché dans le shell — les équipes livrent sans s’attendre les unes les autres.

  3. 3

    Intégration des applications des services de la Commission

    Des applications développées par différents services de la Commission intégrées dans le même espace de travail grâce à des contrats convenus pour le routage, le contexte et les données : le personnel travaille en un seul endroit au lieu de plusieurs.

  4. 4

    Bibliothèque de composants réutilisables

    Des composants et patterns Angular partagés, alignés sur le framework UI institutionnel de la Commission (eUI), utilisés par chaque package pour une expérience cohérente.

  5. 5

    Migration Angular incrémentale

    D’Angular 2 à la dernière version d’Angular par étapes maîtrisées — mise à niveau de l’outillage et des dépendances, refactoring vers les patterns actuels, puis package par package — pendant que l’espace de travail restait en production.

  6. 6

    API et qualité automatisée

    Des services REST derrière chaque domaine métier, avec pipelines CI/CD, tests automatisés et quality gates pour chaque package.

Ressources mutualisées

Construire une fois, partager entre applications et services de la Commission — et ne payer qu’une fois.

01

Shell et services partagés

Navigation, contexte utilisateur et services communs construits et maintenus une seule fois pour toutes les applications intégrées.

02

Une seule bibliothèque de composants

Composants, accessibilité et correctifs d’interface réalisés une fois et repris par chaque package à sa prochaine version.

03

Des équipes qui évoluent indépendamment

Chaque package est staffé et livré à son propre rythme, sans un train de release unique pour tout l’espace de travail.

04

Un coût du changement réduit

Des packages plus petits et versionnés coûtent moins cher à mettre à jour, tester et sécuriser qu’un front-end monolithique.

Standardisation

  • Une seule stack AngularChaque package sur la même version actuelle d’Angular et le même outillage — compétences, composants et pipelines partagés.
  • Framework UI institutionnelAligné sur eUI et les standards UI institutionnels de la Commission, pour une expérience cohérente du personnel.
  • Pas de big bangModernisation livrée de manière incrémentale sur un système en production, sans gel et sans réécriture parallèle.

Technologies

Avant

Angular 2Un grand front-end unique

Front-end

Dernière version d’AngularTypeScripteUIBibliothèque de composants réutilisables

Architecture

Micro-frontendsShell de l’espace de travailPackages versionnés indépendamment

Delivery

CI/CDTests automatisésQuality gates

Résultats

  • My Workplace porté d’Angular 2 à la dernière version d’Angular sans réécriture « big bang »
  • Un espace de travail à micro-frontends où des applications distinctes sont livrées sous forme de packages versionnés indépendamment
  • Des applications de différents services de la Commission intégrées dans un seul espace de travail partagé pour le personnel
  • Shell et bibliothèque de composants maintenus une fois et réutilisés partout, ce qui réduit les efforts en double et les coûts
  • En production au sein de l’écosystème de la Commission pour la gestion de l’action extérieure de l’UE

Sources:European Commission (capacity4dev) — OPSYS online documentation · European Commission (capacity4dev) — OPSYS / Funding & Tenders Portal community · European Commission (capacity4dev) — “Let’s start with My Workplace” · European Commission — Managing an intervention (Funding & Tenders Portal, OPSYS)

← Projets

Parlons de vos enjeux.

Architecture, migration, IA ou montée en charge d’une équipe — présentez-nous votre situation. Nous vous répondons sous un jour ouvré.

Prendre contact