Aperçu du cours
Objectif de formation : Acquérir une compréhension approfondie des principaux patterns utilisés dans la conception et le développement d’architectures distribuées
Prérequis
- Bonne connaissance de la programmation et de la conception logicielle
- Compréhension de base des concepts liés aux architectures distribuées
Objectifs pédagogiques
- Comprendre les principes fondamentaux des architectures distribuées
- Connaître les patterns d'architecture distribuée couramment utilisés
- Être en mesure de choisir et d'appliquer les patterns appropriés en fonction des besoins spécifiques d'un système distribué
- Acquérir les compétences nécessaires pour concevoir et développer des architectures distribuées robustes et évolutives
Public ciblé
- Développeurs logiciels
- Architectes logiciels
- Ingénieurs système
- Responsables techniques
Programme de formation
-
Introduction aux Patterns d'Architecture Distribuée (6 heures)
-
Présentation des architectures distribuées et des défis associés
-
Introduction aux patterns d’architecture distribuée
-
Patterns de communication: RPC (Remote Procedure Call), MOM (Message-Oriented Middleware), Publish/Subscribe
-
Travaux pratiques : Mise en œuvre d’un système de communication RPC simple
-
-
Patterns de Répartition de la Charge (7 heures)
-
Introduction aux patterns de répartition de la charge
-
Load Balancer: Round Robin, Algorithme de pondération, Algorithmes basés sur les performances
-
Caching: Cache partagé, Cache distribué
-
Partitionnement: Partitionnement horizontal, Partitionnement vertical
-
Travaux pratiques : Configuration d’un équilibreur de charge et mise en œuvre d’un mécanisme de mise en cache
-
-
Patterns de Cohérence et de Fiabilité (8 heures)
-
Consistance des données dans les architectures distribuées : ACID, BASE, CAP theorem
-
Réplication de données : Master/Slave, Master/Master, Réplication asynchrone/synchrone
-
Gestion des transactions distribuées : 2PC (Two-Phase Commit), 3PC (Three-Phase Commit), Saga Pattern
-
Travaux pratiques : Mise en œuvre de la réplication des données et gestion des transactions distribuées
-