Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Microservice ou pas ?

0 votes

Nous entendons beaucoup parler des microservices afin d'être plus flexible et supporter la montée en charge, ce mode de déploiement a été pris par pas mal de startup mais je ne trouve pas beaucoup d'information ( ou documentation) sur le sujet.
Je voudrais avoir un exemple d'une infrastructure orienté microservice avec le framework Django pour un site type E-commerce.

Et savoir également, si les microservices en une réelle utilité pour commencer un nouveau projet de par votre expérience ?

demandé 15-Mai-2016 par gwest (104 points)

Question interessante. Mais ne correspondant pas a une requete valide sur IndexError. Tu dois poser une seule question dans le but de resoudre un probleme bien défini. En attendant, voici (a mon avis) un excellent article sur le sujet

pour echanger sur des sujets qui ne sont pas liés à des problèmes il y a reddit de sametmax

pour compléter un poil plus, micro service sont des pseudo ESB (entreprise Service Bus https://fr.wikipedia.org/wiki/Enterprise_Service_Bus ) orchestrant des SOA (Software Oriented Architecture https://en.wikipedia.org/wiki/Service-oriented_architecture ).

Un ESB fait se parler des services entre eux, ou route ces derniers vers des services externes.

Chaque "service" SOA fait une tâche, par exemple produire des pdf à partir de XML, envoyer des factures à un prestataire, ne gérer que l'auth et j'en passe

Je me suis inspiré de tout cela pour faire ca https://github.com/foxmask/django-th avec django

Effectivement je commence à comprend le principe. Mon idée aurait été de faire des microservices avec Crossbar.io + Django.
En gros, voici mon idée de microservices:
- Authentifications
- Moteur de recherche
- Notifications
- Produits (Le catalogue)
- Commandes (Gestion du panier)
- Etc ...

Mais ma grosse interrogation est le partage de donnée entre mes différents microservices par exemple entre le service moteur de recherche et le service Produits. (Mon exemple n'est peut-être pas le meilleur)

Je pense que ce dépôt pourrait m'aider: https://github.com/hdknr/crosschat

Les microservices sont plus petits qu'une "gestion de produits" facture etc...
C'est plutot pour l'authentification dont tu parlais.
Pour le partage des données il faut ré regarder comment ça se fait avec crossbar voire venir sur sur irc.freenode.net#autobahn pour avoir une explication avec son auteur;)

Ou encore https://zestedesavoir.com/tutoriels/925/introduction-au-protocole-wamp-1/

1 Réponse

0 votes

Salut,

Si tu veux un exemple avec Django, imagine par exemple que ton système d'authentification est décentralisé, il s'agit d'une brique à part entière tournant sur un serveur différent de celui de ton site et accessible par exemple en HTTP REST ou SOAP (ce que préconise les microservices).

Lorsqu'un de tes utilisateurs va vouloir s'authentifier ton serveur Django va alors envoyé une requête à ta brique d'authentification, qui lui renverra alors ok/ko.

Je ne pense pas que l'authentification soit le meilleur exemple étant donné qu'il existe bon nombre de techno permettant déjà cela et sans être taggé de microservices (ldap, etc...).

Tu peux également prendre l'exemple d'un système servant à redimensionner les images posté par tes utilisateurs.

Ceux-ci envoie une image sur ton instance Django, cette dernière va alors appelé une brique spécialisé sur un autre serveur X ou Y qui ne fera que ça (redimensionner des images). Hors cette brique est également utilisable par d'autres sites web.

Une brique est autonome, ne sert qu'a une seule chose, est réutilisable à souhait, elle communique au travers du réseau. A noter que je pense que des technos genre crossbar.io ou wamp peuvent également servir à communiquer entre briques mais niveau spécifications ce ne fait pas partie des bonnes pratiques (à confirmer si d'autres personnes maitrises mieux le sujet).

Je pense qu'une architecture par microservice est une bonne chose (c'est mon point de vue), en effet contrairement aux archi monolithiques, lorsque tu modifies le code source d'un service, cela n'a quasiment pas d'impact sur les autres services (effet bobine de laine, tu tires d'un coté et tu as tout qui vient avec).

Perso je ne l'ai jamais réellement mis en œuvre mais j'y penses et je cherche une idée de projet perso pour le moment...

répondu 16-Mai-2016 par Hervé
...