L'architecture de Moneway ? C'est par ici!

#1

Notre architecture est composée de micro-services, ce qui nous permet d’avoir une infrastructure plus flexible et adaptable aux nouvelles fonctionnalités demandées par notre communauté. Pour simplifier, au lieu d’avoir un grand serveur monolithique, nous avons une multitude de petits serveurs qui communiquent entre eux.

Focus sur notre architecture en micro-services

Les micro-services nous permettent de rompre définitivement avec les infrastructures monolithiques (se composant d’un seul bloc) qui rendent la modification et l’ajout de fonctionnalités compliqués.

En effet, dans le premier cas, la mise à jour d’un composant demande de mettre à jour plusieurs parties du programme, et de le redéployer dans son intégralité ! Tandis qu’avec une architecture en micro-services, chaque module peut être modifié sans que cela n’ait de répercussion sur les autres.

Sachant que nous utilisons le lean startup, l’utilisation des micro-services est donc bien plus adaptée pour Moneway. En effet, cela facilite les modifications au sein de notre application.

Une structure polyglotte

En raison de l’isolement et de l’indépendance des micro-services, les services peuvent être développés en plusieurs langages de programmation. Cela nous donne donc la possibilité d’utiliser le bon outil dans le bon contexte.

Une meilleure réactivité en cas de panne

Développer une application oblige à prévoir des défaillances au sein d’un service. Dans le cas d’une architecture en micro-services, les composants sont plus légers, il est ainsi plus évident d’identifier la source d’une erreur, de la corriger et de relancer le service. Étant en version Bêta, nous devons être très réactifs et rapides lorsque des utilisateurs nous soulignent des problèmes.

Des services Cloud en complément des micro-services

Cette architecture peut être complétée par des services Cloud. Cela est utile si vous créez des événements. En effet, des fonctionnalités telles que AWS Lambda permettent notamment à nos développeurs de créer du code qui se déclenche au moment d’un événement.

À chaque fois que nous faisons un choix technique, nous nous demandons en quoi ce choix améliorera l’expérience de nos utilisateurs : même si cette technologie est plus compliquée qu’une autre, nous savons qu’elle est avant tout plus performante (pour gagner ne serait-ce que quelques ms). L’objectif étant d’apporter le plus de satisfaction possible à nos utilisateurs ! :upside_down_face: