Dans cet article approfondi, nous explorons les concepts fondamentaux de l’architecture système, les notions clés en informatique et les modèles d’architecture à travers des exemples concrets.
Différence entre Processus et Thread : Un Essentiel pour les Entretiens
Table of Contents
- Architecture Système et Concepts Clés en Informatique
Comprendre la différence entre processus et threads est indispensable pour tout ingénieur backend ou système.
Un program est simplement un ensemble passif d’instructions sur le disque.
Un processus est un programme en action, chargé en mémoire avec ses propres ressources (pile, registres, etc.).
Un thread est la plus petite unité d’exécution, s’exécutant au sein d’un processus. Plusieurs threads peuvent partager la mémoire et les ressources.
Principales différences :
Les processus sont isolés, tandis que les threads s’exécutent dans le même espace mémoire.
La commutation de contexte est plus lourde pour les processus que pour les threads.
Les threads permettent une communication plus rapide,mais nécessitent une synchronisation minutieuse.
La création de processus est gourmande en ressources,les threads sont plus légers.
Étude de Cas : Concevoir Twitter
Inspiré d’une présentation technique de Twitter datant de 2013, voici comment un tweet voyage à travers l’architecture de Twitter :
Le Cycle de Vie d’un Tweet
- Le tweet arrive via l’API d’écriture.
- Il est routé vers le service Fan.
- Il est stocké et traité dans le cache Redis.
- Le service Timeline localise le shard Redis pertinent.
- L’utilisateur récupère la timeline via le service Timeline.
Recherche et Découverte
Bunch : Tokenise les tweets pour l’indexation.
Earlybird : stocke l’index consultable.
Blender : Construit les timelines de recherche et de découverte.
Push Compute
HTTP Push
Mobile Push
Remarque : Basé sur l’architecture de Twitter de 2013, mais toujours pertinent pour comprendre les backends de médias sociaux évolutifs.
Choisir la Bonne Base de Données : Un Guide Visuel
Les bases de données ne sont pas universelles.Il est crucial de choisir la base de données adaptée à la charge de travail :
Types courants :
Relationnelle (SQL) : Idéale pour les données structurées et la conformité ACID.
Clé-Valeur / En Mémoire : Priorité à la vitesse (ex : Redis).
Série Temporelle : Optimisée pour les données horodatées.
Document / JSON : Schéma flexible (ex : MongoDB).
Graphe : Optimale pour les relations (ex : Neo4j).
Blob / Recherche textuelle / Géospatiale / Ledger : Besoins spécialisés.
Générateur d’ID Uniques : Indispensable pour les Systèmes Évolutifs
Les systèmes à grande échelle comme Facebook, Twitter et LinkedIn ont besoin d’ID uniques qui répondent à des exigences strictes :
Globalement unique
Plus ou moins trié par ordre chronologique
Uniquement numérique
64 bits
* Faible latence et évolutif
Considérez cela comme l’épine dorsale des ID de tweets, des ID de posts, des ID d’utilisateurs. Les détails de l’implémentation varient, mais l’objectif reste le même : une identité rapide, distribuée et sans conflit.
Architecture Système et Concepts Clés en Informatique
Différence entre Processus et Thread : Un essentiel pour les Entretiens
Comprendre la différence entre processus et threads est indispensable pour tout ingénieur backend ou système.
Un program est simplement un ensemble passif d’instructions sur le disque.
Un processus est un programme en action, chargé en mémoire avec ses propres ressources (pile, registres, etc.).
Un thread est la plus petite unité d’exécution, s’exécutant au sein d’un processus. plusieurs threads peuvent partager la mémoire et les ressources.
Principales différences :
Les processus sont isolés, tandis que les threads s’exécutent dans le même espace mémoire.
La commutation de contexte est plus lourde pour les processus que pour les threads.
Les threads permettent une dialog plus rapide, mais nécessitent une synchronisation minutieuse.
La création de processus est gourmande en ressources, les threads sont plus légers.
Étude de cas : Concevoir Twitter
Inspiré d’une présentation technique de Twitter datant de 2013,voici comment un tweet voyage à travers l’architecture de Twitter :
Le cycle de vie d’un Tweet
- Le tweet arrive via l’API d’écriture.
- Il est routé vers le service Fan.
- il est stocké et traité dans le cache Redis.
- Le service Timeline localise le shard Redis pertinent.
- L’utilisateur récupère la timeline via le service Timeline.
Recherche et Découverte
Bunch : Tokenise les tweets pour l’indexation.
earlybird : stocke l’index consultable.
Blender : Construit les timelines de recherche et de découverte.
Push Compute
HTTP Push
Mobile Push
Remarque : Basé sur l’architecture de Twitter de 2013, mais toujours pertinent pour comprendre les backends de médias sociaux évolutifs.
Choisir la Bonne Base de Données : Un Guide Visuel
Les bases de données ne sont pas universelles. Il est crucial de choisir la base de données adaptée à la charge de travail :
Types courants :
Relationnelle (SQL) : Idéale pour les données structurées et la conformité ACID.
Clé-Valeur / En Mémoire : Priorité à la vitesse (ex : Redis).
Série temporelle : Optimisée pour les données horodatées.
Document / JSON : Schéma flexible (ex : MongoDB).
Graphe : Optimale pour les relations (ex : Neo4j).
Blob / Recherche textuelle / Géospatiale / Ledger : Besoins spécialisés.
Générateur d’ID Uniques : Indispensable pour les Systèmes Évolutifs
Les systèmes à grande échelle comme Facebook, Twitter et LinkedIn ont besoin d’ID uniques qui répondent à des exigences strictes :
Globalement unique
Plus ou moins trié par ordre chronologique
Uniquement numérique
64 bits
* Faible latence et évolutif
Considérez cela comme l’épine dorsale des ID de tweets, des ID de posts, des ID d’utilisateurs. Les détails de l’implémentation varient, mais l’objectif reste le même : une identité rapide, distribuée et sans conflit.
FAQ
Qu’est-ce qu’un processus ?
Un programme en exécution avec ses propres ressources.
Qu’est-ce qu’un thread ?
La plus petite unité d’exécution au sein d’un processus.
Quelle est la différence principale entre processus et thread ?
Les processus sont isolés, les threads partagent l’espace mémoire.
Pourquoi utiliser Redis dans l’architecture de Twitter ?
Pour le caching rapide, permettant de stocker et de retrouver les données.
Quels sont les critères importants pour un générateur d’ID unique ?
globalement unique,trié chronologiquement,numérique,64 bits,faible latence,évolutif.
Comparaison des Types de Bases de Données
| Type de Base de Données | Idéal pour | Exemples |
| :———————– | :——————————————– | :———— |
| Relationnelle (SQL) | Données structurées, conformité ACID | |
| Clé-Valeur / En Mémoire | Vitesse | Redis |
| Série Temporelle | Données horodatées | |
| Document / JSON | Schéma flexible | MongoDB |
| Graphe | Relations | Neo4j |
| Autres | Besoins spécialisés (Blob, recherche, etc.) | |