Architecture Technique — [PROJET]¶
Livrable de l'Architecte · TOGAF Phases C-D. Organisé par les sept couches ; à vérifier intégralement.
Vue d'ensemble¶
[Diagramme ASCII : anneaux concentriques, dépendances vers l'intérieur.]
Couche 1 — Domain (SOLID : SRP, DIP — racine : Ubuntu)¶
[Entités, value objects, invariants codés dans les constructeurs. Aucune dépendance vers l'extérieur.]
Couche 2 — Application (ISP, OCP, DRY)¶
[Ports (interfaces), use cases, DTOs. Orchestration sans logique métier.]
Couche 3 — Infrastructure backend (LSP, DIP) · persistance : stateful uniquement¶
[Adaptateurs, handlers, middleware dans les adapters API (FastAPI). Persistance : SQLAlchemy ORM ou CQRS SQL pur sur PostgreSQL → choix tracé en ADR.]
Couche 4 — Frontend (hexagonale light) · full-stack uniquement¶
[Pages Astro statiques · îlots Svelte 5 (runes) · APIs TS. Composants par bounded context.]
Couche 5 — IaC¶
- Conteneurs / VM · salt-ssh idempotent (config + durcissement) · GitOps (branche GitFlow = source de vérité) · build distroless en prod · rollback si tests échouent
- Progression YAGNI : activer chaque brique quand le besoin réel l'exige
- Mapping ISO 27001 → IaC : | Contrôle ISO 27001 | Mise en œuvre IaC | |---|---| | A.8 (gestion des actifs) | [inventaire déclaratif] | | A.9 (contrôle d'accès) | [RBAC, secrets] | | A.12 (sécurité d'exploitation) | [durcissement salt, logs] | | … | … |
Couche 6 — CI/CD¶
[Jobs par couche · hooks Git locaux (DRY avec la CI) · au plus tard en pre-push : CI complète.]
Couche 7 — Monitoring & Sécurité¶
[Observabilité (Prometheus/Loki) · AlertManager comme trigger du platform engineer · détection.]
Contrat API (OpenAPI) · API-first : écrit avant le code, versionné¶
[Le contrat est la source de vérité ; rupture = point irréversible, validation humaine.]
Glossaire DDD → mapping code¶
Stratégie de tests¶
[Pyramide TDD/BDD · couverture cible par couche · Test-Driven Emergence (BDD↔E2E↔doc vivante).]
API · Sécurité & RGPD¶
ADR (Architecture Decision Records)¶
ADR-001 — Hexagonale + SOLID (racine : écologie des savoirs)¶
ADR-002 — TDD + BDD + Documentation Vivante (racine : sept générations)¶
ADR-003 — DDD ubiquitous language → mapping code (racine : Ubuntu)¶
ADR-00x — [Choix de persistance : SQLAlchemy vs CQRS — irréversible, validé par l'humain]¶
ADR-00x — [Mapping branche GitFlow → environnement — irréversible, validé par l'humain]¶
Chaque ADR : décision · contexte · alternatives écartées · conséquences · (racine sagesse si éclairant).