TD Architectures distribuées

imt

Nous nous intéressons dans ce TD à gérer de la vente de pizza à emporter. Les pizzas peuvent être retirées par les clients ou livrées.

Tip
Des mots clés en pagaille à explorer dans ce TD : vertical et horizontal scaling, architecture master/worker, architecture à micro-services, load balancing, asynchrone, queue de messages, single point of failure, séparation des préoccupations ou activités etc.

1. Configuration 1 - un simple magasin avec 1 chef

Dans cette première configuration nous considérons un seul magasin de pizzas dans lequel il y a un seul métier, celui de chef pizzaiolo.

shop1

En conservant la contrainte d’avoir un seul magasin et un seul métier, concevez un magasin qui permette :

  1. de passer à l’échelle lorsque plus de commandes sont passées par les clients,

  2. de rester ouvert lorsque l’employé tombe malade (résilience).

2. Configuration 2 - séparation des métiers

Vous pouvez désormais considérer dans votre unique magasin plusieurs métiers à savoir : chef, réceptionniste de commandes, livreur ou vendeur.

shop2

Concevez un magasin qui permette :

  1. de passer à l’échelle lorsque plus de commandes sont passées par les clients,

  2. de rester ouvert lorsque les employés tombent malades (résilience).

3. Configuration 3 - spécialisation des chefs

Nous allons maintenant considérer que nous voulons diversifier notre activité et non plus seulement faire des pizzas mais aussi des hamburgers et des beignets. Nous considérons donc 3 types de chefs différents avec chacun leurs spécialités.

shop3

Concevez un magasin qui permette :

  1. de passer à l’échelle lorsque plus de commandes sont passées par les clients, quel que soit le type de nourriture demandé,

  2. de rester ouvert lorsque les employés tombent malades (résilience).

Réfléchissez notamment à des règles de routage des commandes vers les chefs.

4. Configuration 4 - plusieurs magasins (distribution)

Nous souhaitons maintenant gérer la panne de notre magasin pour pouvoir continuer notre activité dans toutes les circonstances. Nous allons donc gérer plusieurs magasins ce qui est plus complexe même si la tolérance aux pannes est meilleure. Réfléchissez à comment gérer vos différents magasins, les employés associés, comment gérer les commandes et leur livraison, comment gérer la panne de l’un des magasins et ses commandes en cours etc.