Top 50 Terminologies de System Design à Connaître

October 9, 2024 12 mins to read
Share

La performance lors d’un entretien de system design est un facteur critique pour valider si un candidat peut concevoir des systèmes évolutifs et efficaces. La maîtrise des terminologies clés peut définitivement vous aider à exceller. Voici les 50 termes essentiels en conception de systèmes que nous allons expliquer avec des définitions et des exemples de fonctionnement, ainsi que des ressources pour approfondir vos connaissances.

system design
  1. Scalability
    • Définition : La capacité d’un système à supporter une charge accrue en ajoutant des ressources.
    • Exemple : Ajouter plus de serveurs pour gérer une augmentation du trafic web.
    • En savoir plus : What is Scalability and How to Achieve it?
  2. Load Balancer
    • Définition : Division du trafic réseau entrant entre plusieurs serveurs pour qu’aucun serveur ne soit surchargé.
    • Exemple : Répartition du trafic web entre plusieurs instances EC2 via le service AWS Elastic Load Balancer (ELB).
    • En savoir plus : Understanding Load Balancer
  3. Microservices
    • Définition : Un modèle architectural qui structure une application en une collection de services faiblement couplés.
    • Exemple : Découper une application monolithique en services indépendants pour la gestion des utilisateurs, le traitement des paiements, et l’envoi de notifications.
    • En savoir plus : What are Microservices?
  4. CAP Theorem
    • Définition : Ce théorème stipule qu’un système distribué ne peut offrir que deux des trois garanties suivantes : Consistency, Availability, et Partition Tolerance.
    • Exemple : Savoir quand faire des compromis entre la Consistency et la Availability dans la conception de bases de données distribuées.
    • En savoir plus : Understanding CAP Theorem
  5. Sharding
    • Définition : Découper une grande base de données en fragments plus petits appelés shards pour une meilleure gestion.
    • Exemple : Sharding d’une base de données utilisateur en fonction de la région géographique.
    • En savoir plus : Database Sharding Explained
  6. Latency
    • Définition : Le temps nécessaire pour qu’une donnée voyage du point A au point B.
    • Exemple : Mesurer le délai de livraison d’un message via une application de chat.
    • En savoir plus : Latency explained!
  7. Throughput
    • Définition : Une mesure de la quantité de données traitées par un système dans un laps de temps donné.
    • Exemple : Le nombre de requêtes traitées par un serveur web en une seconde.
    • En savoir plus : Throughput in Computer Networks
  8. Cache
    • Définition : Composant matériel ou logiciel qui stocke des données pour éviter des requêtes futures similaires, et les servir plus rapidement.
    • Exemple : Implémenter un cache Redis pour des requêtes répétées à la base de données.
    • En savoir plus : Caching Explained
  9. Content Delivery Network (CDN)
    • Définition : Un système de serveurs géographiquement dispersés qui distribuent le contenu web en fonction de l’emplacement géographique de l’utilisateur.
    • Exemple : Utiliser Cloudflare CDN pour accélérer le chargement des pages web.
    • En savoir plus : What is a CDN?
  10. REST API
    • Définition : Un style architectural conçu pour créer des services web où les données sont accessibles et manipulées via des requêtes HTTP.
    • Exemple : Concevoir une API pour les réseaux sociaux en suivant les principes de REST (Representational State Transfer).
    • En savoir plus : REST API Tutorial
  11. GraphQL
    • Définition : Un langage conçu pour interroger des données, plus puissant et flexible que REST.
    • Exemple : Utiliser GraphQL pour récupérer des informations d’utilisateur en une seule requête.
    • En savoir plus : GraphQL Introduction
  12. ACID
    • Définition : Un ensemble de propriétés garantissant le traitement fiable des transactions de base de données : Atomicity, Consistency, Isolation, Durability.
    • Exemple : Garantir que les transactions bancaires respectent les propriétés ACID pour éviter les données corrompues.
    • En savoir plus : ACID Properties in Databases
  13. BASE
    • Définition : Une alternative à ACID qui favorise la disponibilité et la tolérance aux partitions par rapport à une stricte cohérence. Système Basically Available, Soft state, Eventually consistent.
    • Exemple : Conception d’une base de données NoSQL hautement disponible et éventuellement cohérente.
    • En savoir plus : BASE vs ACID
  14. NoSQL
    • Définition : Un type de base de données conçu pour le stockage et la récupération de données modélisées autrement que dans les relations tabulaires des bases relationnelles.
    • Exemple : Utiliser MongoDB pour un stockage de données basé sur des documents.
    • En savoir plus : What is a NoSQL Database?
  15. SQL
    • Définition : Le langage standard utilisé pour stocker, manipuler et récupérer des données dans les bases de données relationnelles.
    • Exemple : Écrire des requêtes SQL pour récupérer des données depuis une base de données relationnelle.
    • En savoir plus : SQL Tutorial
  1. Database Indexing
  • Définition : Une technique de structure de données permettant de rechercher et d’accéder rapidement aux données d’une base de données.
  • Exemple : Créer un index sur la colonne User ID pour accélérer la recherche.
  • En savoir plus : Database Indexing
  1. Replication
  • Définition : Processus de copie et de maintien des objets de base de données dans plusieurs bases faisant partie d’un système de base de données distribuée.
  • Exemple : Permettre à une base de données d’être disponible dans différentes régions géographiques via la replication.
  • En savoir plus : Database Replication
  1. Failover
  • Définition : Un mode opérationnel de secours dans lequel les fonctions d’un composant système sont reprises par d’autres composants en cas de perte du composant principal.
  • Exemple : Mettre en place des failovers automatiques vers des serveurs de secours en cas de panne de votre serveur principal.
  • En savoir plus : Failover vs Disaster Recovery
  1. API Gateway
  • Définition : Un serveur qui se place en amont des API, recevant les requêtes, appliquant des règles de sécurité, et les transmettant aux services de backend.
  • Exemple : Utiliser AWS API Gateway pour gérer les API.
  • En savoir plus : What is an API Gateway?
  1. Service Mesh
  • Définition : Une couche d’infrastructure dédiée qui facilite la communication de service à service entre les microservices.
  • Exemple : Intégrer Istio comme service mesh pour gérer les interactions entre microservices.
  • En savoir plus : Introduction to Service Mesh
  1. Serverless Computing
  • Définition : Une implémentation de cloud computing permettant une allocation dynamique des ressources par le fournisseur cloud.
  • Exemple : Exécuter du code backend sans provisioning de serveur via AWS Lambda.
  • En savoir plus : What is Serverless Computing?
  1. Event-Driven Architecture
  • Définition : Un paradigme d’architecture logicielle favorisant la génération, la détection, la consommation et la réaction aux événements.
  • Exemple : Concevoir un système de communication par événements entre microservices avec Apache Kafka.
  • En savoir plus : Event-Driven Architecture
  1. Monolithic Architecture
  • Définition : Une architecture logicielle où tous les éléments sont regroupés dans une seule application exécutée en tant qu’unité unique.
  • Exemple : Les anciennes applications d’entreprise traditionnelles construites comme une unité monolithique.
  • En savoir plus : Monolithic vs Microservices Architecture
  1. Distributed Systems
  • Définition : Un modèle où des composants situés sur des ordinateurs en réseau communiquent entre eux et coordonnent leurs actions en envoyant des messages.
  • Exemple : Concevoir un système de fichiers distribué comme Hadoop.
  • En savoir plus : Introduction to Distributed Systems
  1. Message Queue
  • Définition : Une méthode permettant une communication asynchrone de service à service dans les architectures serverless et microservices.
  • Exemple : Utiliser RabbitMQ pour mettre en file d’attente des messages entre services.
  • En savoir plus : Message Queues Explained
  1. Pub/Sub Model
  • Définition : Un modèle de messagerie où les expéditeurs (publishers) publient des messages de manière abstraite et où ces messages peuvent être reçus par des destinataires (subscribers) sans que l’expéditeur connaisse leur identité.
  • Exemple : Un système de notifications utilisant Google Cloud Pub/Sub.
  • En savoir plus : Pub/Sub Messaging
  1. Data Partitioning
  • Définition : La division d’une base de données en parties plus petites et gérables.
  • Exemple : Partitionner une table de base de données par date pour accélérer l’exécution des requêtes.
  • En savoir plus : Database Partitioning
  1. Horizontal Scaling
  • Définition : Augmenter la capacité en ajoutant plus de machines ou nœuds dans un système.
  • Exemple : Ajouter des serveurs web supplémentaires pour gérer un volume croissant de trafic utilisateur.
  • En savoir plus : Horizontal vs Vertical Scaling
  1. Vertical Scaling
  • Définition : Mettre à niveau une machine existante en ajoutant plus de puissance (CPU, RAM).
  • Exemple : Augmenter la RAM d’un serveur pour qu’il puisse traiter plus de requêtes simultanément.
  • En savoir plus : Horizontal vs Vertical Scaling
  1. Rate Limiting
  • Définition : Contrôler le débit de trafic envoyé ou reçu par un contrôleur d’interface réseau.
  • Exemple : Limiter une API pour éviter les abus en réduisant le nombre de requêtes par minute.
  • En savoir plus : Understanding Rate Limiting
  1. Circuit Breaker Pattern
  • Définition : Un modèle de conception utilisé pour détecter les échecs et encapsuler la logique pour empêcher qu’un échec ne se répète constamment.
  • Exemple : Gérer des appels de services distants échoués à l’aide d’un circuit breaker dans une architecture microservices.
  • En savoir plus : Circuit Breaker Pattern
  1. Data Consistency
  • Définition : S’assurer que les données sont identiques sur plusieurs instances et qu’elles ne sont pas corrompues.
  • Exemple : Maintenir la consistency des données utilisateur à travers plusieurs réplicas d’une base de données.
  • En savoir plus : Data Consistency Models
  1. Eventual Consistency
  • Définition : Un modèle de consistency utilisé en informatique distribuée, où les mises à jour finissent par se propager à tous les nœuds.
  • Exemple : Amazon DynamoDB offre un modèle de eventual consistency pour les opérations de lecture.
  • En savoir plus : Eventual Consistency
  1. Strong Consistency
  • Définition : Un modèle de consistency garantissant que chaque lecture obtient la dernière écriture d’une donnée donnée.
  • Exemple : Utiliser la strong consistency dans un système de transactions financières.
  • En savoir plus : Strong Consistency
  1. Containerization
  • Définition : L’encapsulation d’une application et de ses dépendances dans un conteneur pouvant être exécuté dans n’importe quel environnement informatique.
  • Exemple : Utiliser Docker pour containerizer des applications et les déployer dans divers environnements tels que dev, test, prod.
  • En savoir plus : What is Containerization?
  1. Kubernetes
  • Définition : Une plateforme open-source qui automatise le déploiement, le scaling et le fonctionnement des applications en conteneur.
  • Exemple : Déployer et gérer des applications en conteneur avec Kubernetes.
  • En savoir plus : Kubernetes Documentation
  1. Autoscaling
  • Définition : Ajuster automatiquement le nombre de ressources informatiques en fonction de la charge des utilisateurs.
  • Exemple : Utiliser la fonction Auto Scaling d’AWS EC2 pour ajuster dynamiquement le nombre d’instances selon la demande.
  • En savoir plus : Auto Scaling Explained
  1. Multi-Tenancy
  • Définition : Une architecture où une seule instance d’une application logicielle sert plusieurs consommateurs ou clients.
  • Exemple : Les applications SaaS, telles que Salesforce, utilisent la multi-tenancy pour servir leurs différents types de clients.
  • En savoir plus : Single Tenancy vs Multi-Tenancy
  1. Load Shedding
  • Définition : Réduire certaines demandes ou dégrader les services pour maintenir la santé globale du système en cas de forte charge.
  • Exemple : Désactiver tous les services non essentiels pendant les périodes de trafic de pointe.
  • En savoir plus : Load Shedding
  1. Idempotence
  • Définition : Une propriété d’opérations en mathématiques et en informatique garantissant que leur résultat reste le même si elles sont répétées plusieurs fois.
  • Exemple : Une requête HTTP DELETE est idempotente.
  • En savoir plus : Idempotence in APIs
  1. Quorum
  • Définition : Le nombre minimum de votes nécessaires pour valider une transaction distribuée.
  • Exemple : La quorum-based replication garantit que la consistency existe dans la base de données distribuée.
  • En savoir plus : Quorum Systems
  1. Orchestration
  • Définition : Un modèle d’interaction de services où un coordinateur central contrôle l’interaction entre les services.
  • Exemple : Utiliser un moteur de workflow pour gérer un processus métier multi-étapes.
  • En savoir plus : Orchestration
  1. Choreography
  • Définition : Un modèle d’interaction de services dans lequel chaque service est autonome et interagit avec d’autres via des événements, sans coordinateur central.
  • Exemple : Des microservices communiquant via un bus d’événements selon le modèle de choreography.
  • En savoir plus : Choreography vs Orchestration
  1. Service Registry
  • Définition : Une base de données qui suit les instances de microservices.
  • Exemple : Utiliser le service registry d’Eureka dans une architecture microservices.
  • En savoir plus : Service Registry and Discovery
  1. API Rate Limiting
  • Définition : Contrôler combien de requêtes un client peut faire à une API dans un laps de temps donné.
  • Exemple : Limiter les requêtes à une API à 100 par minute pour éviter les abus.
  • En savoir plus : API Rate Limiting
  1. Data Warehouse
  • Définition : Un système qui aide à la génération de rapports et à l’analyse des données métiers ; le cœur de la Business Intelligence.
  • Exemple : Amazon Redshift peut être utilisé pour la mise en œuvre d’un data warehouse.
  • En savoir plus : Understanding Data Warehouse
  1. Data Lake
  • Définition : Un système ou dépôt où les données sont conservées dans leur format natif ou brut, généralement sous forme de fichiers ou de blobs d’objets.
  • Exemple : Stockage à l’échelle de plusieurs pétaoctets pour gérer des données structurées et non structurées dans un data lake.
  • En savoir plus : Data Lake
  1. OLAP
  • Définition : Online Analytical Processing : Une catégorie de logiciels permettant l’analyse des données stockées dans une base de données.
  • Exemple : Utilisation de OLAP cubes pour effectuer des analyses pointues et des requêtes arbitraires.
  • En savoir plus : OLAP Explained
  1. OLTP
  • Définition : Online Transaction Processing : une catégorie de systèmes qui gèrent des applications transactionnelles.
  • Exemple : Utiliser des systèmes OLTP pour la gestion des transactions, comme dans les systèmes bancaires.
  • En savoir plus : OLTP Explained
  1. Big Data
  • Définition : Ensemble de données volumineux et complexes qui ne peuvent pas être gérés efficacement par des logiciels de traitement de données traditionnels.
  • Exemple : Analyser les interactions sur les réseaux sociaux pour prédire les tendances de la mode.
  • En savoir plus : Introduction to Big Data

Leave a comment

Your email address will not be published. Required fields are marked *