Microservices vs Monolithiques
42 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quel modèle de communication implique l'envoi d'une commande suivie d'une réponse?

  • Publication/abonnement
  • Command Query Responsibility Segregation (CQRS)
  • Event sourcing
  • Requête / Réponse (correct)
  • Parmi les protocoles suivants, lequel est souvent utilisé pour des communications en temps réel?

  • SOAP
  • REST
  • WebSocket (correct)
  • HTTP/HTTPS
  • Quelle caractéristique d'une API Gateway permet la gestion efficace des requêtes entrantes?

  • Gestion du trafic (correct)
  • Translation de protocole
  • Découverte des services
  • Mise en cache
  • Un goulot d'étranglement dans une API Gateway peut être évité par quelles méthodes?

    <p>Instances multiples</p> Signup and view all the answers

    Quel modèle API Gateway est spécifiquement conçu pour répondre aux besoins de plusieurs front-ends?

    <p>BFF (Backend for Frontend)</p> Signup and view all the answers

    La mise en cache dans une API Gateway sert principalement à:

    <p>Accélérer les temps de réponse</p> Signup and view all the answers

    Quel modèle facilite la séparation des commandes et des requêtes dans une architecture?

    <p>Command Query Responsibility Segregation (CQRS)</p> Signup and view all the answers

    Quel protocole est principalement utilisé pour l'acheminement de messages dans des systèmes distribués?

    <p>Advanced Message Queuing Protocol (AMQP)</p> Signup and view all the answers

    Quelle méthode HTTP est généralement utilisée pour supprimer une ressource?

    <p>DELETE</p> Signup and view all the answers

    Quel code d'état HTTP représente une création réussie d'une ressource?

    <p>201</p> Signup and view all the answers

    Quel est l'objectif principal de la documentation d'une API?

    <p>Expliquer le but des points de terminaison</p> Signup and view all the answers

    Quelle méthode HTTP serait appropriée pour obtenir des informations sur une ressource spécifique?

    <p>GET</p> Signup and view all the answers

    Quelle affirmation décrit le mieux le CRUD?

    <p>Il s'agit d'un modèle de conception pour gérer les actions comme créer, lire, mettre à jour et supprimer</p> Signup and view all the answers

    Qu'est-ce qui est essentiel pour l'adoption d'une API?

    <p>La présence de documentation claire</p> Signup and view all the answers

    Comment sont définis les chemins des points de terminaison dans une API CRUD?

    <p>En mappant les actions aux méthodes HTTP</p> Signup and view all the answers

    Qu'est-ce que GraphQL offre en comparaison à une API REST?

    <p>Une efficacité pour gérer des requêtes complexes</p> Signup and view all the answers

    Quels sont les inconvénients d'une architecture monolithique ?

    <p>Difficulté à comprendre un grand code</p> Signup and view all the answers

    Quel est un avantage principal des microservices ?

    <p>Facilité de mise à l'échelle</p> Signup and view all the answers

    Quel défi lié aux microservices concerne les systèmes distribués ?

    <p>La latence n'est pas à négliger</p> Signup and view all the answers

    Quelle considération est primordiale lors de la conception de microservices ?

    <p>La logique métier</p> Signup and view all the answers

    Quel principe doit respecter chaque microservice en matière de responsabilités ?

    <p>Principle of Single Responsibility</p> Signup and view all the answers

    Comment les microservices communiquent-ils entre eux ?

    <p>Via une API bien définie</p> Signup and view all the answers

    Quel problème peut survenir en raison de la nature distribuée des microservices ?

    <p>Erreurs de réseau potentielles</p> Signup and view all the answers

    Pourquoi est-il difficile de déployer un seul composant dans une architecture monolithique ?

    <p>Tous les composants dépendent les uns des autres</p> Signup and view all the answers

    Quel est un des avantages des APIs fines (fine-grained APIs) ?

    <p>Contrôle élevé sur les opérations spécifiques</p> Signup and view all the answers

    Quel est l'inconvénient majeur de la communication synchrone ?

    <p>Couplage étroit entre services</p> Signup and view all the answers

    Quelle stratégie permet à un service de gérer les situations imprévisibles de manière fiable ?

    <p>Stratégie de Fallback</p> Signup and view all the answers

    Quel est un des inconvénients des APIs larges (coarse-grained APIs) ?

    <p>Difficulté dans la réalisation d'opérations spécifiques</p> Signup and view all the answers

    Qu'est-ce qu'un Bounded Context ?

    <p>Une définition des limites d’un domaine spécifique</p> Signup and view all the answers

    La communication asynchrone est souvent préférée pour quelle raison ?

    <p>Couplage faible entre services</p> Signup and view all the answers

    Quel est un inconvénient des mécanismes de réessaie ?

    <p>Risque de surcharge réseau</p> Signup and view all the answers

    Quelle est la principale caractéristique d'un API grossière (coarse-grained API) ?

    <p>Une interaction simplifiée entre services</p> Signup and view all the answers

    Quel est l'objectif principal de l'utilisation des paramètres de requête?

    <p>Permettre au client de rechercher des données spécifiques.</p> Signup and view all the answers

    Quelles sont les erreurs à éviter dans les messages d'erreur aux clients?

    <p>Exposer trop d'informations.</p> Signup and view all the answers

    Quelle technique peut améliorer la gestion des erreurs dans les bases de données?

    <p>Utiliser des messages clairs et concis.</p> Signup and view all the answers

    Quelle est la première mesure de sécurité à mettre en œuvre lors de l'accès à une API?

    <p>Authentification et autorisation des clients.</p> Signup and view all the answers

    Quel type de cryptage est spécifiquement mentionné pour sécuriser les données au repos?

    <p>AES.</p> Signup and view all the answers

    Qu'est-ce qui constitue un élément clé pour détecter et résoudre des problèmes dans une base de données?

    <p>Consignation et surveillance des erreurs.</p> Signup and view all the answers

    Lors de la validation des données, quelle méthode permet de vérifier si une valeur est dans un intervalle spécifié?

    <p>Validation d'intervalles.</p> Signup and view all the answers

    Quel est le but de la gestion des exceptions dans le code?

    <p>Attraper les erreurs de manière élégante.</p> Signup and view all the answers

    Quelle taille de clé AES n'est pas mentionnée comme option pour le cryptage?

    <p>512 bits.</p> Signup and view all the answers

    Quel aspect est crucial pour la sécurisation des données en transit?

    <p>Protection des données.</p> Signup and view all the answers

    Study Notes

    Inconvénients des architectures monolithiques

    • Difficulté de maintenir une application volumineuse écrite dans un seul langage.
    • La compréhension et la gestion de l'application par un seul développeur ou une seule équipe est complexe.
    • Impossibilité d'effectuer des changements séparés sur un seul composant de l'application.

    Avantages des Microservices

    • Indépendance des langages de programmation utilisés.
    • Utilisation de protocoles légers et ouverts pour l'interaction entre services.
    • Facilité de compréhension, de gestion, de test, de déploiement et de mise à l'échelle des microservices.
    • Découplage des changements et exposition uniquement des informations nécessaires aux clients.

    Défis des Microservices

    • Les systèmes distribués engendrent des défis liés au réseau, à la latence, à la bande passante, à la sécurité, à la topologie, à l'administration, au coût du transport et à l'homogénéité du réseau.
    • Les services peuvent être indisponibles.
    • Les appels distants sont plus coûteux que les appels internes.
    • Problèmes de cohérence des données entre les différents microservices.

    Conception des Microservices

    • La priorité est de s'appuyer sur la logique métier.
    • Chaque microservice doit avoir une responsabilité unique (Single Responsibility Principle).
    • Faciliter le couplage faible: chaque microservice gère ses propres données et communique avec les autres par le biais d'APIs bien définies.
    • Les pannes sont inévitables, il faut utiliser des mécanismes de réessaie et des stratégies de fallback.

    Versioning des APIs

    • La granularité des APIs peut être fine (fine-grained) ou grossière (coarse-grained) avec ses propres avantages et inconvénients.
    • Le concept de "Bounded Context" permet d'équilibrer la granularité des APIs.

    Communication Synchrone et Asynchrone

    • La communication synchrone permet un feedback immédiat mais est bloquante et peut engendrer un couplage étroit.
    • La communication asynchrone est moins restrictive, permet un couplage faible et rend le service plus résilient, mais complexifie la gestion des messages et des erreurs.

    Modèles de Communication

    • Requête / Réponse
    • Publication / Abonnement (publish/subscribe)
    • Event sourcing
    • Command Query Responsibility Segregation (CQRS)

    Protocoles Typiques

    • HTTP/HTTPS
    • WebSocket
    • Advanced Message Queuing Protocol (AMQP)
    • gRPC

    API Gateway

    • Point d'entrée unique pour les clients.
    • Améliore l'efficacité du réseau grâce au Load Balancing.
    • Fournit une sécurité centralisée.
    • Doit être conçu pour la haute disponibilité et la tolérance aux pannes en utilisant des instances multiples et une surveillance.

    Caractéristiques d'une API Gateway

    • Translation de protocole.
    • Composition d'API.
    • Gestion du trafic.
    • Mise en cache.
    • Découverte des services.

    Modèles (Patterns) API Gateway

    • Backend for Frontend Pattern (BFF) : Permet de simplifier l'interaction entre les clients et les API.
    • API Versioning: Utilise des versions différentes de l'API pour maintenir la compatibilité et effectuer des changements sans affecter les clients existants.

    Principes de Conception d'une API RESTful

    • Méthodes HTTP standards (GET/POST/DELETE/PUT).
    • Conventions de nommage des endpoints.
    • Codes d'état HTTP (200/201...).
    • Alternatives à REST: GraphQL pour la flexibilité et l'efficacité, gRPC pour la performance et la communication à basse latence.

    Conception CRUD d'une API

    • Identifier les actions à effectuer (création, lecture, mise à jour et suppression).
    • Associer les actions aux méthodes HTTP et définir les chemins des points de terminaison.
    • Déterminer la structure des requêtes et des réponses.
    • Implémenter la gestion des erreurs avec des réponses claires et cohérentes.
    • Documenter l'API avec précision.

    Conception des Endpoints pour l'Efficacité de l'Interrogation des Données

    • Créer des endpoints spécifiques aux requêtes des clients.
    • Utiliser les paramètres de requête pour limiter les données renvoyées.

    Validation des Données et Vérification d'Intégrité

    • Validation du type des données.
    • Validation des contraintes et des intervalles.
    • Validation des formats et des motifs des données.
    • Gestion des données invalides avec messages d'erreur clairs et précis.

    Gestion des Erreurs des Bases de Données

    • Ne pas afficher les messages d'erreur de la base de données au client, utiliser des messages clairs et concis.
    • Implémenter la gestion des exceptions dans le code.
    • Journaliser et surveiller les erreurs de la base de données.
    • Envisager des techniques de journalisation asynchrone.
    • Implémenter un mécanisme de secours.

    Sécurité et Optimisation d'Accès aux Données

    • Authentifier et autoriser les clients accédant à l'API.
    • Protéger les données en transit par le cryptage.
    • Sécuriser les données au repos avec le cryptage et le hachage.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Ce quiz explore les avantages et inconvénients des architectures monolithiques et des microservices. Il aborde les défis associés aux systèmes distribués et l'impact sur le développement logiciel. Testez vos connaissances sur ces concepts fondamentaux de l'architecture logicielle.

    More Like This

    Monolithic Architecture Challenges
    5 questions
    Monolithic Application vs Microservices
    36 questions
    Monolith vs Microservices Overview
    8 questions
    Use Quizgecko on...
    Browser
    Browser