Aller au contenu

Architecture C4 — Vue conteneurs

Vous êtes ici : Comprendre — un niveau sous la vue d’ensemble : les unités déployables de la suite. Diagramme C4 niveau 2 : les unités déployables réelles et leurs interactions. Lecture 6 min. Audience : devs, architectes, auditeurs. Date : 2026-07-10 | Version : 2.2 — worker ETL provisionné et en production (juillet 2026) ; pointillés « état cible » devenus traits pleins

Question Réponse Détail
Combien d’unités déployables ? 8 : six apps web + le site docs + le worker ETL Les unités déployables
Où tournent-elles ? Apps web sur un App Service Plan partagé ; docs sur Static Web Apps ; worker ETL sur Container Apps Job Compute & exécution
Qui parle à qui ? SPAs → Entra ID (MSAL) ; backends → Azure SQL (Managed Identity) ; worker → SOFI (lecture seule) Interactions clés
Une identité partagée ? Non — une identité par unité (MI par app, comptes SQL dédiés) Interactions clés
Vue conteneurs C4 — les unités déployables de GS-AppsÀ gauche, un plan Azure App Service partagé et allumé 24/7 héberge six apps web : gs-hub, gs-admin, gs-ug, gs-inv, gs-mcp et api-portail (seule surface publique). Ces apps s’authentifient auprès de Microsoft Entra ID et lisent-écrivent Azure SQL GS_Apps via Managed Identity. Le site docs est hébergé à part sur Azure Static Web Apps. En bas, la chaîne batch en production : gs-admin dépose un job dans une file Storage Queue, qui déclenche le worker gs-etl-worker dans un Container Apps Job éphémère ; le worker lit SOFI en lecture seule et écrit la couche gold dans Azure SQL. gs-mcp lit aussi SOFI en lecture seule.AZURE APP SERVICE — plan partagéallumé 24/7 · loyer fixe · une MI par appgs-hubgs-admings-uggs-invgs-mcpapi-portailSSR · publicsite docsAzure Static Web AppsMicrosoft Entra IDidentité · MSAL / PKCEAzure SQLGS_Appsauth utilisateursMISOFI · ERPVNet · lecture seulelecture seulefile d’attenteStorage Queuegs-admin dépose un jobCONTAINER APPS JOB — éphémèregs-etl-workerjobs file + horairedéclenchelectureécriture goldpublicinternedonnées · batchidentité · sources externes
Les unités déployables et leurs interactions. La synchronisation ETL s’exécute dans le worker gs-etl-worker (Container Apps Job, en production depuis juillet 2026), déclenché par la file d’attente ou l’horaire.
Container Rôle Tech Hébergement URL
gs-hub Portail d’accueil employés React + Vite + MSAL.js App Service hub.groupesignalisation.ca
gs-admin Console d’administration (données, ETL, design system) React + Vite + MSAL.js App Service admin.groupesignalisation.ca
gs-ug Console UG — gestion des accès multi-compagnies React + Vite + MSAL.js App Service ug.groupesignalisation.ca
gs-mcp Serveur MCP — outils IA (santé, ETL, requêtes) Node.js MCP Streamable HTTP App Service mcp.groupesignalisation.ca
api-portail Portail QR public + admin Node.js Express SSR App Service portail.groupesignalisation.ca
docs Ce site — documentation officielle Astro Starlight Azure Static Web Apps docs.groupesignalisation.ca
gs-etl-worker Batch ETL SOFI → gold (2 jobs : file + horaire) Node.js conteneurisé Container Apps Job — (pas d’URL : batch sans interface)

Toutes les apps web partagent un App Service Plan (allumé 24/7). Le worker ETL vit hors de ce plan, dans une machine éphémère facturée à l’usage — le pourquoi complet est dans Compute & exécution.

Ressource Type Rôle
GS_Apps Azure SQL Database Données métier + couche analytique (médaillon → Architecture de données)
SOFI SQL Server (VNet MicroAge) Source ERP — lecture seule depuis GS-Apps
Storage Queue Azure Storage File de déclenchement des jobs ETL
Microsoft Entra ID Identity Provider Auth + claims (→ Stratégie auth)
1Password (coffre d’entreprise) Coffre secrets Break-glass (accès d’urgence documenté)
Source Cible Protocole But
SPAs (hub, admin, ug) Entra ID HTTPS + MSAL.js Auth utilisateur
api-portail Entra ID OAuth PKCE Auth SSR / admin portail
Backends web Azure SQL TDS + Managed Identity Données métier (identité par app, moindre privilège)
gs-admin Storage Queue SDK Azure + MI Dépose une demande de sync
gs-etl-worker SOFI TDS (compte dédié lecture seule) Extraction source
gs-etl-worker Azure SQL TDS + MI dédiée (gs-etl) Écriture couche gold
gs-mcp SOFI TDS (compte dédié lecture seule) Outils IA de consultation

Chaque unité a sa propre identité vers la base (Managed Identity par app, comptes SQL dédiés en lecture seule vers SOFI) — aucun partage d’identité entre conteneurs. Détail : Managed Identity.