Chapitre 18
18 - QCM (Questions à Choix Multiples)
18 - QCM (Questions à Choix Multiples)
Chapitre 18 : QCM - 100 Questions
Module 1 : Fondamentaux Node.js/TypeScript (Q1-Q12)
Q1
Quelle est la différence principale entre process.nextTick() et setImmediate() ?
A) nextTick est exécuté avant setImmediate dans le même cycle d'event loop
B) setImmediate est exécuté avant nextTick dans le même cycle
C) Ils sont identiques
D) nextTick est synchrone, setImmediate est asynchrone
Réponse : A — process.nextTick() s'exécute avant la suite du cycle d'event loop, tandis que setImmediate() s'exécute dans la phase "check" du cycle suivant.
Q2
Quel type TypeScript permet de représenter une valeur qui peut être soit string, soit null, soit undefined ?
A) string | null
B) string?
C) string | null | undefined
D) Optional<string>
Réponse : C — L'union type string | null | undefined est la façon correcte de représenter ces trois possibilités.
Q3
Quel est le comportement de async/await par rapport aux Promesses ?
A) async rend le code synchrone
B) await bloque le thread principal
C) async/await est du sucre syntaxique sur les Promesses
D) async fonctions ne peuvent pas retourner de valeur
Réponse : C — async/await est du sucre syntaxique qui permet d'écrire du code asynchrone de manière synchrone, mais les Promesses restent asynchrones.
Q4
Qu'est-ce que le "callback hell" et comment le résoudre ?
A) Une boucle infinie de callbacks, résolue avec des boucles B) Des callbacks imbriqués rendant le code illisible, résolu avec Promesses/async-await C) Un callback qui ne s'exécute jamais, résolu avec des timeouts D) Une erreur dans la pile d'appels, résolue avec try-catch
Réponse : B — L'imbrication excessive de callbacks crée un code en forme de pyramide. Les Promesses et async/await aplatissent cette structure.
Q5
Quel est le rôle du package.json dans un projet Node.js ?
A) Spécifier la version de Node.js B) Gérer les dépendances, scripts, et métadonnées du projet C) Configurer le compilateur TypeScript D) Définir les variables d'environnement
Réponse : B — package.json contient les métadonnées, dépendances, scripts et configuration du projet.
Q6
Quelle est la différence entre interface et type en TypeScript ?
A) interface peut être étendue, type ne peut pas
B) type peut être étendue, interface ne peut pas
C) Les deux sont strictement identiques
D) interface ne peut pas être utilisée pour les unions
Réponse : D — Les interface ne peuvent pas représenter des unions, contrairement aux type. Les interfaces peuvent être étendues (declaration merging), les types aussi avec les intersections.
Q7
Comment Node.js gère-t-il la concurrence ?
A) Avec des threads multiples B) Avec une boucle d'événements en single-thread C) Avec des processus fork D) Avec des coroutines
Réponse : B — Node.js utilise une boucle d'événements single-thread avec I/O non-bloquant pour gérer la concurrence.
Q8
Quel type de paramètre TypeScript utilise la syntaxe ...args: T[] ?
A) Paramètre optionnel B) Paramètre par défaut C) Paramètre de reste (rest parameter) D) Paramètre générique
Réponse : C — Les rest parameters capturent un nombre variable d'arguments dans un tableau.
Q9
Que retourne Promise.all() ?
A) Une promesse qui résout quand la première promesse se résout B) Une promesse qui résout quand toutes les promesses sont résolues C) Une promesse qui résout quand la première promesse échoue D) Un tableau de promesses individuelles
Réponse : B — Promise.all() retourne une promesse qui résout avec un tableau des valeurs quand toutes les promesses sont résolues, ou rejette à la première erreur.
Q10
Qu'est-ce que le "type narrowing" en TypeScript ?
A) Réduire la taille d'un type complexe B) Affiner le type d'une variable à travers des checks (typeof, instanceof, etc.) C) Convertir un type en un autre D) Supprimer les types redondants
Réponse : B — Le type narrowing permet d'affiner le type d'une variable dans des branches conditionnelles.
Q11
Quel module Node.js est utilisé pour créer un serveur HTTP basique ?
A) net
B) http
C) server
D) web
Réponse : B — Le module http de Node.js permet de créer des serveurs et clients HTTP.
Q12
Quelle est la portée d'une variable déclarée avec let dans un bloc if ?
A) Globale B) Fonction C) Bloc D) Module
Réponse : C — let et const ont une portée de bloc ({ }), contrairement à var qui a une portée de fonction.
Module 2 : Express et API REST (Q13-Q22)
Q13
Quel est l'ordre correct d'exécution des middlewares Express ?
A) L'ordre de déclaration B) L'ordre alphabétique C) L'ordre inverse de déclaration D) L'ordre aléatoire
Réponse : A — Les middlewares s'exécutent dans l'ordre où ils sont déclarés avec app.use().
Q14
Quelle méthode HTTP est idempotente ?
A) POST B) PUT C) PATCH D) DELETE
Réponse : B — PUT est idempotent : plusieurs appels identiques produisent le même résultat. POST ne l'est pas.
Q15
Que signifie REST ?
A) Representational State Transfer B) Remote Execution State Transfer C) Representational Server Task D) Remote State Transfer
Réponse : A — REST signifie Representational State Transfer, un style d'architecture pour les API.
Q16
Quel code HTTP indique une ressource créée avec succès ?
A) 200 B) 201 C) 204 D) 301
Réponse : B — 201 Created est retourné après une création réussie (POST).
Q17
Comment passer un paramètre de route dans Express ?
A) req.params.id
B) req.query.id
C) req.body.id
D) req.headers.id
Réponse : A — req.params contient les paramètres de route définis avec :param.
Q18
Qu'est-ce que CORS ?
A) Un mécanisme de cache B) Un mécanisme de sécurité pour les requêtes cross-origin C) Un protocole de compression D) Un format de sérialisation
Réponse : B — CORS (Cross-Origin Resource Sharing) contrôle les requêtes entre origines différentes.
Q19
Quel middleware Express parse le body JSON ?
A) express.text()
B) express.json()
C) express.urlencoded()
D) express.raw()
Réponse : B — express.json() parse les requêtes avec Content-Type application/json.
Q20
Quelle est la différence entre PUT et PATCH ?
A) PUT remplace la ressource entière, PATCH applique des modifications partielles B) PUT est plus rapide que PATCH C) PATCH est sécurisé, PUT ne l'est pas D) Il n'y a pas de différence
Réponse : A — PUT remplace toute la ressource, PATCH applique des modifications partielles.
Q21
Quel header est utilisé pour la négociation de contenu ?
A) Content-Type
B) Accept
C) Content-Encoding
D) Transfer-Encoding
Réponse : B — Le header Accept indique les types MIME acceptés par le client.
Q22
Que retourne une route qui ne match pas (404) dans Express ?
A) Une erreur JSON automatique B) Une page HTML par défaut C) Rien (le middleware doit être défini) D) Un code 200 vide
Réponse : C — Express ne gère pas automatiquement les 404, un middleware de dernière route doit être défini.
Module 3 : Bases de données (Q23-Q34)
Q23
Qu'est-ce qu'une transaction ACID ?
A) Atomicité, Cohérence, Isolation, Durabilité B) Authentification, Connexion, Indexation, Distribution C) Agrégation, Calcul, Indexation, Données D) Association, Composition, Inheritance, Dependency
Réponse : A — ACID garantit Atomicité, Cohérence, Isolation et Durabilité des transactions.
Q24
Quel est l'avantage principal d'un index en base de données ?
A) Réduire la taille de la base B) Accélérer les lectures (SELECT) C) Accélérer les écritures (INSERT/UPDATE) D) Garantir l'intégrité référentielle
Réponse : B — Les index accélèrent les requêtes SELECT en permettant une recherche rapide, mais ralentissent les écritures.
Q25
Quelle est la différence entre SQL et NoSQL ?
A) SQL est relationnel, NoSQL peut être document/graphe/clé-valeur B) SQL est plus lent que NoSQL C) NoSQL ne supporte pas les requêtes D) SQL est déprécié
Réponse : A — SQL utilise des tables relationnelles, NoSQL propose différents modèles (documents, graphes, clé-valeur, colonnes).
Q26
Qu'est-ce que N+1 query problem ?
A) Faire N requêtes de plus que nécessaire B) Une requête avec N jointures C) Une boucle infinie de requêtes D) Un deadlock
Réponse : A — Le problème N+1 survient quand on charge d'abord une liste (1 requête) puis charge les relations pour chaque élément (N requêtes).
Q27
Quel index PostgreSQL est utilisé pour la recherche full-text ?
A) B-tree B) Hash C) GIN D) BRIN
Réponse : C — L'index GIN (Generalized Inverted Index) est utilisé pour la recherche full-text.
Q28
Qu'est-ce qu'une migration de base de données ?
A) Déplacer la base vers un autre serveur B) Versionner les changements de schéma C) Optimiser les requêtes D) Réindexer les tables
Réponse : B — Les migrations permettent de versionner et appliquer les changements de schéma de manière reproductible.
Q29
Quel type de jointure retourne uniquement les enregistrements correspondants des deux tables ?
A) LEFT JOIN B) RIGHT JOIN C) INNER JOIN D) FULL OUTER JOIN
Réponse : C — INNER JOIN retourne uniquement les lignes où la condition de jointure est satisfaite dans les deux tables.
Q30
Qu'est-ce que la normalisation en base de données ?
A) Réduire la redondance des données B) Augmenter la vitesse des requêtes C) Chiffrer les données D) Distribuer les données
Réponse : A — La normalisation organise les données pour réduire la redondance et les anomalies.
Q31
Quel est le rôle d'une clé étrangère ?
A) Identifier uniquement une ligne B) Référencer une clé primaire d'une autre table C) Accélérer les recherches D) Chiffrer les relations
Réponse : B — Une clé étrangère (FOREIGN KEY) référence la clé primaire d'une autre table pour maintenir l'intégrité référentielle.
Q32
Qu'est-ce que MongoDB ?
A) Une base de données relationnelle B) Une base de données document C) Un cache distribué D) Un message broker
Réponse : B — MongoDB est une base de données NoSQL orientée documents (JSON-like).
Q33
Que fait EXPLAIN ANALYZE dans PostgreSQL ?
A) Montre le plan d'exécution et exécute la requête B) Montre uniquement le plan d'exécution C) Analyse les index D) Optimise automatiquement la requête
Réponse : A — EXPLAIN ANALYZE exécute la requête et montre le plan d'exécution réel avec les temps.
Q34
Qu'est-ce que le Connection Pooling ?
A) Un pool de connexions réutilisables pour éviter d'en ouvrir/fermer constamment B) Un groupe de bases de données connectées C) Un pool de threads pour les requêtes D) Une file d'attente de connexions
Réponse : A — Le connection pooling maintient un ensemble de connexions ouvertes et réutilisables.
Module 4 : Caching et Performance (Q35-Q42)
Q35
Quel est le TTL (Time-To-Live) ?
A) La durée de vie d'une clé dans le cache B) Le temps de réponse d'une requête C) La latence réseau D) Le temps de démarrage du serveur
Réponse : A — Le TTL définit combien de temps une entrée reste valide dans le cache.
Q36
Qu'est-ce que le cache stampede ?
A) Quand trop de requêtes frappent le cache simultanément après une expiration B) Quand le cache est vide C) Quand le serveur tombe en panne D) Quand la mémoire cache est pleine
Réponse : A — Le cache stampede se produit quand plusieurs requêtes tentent de régénérer le même cache expiré simultanément.
Q37
Quel pattern de cache consiste à charger les données dans le cache avant qu'elles soient demandées ?
A) Lazy loading B) Cache warming C) Write-through D) Cache-aside
Réponse : B — Le cache warming précharge les données dans le cache avant les requêtes réelles.
Q38
Quelle structure Redis est idéale pour un rate limiter ?
A) String B) Sorted Set C) List D) Hash
Réponse : B — Les Sorted Sets de Redis sont parfaits pour les sliding window rate limiters car ils permettent de gérer des timestamps ordonnés.
Q39
Qu'est-ce que Redis ?
A) Une base de données relationnelle B) Un cache en mémoire structuré en données clé-valeur C) Un message broker D) Un serveur HTTP
Réponse : B — Redis est un stockage en mémoire de structures de données (clé-valeur) utilisé comme cache/base de données.
Q40
Comment éviter le cache stampede ?
A) Augmenter le TTL B) Utiliser un lock (mutex) autour de la régénération du cache C) Supprimer le cache D) Utiliser un cache plus grand
Réponse : B — Un mutex ou "lock" permet à un seul processus de régénérer le cache, les autres attendant ou servant une stale value.
Q41
Qu'est-ce que CDN caching ?
A) Cache distribué géographiquement proche des utilisateurs B) Cache sur le serveur d'application C) Cache dans le navigateur D) Cache en base de données
Réponse : A — Un CDN (Content Delivery Network) distribue le cache sur des serveurs géographiquement proches des utilisateurs.
Q42
Que sont les HTTP cache headers ?
A) Cache-Control, ETag, Last-Modified B) Content-Type, Accept, Authorization C) Set-Cookie, Cookie, Host D) Location, Allow, WWW-Authenticate
Réponse : A — Cache-Control, ETag et Last-Modified sont les headers HTTP principaux pour le caching.
Module 5 : Sécurité et Auth (Q43-Q52)
Q43
Qu'est-ce que le JWT (JSON Web Token) ?
A) Un format de token pour l'authentification B) Un algorithme de hash C) Un protocole de chiffrement D) Une base de données
Réponse : A — JWT est un standard ouvert (RFC 7519) pour transmettre des informations entre parties de manière sécurisée.
Q44
Quelle est la différence entre HTTP et HTTPS ?
A) HTTPS utilise TLS/SSL pour chiffrer la communication B) HTTPS est plus lent C) HTTPS utilise un port différent D) Les deux sont identiques
Réponse : A — HTTPS ajoute une couche TLS/SSL de chiffrement par-dessus HTTP.
Q45
Qu'est-ce qu'une attaque CSRF ?
A) Vol de session via un token B) Injection SQL C) Requête cross-site forgée D) Déni de service
Réponse : C — CSRF (Cross-Site Request Forgery) force un utilisateur authentifié à exécuter des actions non désirées.
Q46
Comment stocker sécurisé un mot de passe ?
A) En clair dans la base de données B) Avec un hash simple (MD5, SHA1) C) Avec bcrypt/argon2 (hash + salt) D) Chiffré avec AES
Réponse : C — Bcrypt ou Argon2 avec un salt unique par mot de passe est la méthode recommandée.
Q47
Qu'est-ce que l'OWASP Top 10 ?
A) Un classement des frameworks backend B) Une liste des risques de sécurité web les plus critiques C) Un outil de test de performance D) Une certification sécurité
Réponse : B — L'OWASP Top 10 est une liste des 10 risques de sécurité web les plus critiques.
Q48
Quel header HTTP protège contre les attaques XSS ?
A) X-Frame-Options
B) Content-Security-Policy
C) Strict-Transport-Security
D) X-Content-Type-Options
Réponse : B — Content-Security-Policy (CSP) contrôle les ressources autorisées, protégeant contre XSS.
Q49
Qu'est-ce que l'authentification à deux facteurs (2FA) ?
A) Deux mots de passe B) Deux facteurs de vérification (ex: password + TOTP) C) Deux sessions simultanées D) Deux jetons d'accès
Réponse : B — Le 2FA combine quelque chose que vous savez (mot de passe) et quelque chose que vous possédez (TOTP, SMS, etc.).
Q50
Qu'est-ce qu'une injection SQL ?
A) Injection de commandes SQL malveillantes dans les inputs utilisateur B) Injection de données dans une table C) Optimisation de requêtes SQL D) Migration de base de données
Réponse : A — L'injection SQL exploite les entrées utilisateur non nettoyées pour exécuter des commandes SQL arbitraires.
Q51
Quel est le principe de défense en profondeur ?
A) Plusieurs couches de sécurité indépendantes B) Un seul pare-feu très puissant C) Chiffrer toutes les données D) Désactiver tous les services
Réponse : A — La défense en profondeur superpose plusieurs couches de sécurité pour qu'une faille ne compromette pas tout le système.
Q52
Qu'est-ce que OAuth 2.0 ?
A) Un framework d'autorisation déléguée B) Un algorithme de hash C) Un protocole de chiffrement D) Un système de fichiers
Réponse : A — OAuth 2.0 est un framework qui permet à des applications d'obtenir un accès limité à des ressources sans exposer les identifiants.
Module 6 : Messaging et Async (Q53-Q62)
Q53
Qu'est-ce que Kafka ?
A) Une base de données B) Un message broker distribué C) Un cache D) Un serveur web
Réponse : B — Apache Kafka est une plateforme de streaming événementiel distribuée qui agit comme message broker.
Q54
Qu'est-ce qu'un consumer group dans Kafka ?
A) Un groupe de consumers qui partagent la charge d'un topic B) Un groupe de producers C) Un groupe de topics D) Un groupe de brokers
Réponse : A — Les consumer groups permettent de paralléliser la consommation d'un topic entre plusieurs consumers.
Q55
Qu'est-ce que BullMQ ?
A) Un message broker B) Une bibliothèque de files d'attente basée sur Redis C) Un ORM D) Un framework web
Réponse : B — BullMQ est une bibliothèque Node.js pour gérer des files d'attente et des tâches avec Redis.
Q56
Quel pattern garantit qu'un message sera traité au moins une fois ?
A) At-least-once B) At-most-once C) Exactly-once D) Best-effort
Réponse : A — Le pattern at-least-once garantit la livraison mais peut produire des doublons.
Q57
Qu'est-ce que le Outbox Pattern ?
A) Stocker les événements dans une table "outbox" avant de les publier B) Envoyer les événements directement C) Ignorer les événements D) Logger les événements
Réponse : A — Le Outbox Pattern stocke les événements dans la même transaction que l'opération métier, garantissant la cohérence.
Q58
Qu'est-ce que RabbitMQ ?
A) Un cache distribué B) Un message broker implémentant AMQP C) Une base de données D) Un ORM
Réponse : B — RabbitMQ est un message broker qui implémente le protocole AMQP (Advanced Message Queuing Protocol).
Q59
Qu'est-ce que l'idempotence d'un consumer ?
A) Le consumer peut traiter le même message plusieurs fois sans effet de bord B) Le consumer est rapide C) Le consumer est distribué D) Le consumer est sécurisé
Réponse : A — Un consumer idempotent peut recevoir le même message plusieurs fois sans conséquences négatives.
Q60
Quel est l'avantage d'un message broker par rapport à une communication synchrone ?
A) Découplage temporel et spatial des services B) Plus grande vitesse de transmission C) Moins de code à écrire D) Plus facile à déboguer
Réponse : A — Les message brokers découplent les producteurs et consommateurs dans le temps et l'espace.
Q61
Qu'est-ce que le backpressure dans le traitement de messages ?
A) Ralentir le producteur quand le consommateur est submergé B) Augmenter la pression du réseau C) Sauvegarder les messages D) Compresser les messages
Réponse : A — Le backpressure est un mécanisme de régulation qui ralentit le producteur quand le consommateur ne suit pas.
Q62
Qu'est-ce qu'un dead letter queue ?
A) Une queue où les messages échoués sont redirigés après plusieurs tentatives B) Une queue prioritaire C) Une queue vide D) Une queue chiffrée
Réponse : A — Une dead letter queue (DLQ) stocke les messages qui n'ont pas pu être traités après plusieurs tentatives.
Module 7 : Design Patterns (Q63-Q70)
Q63
Quel pattern permet d'injecter des dépendances plutôt que de les créer ?
A) Factory B) Dependency Injection C) Singleton D) Observer
Réponse : B — L'injection de dépendances (DI) fournit les dépendances à une classe plutôt que de les créer en interne.
Q64
Quel pattern garantit qu'une classe n'a qu'une seule instance ?
A) Factory B) Singleton C) Builder D) Prototype
Réponse : B — Le Singleton assure qu'une classe n'a qu'une instance et fournit un point d'accès global.
Q65
Qu'est-ce que le Repository pattern ?
A) Séparer la logique métier de la couche de persistance B) Gérer les transactions C) Optimiser les requêtes D) Migrer les données
Réponse : A — Le Repository pattern abstrait la couche de persistance derrière une interface.
Q66
Qu'est-ce que le Circuit Breaker pattern ?
A) Couper la connexion à un service défaillant pour éviter la cascade B) Couper le courant électrique C) Redémarrer un service D) Mettre à jour un service
Réponse : A — Le Circuit Breaker arrête les appels vers un service défaillant pour éviter des échecs en cascade.
Q67
Qu'est-ce que le Saga pattern ?
A) Gérer les transactions distribuées via une séquence de transactions locales B) Un pattern de déploiement C) Un pattern de cache D) Un pattern de logging
Réponse : A — Le Saga pattern gère les transactions distribuées en les décomposant en transactions locales avec compensation.
Q68
Qu'est-ce que l'Observer pattern ?
A) Un objet notifie ses dépendants des changements d'état B) Observer l'exécution du code C) Logger les événements D) Surveiller les performances
Réponse : A — L'Observer (ou publish/subscribe) définit une relation un-à-plusieurs où les observateurs sont notifiés des changements.
Q69
Qu'est-ce que le Strategy pattern ?
A) Permettre de changer d'algorithme à l'exécution B) Stratégie de déploiement C) Stratégie de test D) Stratégie de cache
Réponse : A — Le Strategy pattern définit une famille d'algorithmes interchangeables encapsulés.
Q70
Qu'est-ce que le Decorator pattern ?
A) Ajouter dynamiquement des responsabilités à un objet B) Décorer l'interface utilisateur C) Formater le code D) Structurer les fichiers
Réponse : A — Le Decorator pattern permet d'ajouter des comportements à un objet de manière flexible.
Module 8 : DevOps et CI/CD (Q71-Q80)
Q71
Qu'est-ce qu'un container Docker ?
A) Une machine virtuelle légère B) Un environnement isolé pour exécuter une application C) Un serveur physique D) Un système d'exploitation
Réponse : B — Un container est une unité standardisée de logiciel qui empaquette le code et ses dépendances.
Q72
Quelle est la différence entre Docker et une VM ?
A) Docker partage le noyau de l'hôte, une VM a son propre noyau B) Docker est plus lent qu'une VM C) Une VM est plus légère que Docker D) Il n'y a pas de différence
Réponse : A — Les containers partagent le noyau de l'hôte, tandis que les VMs ont leur propre système d'exploitation avec noyau.
Q73
Qu'est-ce que Kubernetes ?
A) Un orchestrateur de containers B) Un système de fichiers distribué C) Un langage de programmation D) Une base de données
Réponse : A — Kubernetes (K8s) est une plateforme open-source pour orchestrer des containers.
Q74
Qu'est-ce qu'un Deployment dans Kubernetes ?
A) Un pod statique B) Un objet qui gère le cycle de vie des pods (rolling update, rollback) C) Un service network D) Un volume de stockage
Réponse : B — Un Deployment gère le déploiement et la mise à jour des pods (replicas, rolling update, rollback).
Q75
Qu'est-ce que Terraform ?
A) Un outil d'orchestration de containers B) Un outil Infrastructure as Code (IaC) C) Un framework de test D) Un éditeur de code
Réponse : B — Terraform permet de définir et provisionner l'infrastructure sous forme de code déclaratif.
Q76
Qu'est-ce que GitOps ?
A) Utiliser Git comme source de vérité pour l'infrastructure et les déploiements B) Un outil de versioning C) Un protocole réseau D) Un type de base de données
Réponse : A — GitOps utilise Git comme source de vérité unique pour l'infrastructure déclarative.
Q77
Qu'est-ce qu'une GitHub Action ?
A) Un script automatisé déclenché par des événements GitHub B) Un outil de code review C) Un IDE en ligne D) Un gestionnaire de paquets
Réponse : A — GitHub Actions permet d'automatiser des workflows CI/CD directement depuis GitHub.
Q78
Que fait kubectl rollout undo ?
A) Annule le dernier déploiement Kubernetes B) Supprime un pod C) Crée un service D) Met à jour un secret
Réponse : A — kubectl rollout undo annule un déploiement vers la révision précédente (rollback).
Q79
Qu'est-ce que Helm dans l'écosystème Kubernetes ?
A) Un package manager pour Kubernetes B) Un load balancer C) Un monitoring tool D) Un IDE
Réponse : A — Helm est le gestionnaire de paquets (charts) pour Kubernetes, facilitant le déploiement d'applications complexes.
Q80
Qu'est-ce qu'une Docker multi-stage build ?
A) Plusieurs étapes de build dans un seul Dockerfile pour optimiser la taille de l'image finale B) Construire l'image sur plusieurs machines C) Plusieurs Dockerfiles D) Une build parallélisée
Réponse : A — Les multi-stage builds utilisent plusieurs instructions FROM pour séparer la construction de l'exécution.
Module 9 : Cloud et Infrastructure (Q81-Q88)
Q81
Qu'est-ce que le cloud computing ?
A) Fourniture de ressources informatiques à la demande via Internet B) Un serveur distant C) Un réseau privé D) Un système de stockage local
Réponse : A — Le cloud computing fournit des ressources (compute, storage, network) à la demande sur Internet.
Q82
Qu'est-ce que l'Auto Scaling ?
A) Ajuster automatiquement les ressources selon la charge B) Redimensionner manuellement les serveurs C) Optimiser le code D) Compresser les données
Réponse : A — L'Auto Scaling ajuste automatiquement la capacité de calcul en fonction de la demande.
Q83
Que signifie "serverless" ?
A) Exécuter du code sans gérer les serveurs sous-jacents B) Sans serveur C) Un serveur sans OS D) Un micro-service
Réponse : A — Le serverless (FaaS) permet d'exécuter du code sans provisionner ou gérer des serveurs.
Q84
Qu'est-ce que le load balancing ?
A) Distribuer le trafic entre plusieurs serveurs B) Équilibrer la charge de la base de données C) Compresser les données réseau D) Chiffrer les connexions
Réponse : A — Le load balancing répartit le trafic réseau entre plusieurs serveurs backend.
Q85
Qu'est-ce qu'un reverse proxy ?
A) Un serveur qui agit comme intermédiaire entre les clients et les serveurs backend B) Un proxy pour l'utilisateur C) Un VPN D) Un pare-feu
Réponse : A — Un reverse proxy reçoit les requêtes client et les transmet aux serveurs backend appropriés.
Q86
Qu'est-ce que le Service Discovery ?
A) Permettre aux services de se découvrir dynamiquement entre eux B) Découvrir des bugs C) Analyser les logs D) Surveiller les métriques
Réponse : A — Le Service Discovery permet aux services de localiser dynamiquement d'autres services dans un réseau distribué.
Q87
Qu'est-ce que la résilience en architecture logicielle ?
A) La capacité du système à rester fonctionnel en cas de panne B) La vitesse d'exécution C) La sécurité du système D) La maintenabilité
Réponse : A — La résilience est la capacité d'un système à absorber les défaillances et à continuer de fonctionner.
Q88
Qu'est-ce que le Blue-Green deployment ?
A) Une stratégie de déploiement avec deux environnements identiques (blue et green) B) Une stratégie de cache C) Un pattern de conception D) Un outil de monitoring
Réponse : A — Le Blue-Green deployment bascule le trafic entre deux environnements identiques pour un déploiement sans interruption.
Module 10 : Architecture et Systèmes Transversaux (Q89-Q100)
Q89
Qu'est-ce qu'un microservice ?
A) Un petit service indépendant avec sa propre base de données et cycle de vie B) Un petit framework C) Une fonction utilitaire D) Un composant d'interface utilisateur
Réponse : A — Un microservice est un service autonome, indépendant, avec sa propre base de données et déployable séparément.
Q90
Qu'est-ce que l'architecture événementielle (Event-Driven Architecture) ?
A) Les services communiquent via des événements asynchrones B) Les services s'appellent via HTTP C) Les services partagent une base de données D) Les services sont monolithiques
Réponse : A — L'architecture événementielle utilise des événements pour la communication asynchrone entre services.
Q91
Qu'est-ce que CQRS (Command Query Responsibility Segregation) ?
A) Séparer les opérations de lecture et d'écriture en modèles distincts B) Un pattern de cache C) Un type de base de données D) Un protocole réseau
Réponse : A — CQRS sépare les responsabilités de commande (écriture) et de requête (lecture).
Q92
Qu'est-ce qu'un API Gateway ?
A) Un point d'entrée unique qui route les requêtes vers les microservices B) Une interface de base de données C) Un outil de test D) Un protocole réseau
Réponse : A — L'API Gateway est un serveur qui agit comme point d'entrée unique pour un système de microservices.
Q93
Qu'est-ce que le rate limiting côté serveur ?
A) Limiter le nombre de requêtes d'un client sur une période donnée B) Limiter la vitesse du réseau C) Limiter la bande passante D) Limiter le nombre de services
Réponse : A — Le rate limiting contrôle le nombre de requêtes autorisées par client sur une fenêtre de temps.
Q94
Qu'est-ce que le Chaos Engineering ?
A) Tester la résilience du système en introduisant volontairement des défaillances B) Un style de codage C) Un framework de test unitaire D) Un outil de monitoring
Réponse : A — Le Chaos Engineering expérimente avec des défaillances contrôlées pour valider la résilience du système.
Q95
Qu'est-ce que l'Event Sourcing ?
A) Stocker l'état comme une séquence d'événements immutables B) Générer des événements aléatoires C) Logger tous les événements D) Un type de base de données
Réponse : A — L'Event Sourcing persiste l'état comme une séquence d'événements plutôt que comme un état instantané.
Q96
Qu'est-ce que le Domain-Driven Design (DDD) ?
A) Une approche de conception centrée sur le domaine métier B) Un pattern de base de données C) Un type de déploiement D) Un outil de design
Réponse : A — Le DDD est une approche de conception logicielle centrée sur la modélisation du domaine métier.
Q97
Qu'est-ce que le CAP Theorem ?
A) Cohérence, Disponibilité, Partition Tolerance — on ne peut avoir que deux des trois à la fois B) Capacité, Accessibilité, Performance C) Cache, API, Protocole D) Concurrency, Atomicité, Persistance
Réponse : A — Le théorème CAP (Brewer) stipule qu'un système distribué ne peut satisfaire que deux des trois propriétés simultanément.
Q98
Qu'est-ce que l'architecture Hexagonale (Ports & Adapters) ?
A) Isoler le cœur métier des dépendances externes via des ports et adapteurs B) Une architecture en forme d'hexagone C) Un pattern de base de données D) Un type de microservice
Réponse : A — L'architecture hexagonale isole la logique métier des détails techniques (base de données, API, etc.).
Q99
Qu'est-ce que le Two-Phase Commit (2PC) ?
A) Un protocole de transaction distribuée en deux phases (prepare/commit) B) Un déploiement en deux phases C) Un pattern de cache D) Un algorithme de tri
Réponse : A — Le 2PC est un protocole qui coordonne les transactions distribuées avec une phase de préparation puis de validation.
Q100
Qu'est-ce que l'OpenTelemetry ?
A) Une collection d'outils pour le monitoring et tracing distribué B) Un framework web C) Une base de données de métriques D) Un outil de logging
Réponse : A — OpenTelemetry est un ensemble de SDKs, APIs et outils pour collecter et exporter des métriques, logs et traces.