2. Céline LOUVET
Lead developer chez Shine
Développeuse backend et architecture cloud
Recherche de stabilité et de qualité
@celine_louvet
@celine_louvet@pouet.chapril.org
https://celine.louvet.me
7. Cas
réel
Users
Centralise les infos liées à l’identité
(id, email, nom, prénom, etc.)
Appelé par quasiment tous les
services
⇒ SPOF (Single Point Of Failure)
A d’autres rôles divers (envoi d’email,
SMS etc)
29. Cas
réel
Fondamentaux
-
Traitements
synchrones
Questions qu’on peut se poser
● Que se passe-t-il si Users ne répond pas ou est surchargé ?
● Que se passe-t-il si Contracts ne répond pas ou est surchargé ?
● Que se passe-t-il si beaucoup d’utilisateurs affichent leurs photos ?
30. Cas
réel
Fondamentaux
-
Traitements
synchrones
Problèmes possibles
● Chaîne d’appels :
○ Temps de réponse cumulés ⇒ lenteur globale ressentie
○ Erreurs possibles à chaque “niveau”
○ Beaucoup d’appels ⇒ Surcharge en chaîne
● Dépendance entre les services ⇒ Déploiement d’évolutions
potentiellement complexe
72. La
théorie
Modèle
«
Message
Queuing
»
« Message Queuing » en résumé
● Consommation en « First In, First Out » ⇒ tri temporel naturel.
● En cas d’erreur de traitement, le message sera à nouveau disponible.
● En cas de trop nombreuses tentatives, le message ira en « dead
letter ».
● Un message ne peut être consommé qu’une fois.
● Un message n’est traité que si un consommateur a été défini.
73. La
théorie
Modèle
«
Message
Queuing
»
Exemples de cas fréquents d’utilisation
● Envoi d’email.
● Traitements très consommateurs en CPU.
● Traitements très longs.
● Répartition de charge entre plusieurs instances de traitement.
95. La
théorie
Modèle
«
publish
/
subscribe
»
A noter
Un statut de message par abonné au sujet
⇒ Possibilité de renvoyer un message à un abonné
en cas d’erreur.
Durée maximale de traitement définie lors de
l’abonnement
⇒ Nécessaire au bus pour estimer un timeout.
96. La
théorie
Modèle
«
publish
/
subscribe
»
« Publish / Subscribe » en résumé
● Un message peut être reçu par plusieurs abonnés.
● Utilisé pour diffuser largement un message.
● En cas d’erreur de traitement d’un abonné, le message lui sera à
nouveau transmis.
● En cas de trop nombreuses tentatives, le message peut aller en «
dead letter ».
● Un message n’est reçu que si un abonné existe.
127. La
théorie
Serverless
Pourquoi faire ça ?
Ne démarrer une ressource que quand elle devient
utile / nécessaire.
⇒ Souvent un besoin spécifique du cloud (gestion
des coûts).
130. La
théorie
Serverless
Différents types de Serverless
Function:
● 1 appel = 1 instance
● Réaction à un événement
● Traitement plus unitaire /
rapide
Container:
● 1 instance = N appels
● Traitement plus complexe /
rapide
131. La
théorie
Modèle
«
publish
/
subscribe
»
Exemples de cas d’utilisation fréquents
Function:
● Upload d’un fichier dans un
bucket
● Envoi d’un message
● Appel reçu sur un webhook
Container:
● Génération d’un PDF
● Exposition d’une API
142. Conclusion
Est-ce que vous en avez besoin ?
● Dépend du nombre d’utilisateurs ou d’appels reçus
● De la fluctuation entre pic creux et pic élevé
● Du degré de découplage recherché
● Du besoin de communication entre services