Architecture
Concevoir son système — des fondations matérielles à la validation, en passant par la modélisation, les flux et la résilience.
graph LR
A["Fondations materielles"] --suivant--> B["Fondations reseau"]
B --suivant--> C["Evolution"]
C --suivant--> D["Cadrer"]
D --suivant--> E["Modeliser"]
E --suivant--> F["Structurer"]
F --suivant--> G["Connecter/Stocker"]
G --suivant--> H["Fiabiliser"]
H --suivant--> I["Securiser"]
I --suivant--> J["Valider/Gouverner"]
Ce que vous allez apprendre
À la fin de ce tutoriel, vous serez capable de :
- Comprendre les contraintes matérielles qui conditionnent toute architecture logicielle
- Maîtriser les protocoles réseau et les mécanismes de routage qui sous-tendent les systèmes distribués
- Retracer l'évolution des architectures du mainframe au cloud-native pour eclairer les choix actuels
- Cadrer un projet avec des ADR, des exigences mesurables et le modèle C4
- Modéliser un système par intention — acteurs, flux, composants, déploiement
- Choisir une topologie système adaptée a votre contexte et définir les frontieres
- Concevoir les flux de communication, la concurrence et la persistance
- Appliquer les patterns de résilience, définir des SLO et mettre en place l'observabilité
- Protéger le système au niveau architectural — zero trust, threat modeling, supply chain
- Valider et gouverner une architecture avec des fitness functions, des revues et de l'automatisation
Prérequis
| Prérequis | Détail |
| Un langage maîtrise | Python, Java, Go ou TypeScript |
| Conception code | Principes SOLID et patterns de base (voir Concevoir son code) |
Parcours
| # | Chapitre | Contenu |
| 00 | Fondations matérielles | Processeur, mémoire, I/O, multiprocesseurs, virtualisation |
| 01 | Fondations réseau | Protocoles, routage, interconnexions, impact sur le distribué |
| 02 | Évolution | Du mainframe au cloud-native — comprendre les choix actuels |
| 03 | Cadrer | Exigences, contraintes, ADR, C4, trade-off analysis |
| 04 | Modeliser | Acteurs, flux, composants, déploiement, modèle vivant |
| 05 | Structurer | Topologies, frontieres, bounded contexts, intégration systèmes |
| 06 | Connecter et stocker | Concurrence, messaging, persistance, CQRS, event sourcing |
| 07 | Fiabiliser | Résilience, observabilité, SLI/SLO, chaos engineering |
| 08 | Securiser | Zero trust, STRIDE, mTLS, supply chain, defense en profondeur |
| 09 | Valider et gouverner | Fitness functions, revues, gouvernance, automatisation |
Références
Fondations matérielles
- Hennessy, Patterson — Computer Architecture: A Quantitative Approach
- Tanenbaum — Architecture de l'ordinateur
- Chevance — Serveurs multiprocesseurs, clusters et architectures parallèles
Fondations réseau
- Tanenbaum — Réseaux
- Stallings — Data and Computer Communications
- Kurose, Ross — Computer Networking: A Top-Down Approach
- Perlman — Interconnections: Bridges, Routers, Switches, and Internetworking Protocols
- Moy — OSPF: Anatomy of an Internet Routing Protocol
Architectures distribuées
- Pollet — Architectures logicielles réparties
- Orfali, Harkey — Client/Server Survival Guide
- Orfali, Harkey — The Essential Distributed Objects Survival Guide
- Gardarin — Bases de données
- CORBA — Spécifications OMG
Urbanisation et intégration
- Longepe — Le projet d'urbanisation du SI
- Caseau — Urbanisation, SOA et BPM
- Meinadier — Ingénierie et intégration des systèmes
- Josuttis — SOA in Practice
- Kamima — Urbanisation des systèmes d'information
Concurrence et fondations théoriques
- Raynal — Synchronisation et état global dans les systèmes répartis
- Linz, Rodger — An Introduction to Formal Languages and Automata
UE couvertes
| UE | Intitule | Chapitres |
| NSY104 | Architectures des systèmes informatiques | 00 |
| UTC505 | Mise en pratique des réseaux informatiques | 01 |
| RSX101 | Réseaux et telecommunications | 01 |
| RSX102/103 | Technologies pour les applications en réseau | 02 |
| NSY014 | Systèmes concurrents | 06 |
| NSY102 | Infrastructure technologique et architecturale du SI | 02 |
| NSY107 | Intégration des systèmes d'information | 02, 08 |
| NSY205 | Architecture des systèmes — conception et urbanisation | 05 |
| NSY206 | Architecture des systèmes — intégration | 05 |
| GLG203/204 | Genie logiciel | 05, 06 |
| NFP103 | Données et algorithmes | 06 |
| NFE108 | Méthodologies des systèmes d'information | 03, 04 |
| NFE115 | Information et gestion des bases de données | 06 |
| SEC102 | Menaces informatiques et codes malveillants | 08 |
| ELE101 | Composants et circuits électroniques | 00 |
| UTC303 | Introduction aux réseaux informatiques et de terrain | 01 |
| UTC302 | Algorithmique - Programmation - Langages | 06 |
| ELE207 | Technologies hauts débits | 01, 06 |