Découvrez de nombreuses nouveautés à l'occasion de notre lancement du 2e trimestre 2023 : moteur Kora Engine, règles de qualité des données, et bien plus encore | S'inscrire pour une démo
Les systèmes distribués (on parle également d’informatique distribuée) sont un ensemble de composants indépendants, répartis sur différents environnements, qui communiquent entre eux afin de fonctionner comme une seule et même unité.
Le but de cette présentation est de vous familiariser, à l'aide d'exemples concrets, avec les systèmes distribués : leur architecture de base, leurs avantages et leurs inconvénients, et les solutions les plus utilisées en matière de messagerie/streaming distribué(e).
Fondé par les créateurs d’Apache Kafka, Confluent est une plateforme de streaming de données capable de prendre en charge l’intégration des données, le traitement de flux et l’analyse en temps réel à partir de plus de 120 sources de données.
Également appelés informatique distribuée ou bases de données distribuées, les systèmes distribués sont des ensembles de composants indépendants répartis sur différents environnements qui échangent des messages entre eux afin d’atteindre des objectifs communs.
Ils apparaissent comme une seule interface ou un seul ordinateur pour l’utilisateur final. Le but est que le système puisse exploiter au mieux les ressources et les informations tout en limitant les dysfonctionnements puisque, si l’un des composants tombe en panne, la disponibilité du service n’en sera pas affectée.
Aujourd’hui, les données sont plus distribuées que jamais et les applications modernes ne fonctionnent plus de manière isolée. La grande majorité des produits et des applications reposent sur des systèmes distribués.
The most important functions of distributed computing are:
Modern distributed systems have evolved to include autonomous processes that might run on the same physical machine, but interact by exchanging messages with each other.
Networks
The earliest example of a distributed system happened in the 1970s when ethernet was invented and LAN (local area networks) were created. For the first time computers would be able to send messages to other systems with a local IP address. Peer-to-peer networks evolved and e-mail and then the Internet as we know it continue to be the biggest, ever growing example of distributed systems. As the internet changed from IPv4 to IPv6, distributed systems have evolved from “LAN” based to “Internet” based.
Telecommunication networks
Telephone and cellular networks are also examples of distributed networks. Telephone networks have been around for over a century and it started as an early example of a peer to peer network. Cellular networks are distributed networks with base stations physically distributed in areas called cells. As telephone networks have evolved to VOIP (voice over IP), it continues to grow in complexity as a distributed network.
Distributed Real-time Systems
Many industries use real-time systems that are distributed locally and globally. Airlines use flight control systems, Uber and Lyft use dispatch systems, manufacturing plants use automation control systems, logistics and e-commerce companies use real-time tracking systems.
Parallel Processing
There used to be a distinction between parallel computing and distributed systems. Parallel computing was focused on how to run software on multiple threads or processors that accessed the same data and memory. Distributed systems meant separate machines with their own processors and memory. With the rise of modern operating systems, processors and cloud services these days, distributed computing also encompasses parallel processing.
Distributed artificial intelligence
Distributed Artificial Intelligence is a way to use large scale computing power and parallel processing to learn and process very large data sets using multi-agents.
Distributed Database Systems
A distributed database is a database that is located over multiple servers and/or physical locations. The data can either be replicated or duplicated across systems.
Most popular applications use a distributed database and need to be aware of the homogenous or heterogenous nature of the distributed database system.
A homogenous distributed database means that each system has the same database management system and data model. They are easier to manage and scale performance by adding new nodes and locations.
Heterogenous distributed databases allow for multiple data models, different database management systems. Gateways are used to translate the data between nodes and usually happen as a result of merging applications and systems.
Les systèmes distribués doivent disposer d’un réseau qui relie tous les composants (machines, équipements ou logiciels) afin qu’ils puissent transférer des messages pour communiquer les uns avec les autres.
Pour mieux comprendre ce phénomène, examinons les différents types d’architectures distribuées, ainsi que leurs avantages et leurs inconvénients.
Distributed applications and processes typically use one of four architecture types below:
Client-server:
In the early days, distributed systems architecture consisted of a server as a shared resource like a printer, database, or a web server. It had multiple clients (for example, users behind computers) that decide when to use the shared resource, how to use and display it, change data, and send it back to the server. Code repositories like git is a good example where the intelligence is placed on the developers committing the changes to the code.
Today, distributed systems architecture has evolved with web applications into:
L’objectif d’un système distribué est de renforcer l'évolutivité, les performances et la disponibilité des applications.
Ses principaux avantages sont les suivants :
En matière d'ingénierie, toute décision implique des compromis. La complexité est le principal inconvénient des systèmes distribués. Ils impliquent en effet plus de machines, plus de messages, une plus grande quantité de données transmises entre de nombreuses parties, ce qui entraîne des problèmes :
pouvoir synchroniser l’ordre des modifications de données et des états de l’application dans un système distribué est un véritable défi, en particulier lorsque des nœuds démarrent, s’arrêtent ou tombent en panne.
les messages peuvent ne pas être transmis aux bons nœuds ou être transmis mais dans un ordre incorrect, ce qui entraîne une rupture de la communication et du fonctionnement du système.
il est souvent nécessaire d’ajouter des fonctions de veille, de surveillance, d'enregistrement et d’équilibrage de charge pour avoir une meilleure visibilité sur le fonctionnement et les défaillances des systèmes distribués.
Confluent est la seule plateforme de streaming de données compatible avec tous les environnements cloud, qu'ils soient on prem ou hybrides. Connectez plus de 120 sources de données avec une évolutivité, une sécurité et une simplicité d'intégration de niveau professionnel, afin de disposer d'une visibilité en temps réel sur tous vos systèmes distribués.
*Essai gratuit de 30 jours sans avoir à fournir vos informations de carte bancaire !