alliance-boreale/docs/architecture/10 - Les 8 couches du modèle Boréal.md

587 lines
22 KiB
Markdown
Raw Normal View History

2026-01-29 09:46:17 -05:00
# 🌲 Constitution des couches Modèle boréal à 8 couches (C1C8)
**Version :** 1.1
**Date :** 25 janvier 2026
**Statut :** Référence normative (SSOT)
**Portée :** Définir, justifier et cristalliser la **constitution** de chaque couche du modèle à 8 couches de lAlliance Boréale, ainsi que les règles dinterface et de gouvernance associées.
---
## 0. Pourquoi ce document existe
Le modèle à 8 couches sert de **contrat darchitecture** entre :
- la **Fédération** (C1C4),
- le **Pivot** (C5),
- les **Tenants** (C6C8).
Sans une constitution explicite par couche, le modèle dérive : les responsabilités se mélangent, les flux “sautent” des couches, la portabilité sérode, et la conformité devient invérifiable.
Ce document fixe les limites, responsabilités et artefacts attendus de chaque couche.
---
## 1. Définitions et conventions normatives
### 1.1 Terminologie
- **Couche (Cx)** : “organe” fonctionnel du système. Chaque couche a un périmètre, des responsabilités, des interfaces et des preuves attendues.
- **Fédération** : ensemble des capacités mutualisées et opérées pour héberger lécosystème (C1C4).
- **Tenant** : entité logique ou organisationnelle qui déploie des services/produits/connaissances dans la canopée (C6C8).
- **Pivot** : membrane opérationnelle (C5) reliant fédération et tenants, régulant les flux.
- **ADN numérique** : ensemble minimal dartefacts permettant la **reconstruction** (descripteur, IaC, artefacts signés, SBOM).
### 1.2 Langage normatif
Les termes **DOIT / NE DOIT PAS / DEVRAIT / PEUT** sont utilisés au sens normatif.
### 1.3 Principes transversaux non négociables
1. **Adjacency-only** : une couche communique uniquement avec sa voisine immédiate (Cx ↔ Cx±1). Toute exception est une anomalie à traiter (voir §2).
2. **Séparation fédéré / tenant** : la Fédération nopère pas les charges applicatives tenant ; les tenants ne modifient pas les fondations fédérées.
3. **Portabilité intégrale** : tout tenant (C6C8) **DOIT** pouvoir migrer entre membres fédérés sans perte de fonctionnalité, et sans réécriture de code structurelle.
4. **Régénération** : toute composante essentielle **DOIT** être reconstruisible à partir dartefacts signés et versionnés (ADN numérique).
5. **Traçabilité** : tout flux structurant (artefacts, identités, décisions de conformité) **DOIT** produire des preuves vérifiables.
---
## 2. Schéma dinterface (contrat des membranes)
```
C1 ⇄ C2 ⇄ C3 ⇄ C4 ⇄ C5 ⇄ C6 ⇄ C7 ⇄ C8
```
### 2.1 Règles dinterface
- **Cx ↔ Cx±1** : seul chemin normal.
- **Routage obligatoire** : tout flux transversal (ex. tenant → forge) est médié par la couche intermédiaire (ex. C6 → C5 → C4).
- **C5 comme membrane** : tout échange Fédération ↔ Tenant passe par C5.
- **C3 comme système nerveux** : tout mécanisme de gouvernance, audit, conformité et supervision globale passe par C3 (et salimente via les couches adjacentes).
### 2.2 “Une seule instance” vs haute disponibilité
- Les couches **C1C5** sont des **services fédératifs uniques** au niveau du modèle (un SSOT et un contrat).
- Elles **PEUVENT** être déployées en **réplicas** (HA), sans cesser dêtre “une seule instance” au sens de gouvernance et dinterface.
- Les couches **C6C8** sont **multiples**, car elles existent **par tenant**.
---
## 3. Modèle de fiche (à utiliser pour toute couche)
Chaque couche est documentée selon le format suivant (appliqué ci-dessous) :
1. **Rôle vital (justification)** : pourquoi la couche existe, et ce que son absence casse.
2. **Constitution (périmètre)** : inclus / exclus.
3. **Responsabilités** : fonctions attendues.
4. **Invariants** : règles non négociables propres à la couche.
5. **Interfaces adjacentes** : entrées/sorties et contrats.
6. **Artefacts & preuves** : ce qui DOIT être versionné, signé, auditable.
7. **Exigences opérationnelles** : disponibilité, résilience, sauvegarde, SLO/SLA (selon maturité).
8. **Antipatterns** : erreurs fréquentes à interdire.
9. **Exemples de mise en œuvre** : technologies possibles (non prescriptif).
---
# 4. Constitution détaillée des couches
## C1 — Racines physiques (Fédération)
### 1) Rôle vital (justification)
C1 existe pour **ancrer** lécosystème dans le réel : énergie, climatisation, sécurité physique, serveurs, stockage brut.
Sans C1 : aucune résilience réelle, aucun contrôle de souveraineté matérielle, aucune capacité de reconstruction.
### 2) Constitution (périmètre)
**Inclut :**
- Sites physiques (salles, cages, racks), contrôle daccès, surveillance.
- Énergie (alimentation, onduleurs, génératrices), câblage, environnement.
- Matériel : serveurs, switches physiques, liens, stockage primaire, pièces.
- Inventaire, étiquetage, cycle de vie (acquisition → décommission).
**Exclut :**
- Routage logique et services réseau (C2).
- Identité, audit, gouvernance (C3).
- Forge, registres, pipelines (C4).
- Toute exposition applicative tenant (C6C8).
### 3) Responsabilités
- Garantir lintégrité physique et la continuité énergétique.
- Assurer la capacité dhébergement (compute, storage brut) et la redondance.
- Documenter linventaire matériel et létat de santé.
### 4) Invariants
- Les tenants **NE DOIVENT PAS** dépendre de détails matériels non portables.
- Toute ressource C1 doit être **remplaçable** par équivalent standard.
### 5) Interfaces adjacentes (C1 ↔ C2)
- Sortants : connectivité physique, liens, VLAN/L2, temps (NTP matériel si applicable).
- Entrants : exigences de capacité, topologie réseau, contraintes de sécurité.
### 6) Artefacts & preuves
- Inventaire matériel (CMDB), schémas de câblage, plans de redondance.
- Procédures dintervention (runbooks), preuves de tests (UPS/génératrice).
- Journal de changement (déploiements, remplacements).
### 7) Exigences opérationnelles
- Objectif : tolérance de panne (au minimum N+1 sur énergie critique selon maturité).
- Sauvegarde : n/a (C1 fournit le support, pas les sauvegardes logiques).
### 8) Antipatterns
- “Serveur spécial” indispensable à un tenant.
- Absence de CMDB / inventaire.
- Mélange des accès physiques tenant/fédéré sans contrôle.
### 9) Exemples de mise en œuvre
- Datacenter membre, colocation souveraine, microdatacenter maillé.
---
## C2 — Système vasculaire (Fédération)
### 1) Rôle vital (justification)
C2 existe pour assurer la **circulation** : adressage, DNS racinaire autoritatif, PKI de transport, liens interDC, segmentation.
Sans C2 : pas dinterconnexion fiable, pas de souveraineté de nommage, pas de chiffrement cohérent.
### 2) Constitution (périmètre)
**Inclut :**
- Réseau logique : routage, segmentation, interconnexion, politiques réseau.
- DNS **autoritatif** fédéré (racine de nommage).
- PKI de transport (certificats pour interconnexions et services fédérés).
- Protection réseau (DDoS, filtrage, ACL, egress control) au niveau fédéré.
**Exclut :**
- Gestion didentité et audit (C3).
- Registres dartefacts/pipelines (C4).
- Proxy/API gateway tenant-facing (C5).
### 3) Responsabilités
- Assurer la connectivité estouest fédérée (entre sites) et nordsud vers C3/C4.
- Maintenir un nommage fédéré cohérent (DNS autoritatif).
- Fournir des primitives réseau standardisées aux couches supérieures.
### 4) Invariants
- Les tenants ne parlent **jamais** directement à C2 : tout accès traverse C5.
- Le DNS fédéré est la source de vérité des zones racines fédérées.
### 5) Interfaces adjacentes
- **C1 ↔ C2** : liens physiques, disponibilité, contraintes de site.
- **C2 ↔ C3** : exposition des métriques réseau, événements de sécurité, services de résolution/PKI pour la gouvernance.
### 6) Artefacts & preuves
- Topologies, politiques réseau, zones DNS (IaC recommandé).
- Journaux de changements réseau, tests de résilience intersites.
- Inventaire des certificats de transport et rotations.
### 7) Exigences opérationnelles
- Redondance des composants réseau critiques.
- RTO/RPO réseau définis selon criticité des services fédérés.
### 8) Antipatterns
- “DNS sauvage” géré par un tenant.
- Règles réseau adhoc non versionnées.
- Contournement de segmentation pour “aller plus vite”.
### 9) Exemples de mise en œuvre
- BGP/EVPN, firewalls, PowerDNS autoritatif, PKI interne.
---
## C3 — Système nerveux central (Fédération)
### 1) Rôle vital (justification)
C3 existe pour gouverner, superviser et auditer : cest le **centre de décision** et de rétroaction.
Sans C3 : absence de cohérence de sécurité, impossibilité de conformité, aucun mécanisme dapprentissage global.
### 2) Constitution (périmètre)
**Inclut :**
- Gouvernance : politiques, règles, contrôles, arbitrages.
- Identité fédérée (IAM/SSO), annuaire, RBAC/ABAC fédératifs.
- Journalisation/audit central (preuves, événements structurants).
- Supervision/observabilité fédérée (métriques, alertes, incidents).
- Conformité : critères, attestations, trajectoires de maturité.
**Exclut :**
- Build/release et stockage des artefacts (C4) — C3 dicte les règles, C4 exécute le métabolisme.
- Exposition aux tenants (C5 gère la surface).
### 3) Responsabilités
- Définir et appliquer les politiques communes (sécurité, portabilité, traçabilité).
- Opérer lidentité fédérée et les permissions de contribution.
- Centraliser la détection danomalies systémiques et déclencher la remédiation.
### 4) Invariants
- Toute décision de conformité doit être traçable (qui/quoi/quand/pourquoi).
- Les identités privilégiées doivent être gouvernées (MFA, justintime si maturité).
### 5) Interfaces adjacentes
- **C2 ↔ C3** : flux réseau et signaux de sécurité ; services de nommage/PKI.
- **C3 ↔ C4** : règles de signature, politiques SBOM, exigences de pipelines, attestations.
### 6) Artefacts & preuves
- Politiques publiées (SSOT), journaux daudit, registres de décisions.
- Catégorisation dincidents, postmortems, indicateurs de résilience.
- Référentiels dexigences (ex. Label / conformité).
### 7) Exigences opérationnelles
- Haute disponibilité logique (au minimum redondance des composants IAM/audit).
- Rétention des logs conforme à la politique boréale.
### 8) Antipatterns
- Gouvernance “orale” non documentée.
- Supervision uniquement locale, sans vue fédérée.
- Identités partagées (“comptes génériques”).
### 9) Exemples de mise en œuvre
- Annuaire + SSO (OpenLDAP/Keycloak), SIEM léger, OTel/Prometheus, portails de conformité.
---
## C4 — Métabolisme commun / Forge mutualisée (Fédération)
### 1) Rôle vital (justification)
C4 existe pour produire, signer, stocker et distribuer les artefacts : cest le **métabolisme** de lécosystème.
Sans C4 : pas de chaîne dapprovisionnement vérifiable, pas dADN numérique partagé, pas de reconstruction fiable.
### 2) Constitution (périmètre)
**Inclut :**
- Forge (code, tickets, docs), registres (containers, paquets), dépôts dartefacts.
- Pipelines CI/CD fédérés, politiques de build, attestations, SBOM.
- Signature dartefacts (clé/PKI applicative), politique de provenance.
- Catalogue : modèles, modules, composants de référence, “patterns” portables.
- Stockage de secrets fédérés **si** gouverné (secrets de base, jamais des secrets métier tenant).
**Exclut :**
- Runtime dexposition tenant (C5).
- Exécution applicative tenant (C6C8).
### 3) Responsabilités
- Offrir une chaîne de production reproductible (build → scan → signature → publication).
- Héberger la source de vérité des composants mutualisés.
- Garantir la disponibilité et lintégrité des artefacts.
### 4) Invariants
- Un artefact consommé par C5/C6 **DOIT** être traçable (version, hash, provenance).
- Les pipelines critiques **DOIVENT** être versionnés et audités.
### 5) Interfaces adjacentes
- **C3 ↔ C4** : politiques (signature, conformité, exigences SBOM), droits.
- **C4 ↔ C5** : distribution dartefacts, configs, descripteurs ; publication de surfaces dAPI du pivot.
### 6) Artefacts & preuves
- Descripteurs YAML (ADN), IaC, manifests, SBOM, attestations.
- Clés/empreintes, registres de signatures, journaux de releases.
- Catalogue des modules “boréalisés”.
### 7) Exigences opérationnelles
- Sauvegardes et réplication (C4 est critique : perte = perte dADN).
- Contrôles dintégrité (immuabilité des releases, rétention).
### 8) Antipatterns
- Artefacts “binaries” sans sources ou sans SBOM.
- Déploiements manuels non reproductibles.
- Secrets tenant stockés en C4 sans gardefous.
### 9) Exemples de mise en œuvre
- Forgejo/Git, registries OCI, Cosign/Sigstorelike, scanners (Trivy/Grype), IaC (Terraform/Ansible).
---
## C5 — Membrane déchange / Pivot (Fédération service commun, multitenant)
### 1) Rôle vital (justification)
C5 existe pour **réguler** léchange entre racines et canopée : exposition contrôlée, médiation, filtrage, compatibilité de portabilité.
Sans C5 : les tenants finissent par “toucher” C1C4 directement (dérive), et la séparation fédéré/tenant seffondre.
### 2) Constitution (périmètre)
**Inclut :**
- Surface dentrée/sortie : reverse proxy, API gateway, routage tenantaware.
- Médiation didentité : intégration SSO, tokens, délégation, sessions.
- Politique de flux : rate limiting, quotas, contrats dAPI, WAF logique.
- Services de “récursion” et daccès contrôlé (ex. DNS récursif tenantside si prévu).
- Portail dadministration pivot (surfaces déchange), observabilité exposable.
**Exclut :**
- Stockage dartefacts (C4).
- Runtime applicatif métier tenant (C6C8).
- Décision de gouvernance globale (C3).
### 3) Responsabilités
- Fournir un **service unique** de membrane fédérative, multitenant, gouverné.
- Appliquer les politiques de C3 et consommer les artefacts/politiques de C4.
- Garantir que tout accès tenant aux ressources fédérées passe par des contrôles explicites.
### 4) Invariants
- C5 est **un service fédéral** : les tenants ne possèdent pas linstance, seulement leur **tranche logique** (config/politiques).
- C5 **NE DOIT PAS** contenir de logique métier tenant durable.
- Toute exception de flux non adjacent est **interdite** (elle doit être remappée via C5 ou C3).
### 5) Interfaces adjacentes
- **C4 ↔ C5** : artefacts du pivot, politiques, descripteurs, versions.
- **C5 ↔ C6** : routage vers services tenant, injection didentité, exposition dAPIs, collecte de métriques.
### 6) Artefacts & preuves
- Configuration “slice” par tenant (YAML/manifest), versionnée et auditable.
- Journaux daccès (tenantaware), politiques appliquées, preuves de déploiement.
- Contrats dAPI, règles de quotas, attestations WAF.
### 7) Exigences opérationnelles
- HA (réplicas) fortement recommandé : C5 est un point de passage critique.
- Journalisation et métriques par tenant (au minimum agrégées, idéalement exportables).
### 8) Antipatterns
- Tenants qui contournent C5 pour parler à C4/C3/C2.
- Ajout de logique applicative métier tenant dans la membrane.
- Config non versionnée (hotfixes invisibles).
### 9) Exemples de mise en œuvre
- Nginx/Traefik/Envoy + OIDC, API gateway, portail admin, DNS récursif contrôlé.
---
## C6 — Tissu fonctionnel (Tenants)
### 1) Rôle vital (justification)
C6 existe pour héberger les **services applicatifs génériques** dun tenant : backends, workflows, APIs internes.
Sans C6 : les produits (C7) deviennent monolithiques, non portables, et la connaissance (C8) se détache du runtime.
### 2) Constitution (périmètre)
**Inclut :**
- Services backend, microservices, jobs, orchestrations, bases de données tenant.
- APIs internes et contrats de service.
- Observabilité applicative (métriques, logs, traces) côté tenant.
**Exclut :**
- Exposition publique directe : passe par C5.
- UX/fronts (C7) et analytique/IA (C8).
### 3) Responsabilités
- Fournir les fonctions métier réutilisables (domain services).
- Respecter les contraintes de portabilité (stateless si possible, data migration plan).
- Exposer des healthchecks, métriques et contrats dAPI.
### 4) Invariants
- Aucun secret fédéré nest copié : usage via mécanismes contrôlés.
- Toute dépendance externe doit être déclarée (SBOM/manifest du tenant si requis).
### 5) Interfaces adjacentes
- **C5 ↔ C6** : réception didentité/délégation, trafic entrant, politiques.
- **C6 ↔ C7** : APIs produits, BFF, services dassemblage.
### 6) Artefacts & preuves
- Descripteur tenant (YAML), manifests de déploiement, IaC.
- Contrats dAPI, tests, versions dimages, SBOM (au minimum pour releases).
- Plan de migration des données (portabilité).
### 7) Exigences opérationnelles
- Sauvegardes et restaurations testées pour données tenant.
- SLO propres au produit, mais observables et exportables.
### 8) Antipatterns
- Endpoint public direct sans C5.
- État local non sauvegardé (données “sur disque” sans plan).
- Configuration non reproductible (snowflake).
### 9) Exemples de mise en œuvre
- Kubernetes/Nomad, bases PostgreSQL/MariaDB, queues, workers, OTel côté tenant.
---
## C7 — Organes sensoriels & moteurs (Tenants)
### 1) Rôle vital (justification)
C7 existe pour matérialiser lexpérience : interfaces, produits, interactions humaines.
Sans C7 : C6 reste une “boîte noire” inutilisable, et C8 na pas de boucle de rétroaction utilisateur.
### 2) Constitution (périmètre)
**Inclut :**
- Frontends web/mobile, clients, portails, UI kits.
- BFF (backend-for-frontend) si pertinent (sinon en C6, mais boundary clair).
- Gestion de sessions/UX (sous contraintes didentité via C5/C3).
**Exclut :**
- Règles daccès fédérées (C3) et médiation didentité (C5).
- Analytique/IA et mémoire cognitive (C8).
### 3) Responsabilités
- Offrir une UX cohérente, sécurisée, accessible.
- Appliquer les contraintes de sécurité (CSP, protections client) en cohérence avec C5.
- Produire des signaux dusage exploitables (télémétrie, événements) vers C8.
### 4) Invariants
- Les identités et sessions doivent respecter le cadre fédéré (pas dIAM “shadow”).
- Les données sensibles doivent être minimisées côté client.
### 5) Interfaces adjacentes
- **C6 ↔ C7** : consommation des APIs, orchestration des parcours.
- **C7 ↔ C8** : émission dévénements, métriques dusage, feedback.
### 6) Artefacts & preuves
- Releases UI versionnées, hashées, reproductibles.
- Matrice de compatibilité (navigateurs), preuves daccessibilité (selon exigences).
- Schémas dévénements dusage.
### 7) Exigences opérationnelles
- CDN/cache si nécessaire (via C5 ou services tenant), objectifs de performance.
### 8) Antipatterns
- Secrets dans le client.
- APIs “direct to C4/C3”.
- UX qui impose des dépendances non portables (services externes non maîtrisés).
### 9) Exemples de mise en œuvre
- SPA/SSR, apps mobiles, design system, analytics events.
---
## C8 — Conscience cognitive (Tenants)
### 1) Rôle vital (justification)
C8 existe pour transformer lusage et les données en **connaissance** : analytique, recherche, IA, décision.
Sans C8 : aucun apprentissage, aucune optimisation, aucune “mémoire” structurée.
### 2) Constitution (périmètre)
**Inclut :**
- Pipelines data, entrepôts/lacs tenant, modèles ML/IA, recherche sémantique.
- Gouvernance des données tenant (catalogue, qualité, lineage) au niveau tenant.
- Tableaux de bord décisionnels, recommandations.
**Exclut :**
- Gouvernance fédérée globale (C3) sauf exigences minimales de conformité.
- Runtime de produit (C6/C7) — C8 consomme des événements/données.
### 3) Responsabilités
- Mettre en place la boucle dapprentissage (collecte → traitement → décision → action).
- Assurer la qualité, la confidentialité et la minimisation des données.
- Fournir des signaux remontants utiles (insights) vers C6/C7 et, sous forme agrégée, vers C3 si requis.
### 4) Invariants
- Les données tenant restent sous contrôle tenant (politiques, rétention, accès).
- Toute dérivation de données doit être justifiable (finalité, minimisation).
### 5) Interfaces adjacentes
- **C7 ↔ C8** : réception des signaux dusage et feedback.
- **C8 ↔ (retour vers C7/C6)** : recommandations, scores, décisions (toujours via contrats adjacents).
### 6) Artefacts & preuves
- Jeux de données versionnés si applicable, schémas, lineage.
- Modèles versionnés, évaluations, cartes de modèles (selon maturité).
- Politiques de rétention et accès.
### 7) Exigences opérationnelles
- Sauvegardes / réplication des données analytiques selon criticité.
- Contrôles daccès robustes (données sensibles).
### 8) Antipatterns
- “Aspirer toutes les données” sans finalité.
- Modèles non versionnés, non testés, non auditables.
- Mélange de données tenants sans cloisonnement.
### 9) Exemples de mise en œuvre
- ELT/ETL, lakehouse, BI, vector store, pipelines ML.
---
# 5. Annexes (recommandées)
## A) Tableau de responsabilité (ownership)
- **C1C4 : Fédération** (opération + gouvernance).
- **C5 : Fédération (service commun) + slices tenant** (config/politiques par tenant).
- **C6C8 : Tenants** (opération + données + produits).
## B) Checklist “preuve minimale” par couche (MVP conformité)
- C1 : inventaire + runbooks + tests énergie.
- C2 : topologie + DNS autoritatif + journal de changements.
- C3 : IAM + audit + politiques publiées.
- C4 : forge + registry + signature + sauvegarde + SBOM minimal.
- C5 : routage tenant-aware + logs + quotas + config versionnée.
- C6 : manifests + sauvegardes données + healthchecks + API contracts.
- C7 : releases reproductibles + schéma événements usage.
- C8 : politiques données + versioning modèles + lineage minimal.