MFormations
Modern Backend Engineering

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 : Aprocess.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 : Casync/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 : Bpackage.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 : BPromise.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 : Clet 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 : Areq.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 : Bexpress.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 : AEXPLAIN 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 : BContent-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 : Akubectl 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.