REL 4: Comment concevez-vous des interactions dans un système distribué pour éviter les défaillances ?

Les systèmes distribués s'appuient sur des réseaux de communication pour interconnecter des composants comme des serveurs ou des services. Votre charge de travail doit fonctionner de manière fiable malgré la perte de données ou la latence dans ces réseaux. Les composants du système distribué doivent fonctionner d'une manière qui n'a pas d'impact négatif sur les autres composants ou la charge de travail. Ces bonnes pratiques empêchent les défaillances et améliorent le temps moyen entre les défaillances (MTBF).

Ressources

AWS re:Invent 2019: Moving to event-driven architectures (SVS308)
AWS re:Invent 2018: Close Loops and Opening Minds: How to Take Control of Systems, Big and Small ARC337 (includes loose coupling, constant work, static stability)
AWS New York Summit 2019: Intro to Event-driven Architectures and Amazon EventBridge (MAD205)
What Is Amazon EventBridge?
What Is Amazon Simple Queue Service?
Amazon EC2: Ensuring Idempotency
The Amazon Builders' Library: Challenges with distributed systems

Bonnes pratiques:

Plan d'amélioration

Identifier le type de système distribué requis

  • Identifier le type de système distribué requis: Les défis posés par les systèmes distribués sont la latence, la mise à l'échelle, la compréhension des API de réseau, le regroupement et le dégroupement des données et la complexité des algorithmes tels que Paxos. Des cas jadis marginaux et théoriques deviennent monnaie courante au fur et à mesure que les systèmes devenaient de plus en plus grands et distribués.
    The Amazon Builders' Library: Challenges with distributed systems
  • Implémenter des dépendances couplées faiblement

  • Implémenter des dépendances couplées faiblement: Des dépendances telles que des systèmes de file d'attente, des systèmes de streaming, des flux de travail et des équilibreurs de charge sont couplées faiblement. Le couplage souple permet d'isoler le comportement d'un composant des autres composants qui en dépendent, ce qui augmente la résilience et l'agilité.
    AWS re:Invent 2019: Moving to event-driven architectures (SVS308)
    What Is Amazon EventBridge?
    What Is Amazon Simple Queue Service?
  • Rendre toutes les réponses idempotentes

  • Rendre toutes les réponses idempotentes: Un service idempotent promet que chaque demande est traitée une seule fois et exactement de la même façon, de sorte que l'exécution de plusieurs demandes identiques ait le même effet qu'une seule demande.
  • Effectuer un travail constant

  • Effectuer un travail constant: Les systèmes peuvent échouer en cas de modifications importantes et rapides de charge.
    AWS re:Invent 2018: Close Loops and Opening Minds: How to Take Control of Systems, Big and Small ARC337 (includes constant work)