Aller au contenu

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, PattersonComputer Architecture: A Quantitative Approach
  • TanenbaumArchitecture de l'ordinateur
  • ChevanceServeurs multiprocesseurs, clusters et architectures parallèles

Fondations réseau

  • TanenbaumRéseaux
  • StallingsData and Computer Communications
  • Kurose, RossComputer Networking: A Top-Down Approach
  • PerlmanInterconnections: Bridges, Routers, Switches, and Internetworking Protocols
  • MoyOSPF: Anatomy of an Internet Routing Protocol

Architectures distribuées

  • PolletArchitectures logicielles réparties
  • Orfali, HarkeyClient/Server Survival Guide
  • Orfali, HarkeyThe Essential Distributed Objects Survival Guide
  • GardarinBases de données
  • CORBASpécifications OMG

Urbanisation et intégration

  • LongepeLe projet d'urbanisation du SI
  • CaseauUrbanisation, SOA et BPM
  • MeinadierIngénierie et intégration des systèmes
  • JosuttisSOA in Practice
  • KamimaUrbanisation des systèmes d'information

Concurrence et fondations théoriques

  • RaynalSynchronisation et état global dans les systèmes répartis
  • Linz, RodgerAn 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