Définition
Un système distribué, également connu sous le nom d’informatique distribuée, est un système avec plusieurs composants situés sur différentes machines qui communiquent et coordonnent les actions afin d’apparaître comme un seul système cohérent à l’utilisateur final.
Vue d’ensemble
Les machines qui font partie d’un système distribué peuvent être des ordinateurs, des serveurs physiques, des machines virtuelles, des conteneurs ou tout autre nœud qui peut se connecter au réseau, disposer d’une mémoire locale et communiquer en passant des messages.
Les systèmes distribués fonctionnent de deux façons générales :
- Chaque machine travaille vers un objectif commun et l’utilisateur final voit les résultats comme une unité cohérente.
- Chaque machine a son propre utilisateur final et le système distribué facilite le partage des ressources ou des services de communication.
Bien que les systèmes distribués puissent parfois être obscurs, ils présentent généralement trois caractéristiques principales : tous les composants fonctionnent simultanément, il n’y a pas d’horloge globale et tous les composants tombent en panne indépendamment les uns des autres.
Avantages et défis des systèmes distribués
Il y a trois raisons pour lesquelles les équipes décident généralement de mettre en œuvre des systèmes distribués :
- Évolutivité horizontale-Puisque le calcul se produit indépendamment sur chaque nœud, il est facile et généralement peu coûteux d’ajouter des nœuds et des fonctionnalités supplémentaires si nécessaire.
- Fiabilité-La plupart des systèmes distribués sont tolérants aux pannes car ils peuvent être constitués de centaines de nœuds qui travaillent ensemble. Le système ne subit généralement pas de perturbations si une seule machine tombe en panne.
- Performance-Les systèmes distribués sont extrêmement efficaces car les charges de travail peuvent être fractionnées et envoyées à plusieurs machines.
Cependant, les systèmes distribués ne sont pas sans défis. Les processus complexes de conception architecturale, de construction et de débogage qui sont nécessaires pour créer un système distribué efficace peuvent être écrasants.
Trois autres défis que vous pouvez rencontrer comprennent :
- L’ordonnancement-Un système distribué doit décider quels travaux doivent être exécutés, quand ils doivent l’être et où ils doivent l’être. Les ordonnanceurs ont finalement des limites, ce qui conduit à une sous-utilisation du matériel et à des durées d’exécution imprévisibles.
- La latence- Plus votre système est largement distribué, plus vous pouvez subir de latence avec les communications. Cela conduit souvent les équipes à faire des compromis entre la disponibilité, la cohérence et la latence.
- Observabilité-Collecter, traiter, présenter et surveiller les métriques d’utilisation du matériel pour les grands clusters est un défi important.
Comment fonctionne un système distribué
Des architectures matérielles et logicielles sont utilisées pour maintenir un système distribué. Tout doit être interconnecté – les processeurs via le réseau et les processus via le système de communication.
Types de systèmes distribués
Les systèmes distribués relèvent généralement de l’un des quatre différents modèles d’architecture de base :
- Client-serveur – Les clients contactent le serveur pour obtenir des données, puis les formatent et les affichent à l’utilisateur final. L’utilisateur final peut également effectuer une modification depuis le côté client et la renvoyer au serveur pour la rendre permanente.
- Trois niveaux-Les informations relatives au client sont stockées dans un niveau intermédiaire plutôt que sur le client afin de simplifier le déploiement de l’application. Ce modèle d’architecture est le plus courant pour les applications Web.
- N-tier-Généralement utilisé lorsqu’une application ou un serveur doit transmettre des demandes à des services d’entreprise supplémentaires sur le réseau.
- Peer-to-peer-Il n’y a pas de machines supplémentaires utilisées pour fournir des services ou gérer des ressources. Les responsabilités sont uniformément réparties entre les machines du système, appelées pairs, qui peuvent servir de client ou de serveur.
Exemple de système distribué
Les systèmes distribués ont des cas d’utilisation infinis, dont quelques-uns sont les systèmes bancaires électroniques, les jeux en ligne massivement multijoueurs et les réseaux de capteurs.
StackPath utilise un système distribué particulièrement vaste pour alimenter son service de réseau de diffusion de contenu. Chacun de nos points de présence (PoP) possède des nœuds qui forment un système distribué mondial. Et pour fournir une diffusion de contenu de premier ordre, StackPath stocke le contenu le plus récent et le plus fréquemment demandé dans les emplacements de bordure les plus proches de l’endroit où il est utilisé.
Systèmes distribués de bordure
Avec les services de calcul de bordure, les machines virtuelles et les conteneurs de StackPath, les utilisateurs peuvent créer leurs propres systèmes distribués. En interconnectant les VM et les conteneurs, tout en tirant parti de la vitesse et de l’agilité que procure l’informatique en périphérie, votre système peut gérer des milliers de requêtes simultanées à la vitesse de l’éclair.
Principaux enseignements
- Les systèmes distribués peuvent être constitués de toute machine capable de se connecter à un réseau, de disposer d’une mémoire locale et de communiquer en passant des messages.
- En répartissant les demandes et les charges de travail, les systèmes distribués peuvent prendre en charge beaucoup plus de demandes et de tâches de calcul qu’un système unique standard.
- Vous pouvez créer votre propre système distribué à la vitesse de l’éclair en interconnectant les conteneurs et les machines virtuelles de edge computing de StackPath.