Comment concevoir l’architecture d’une plateforme de Matchmaking dans Azure ?

Temps de lecture : 6 minutes

Microsoft profile picture
Maxime Villeger

Cloud Solution Architect

Microsoft profile picture
Quentin Brasseur

Cloud solution Architect

Retour vers le futur

Certains besoins de l’Homme peuvent traverser le temps. Hier comme aujourd’hui, nous avons toutes et tous besoin de rencontrer d’autres personnes afin de nous développer socialement, de trouver du travail, ou même de développer une activité commerciale.

En revanche, l’évolution des technologies change radicalement la manière avec laquelle nous interagissons avec notre environnement. Actuellement, beaucoup de nos interactions passent par des applications, prenant ainsi le dessus sur le bouche-à-oreille que nous connaissions. Un exemple de cette évolution est la multiplication des avis utilisateur, allant même par exemple jusqu’à noter… l’océan Atlantique !

De plus, nous cherchons en permanence la meilleure expérience possible. Quoi de mieux dans ce nouveau monde que de pouvoir trouver des services, des biens, des personnes en fonction de nos centres d’intérêts et de notre position ?

L’arrivée des smartphones et du cloud ont grandement contribué au développement de ces applications. En effet, elles composent la plus grande partie de notre parc applicatif : application de rencontre, d’agrégation d’information, de covoiturage, de chauffeur privé … Ce type d’applications de mise en relation sont connues sous le nom d’applications de Matchmaking.

Vous-êtes-vous déjà demandé comment concevoir l’architecture d’une telle plateforme sur Azure ?

Replay

Vers un numérique plus durable et soutenable

Découvrez la proposition de Microsoft pour un numérique soutenable et durable traduite en 21 actions.

Visionner le replay

 

Qu’est-ce qu’une application de Matchmaking ?

Définissons tout d’abord les caractéristiques essentielles d’une application de Matchmaking :

  • Nous souhaitons pouvoir trouver des éléments correspondant à nos centres d’intérêts
  • Nous souhaitons pouvoir trouver des éléments proches de notre position

En effet, l’élément essentiel pour une application de Matchmaking est sa capacité à proposer des éléments proches de l’utilisateur en prenant en compte ses centres d’intérêts. Ces éléments peuvent être de différentes natures :

  • Des personnes (application de rencontres)
  • De l’information (application d’agrégation de contenu)
  • Des biens (application de ventes/locations de biens)

Aujourd’hui, les applications de Matchmaking peuvent répondre à tous types de besoins. Elles sont utilisées au quotidien par le grand public, par exemple pour se faire livrer son repas, trouver son logement lors d’un voyage, trouver un médecin…

Novembre 
16
2h00
Azure Apps Forum Visionner En savoir plus

Comment créer une application de Matchmaking dans Azure ?

Rappelons les différents objectifs à remplir afin de créer une application de Matchmaking :

  • Capter la position de l’utilisateur
  • Capter les centres d’intérêts de l’utilisateur
  • Créer et mettre un jour le profil d’un utilisateur
  • Stocker ses informations dans une base de données

Afin de garantir la meilleur expérience utilisateur possible, cette application devra être performante et hautement disponible.

Ces plateformes sont très utilisées grâce notamment aux évolutions technologiques de cette dernière décennie. Aujourd’hui, les smartphones ont non seulement un accès à internet, mais aussi à la position GPS de l’utilisateur, ce qui permet de proposer de nombreux services en retour. De plus, ces plateformes répondent parfaitement aux critères d’applications orientées événements.

 

L’utilisateur va communiquer avec une API App, dont le rôle est de gérer les mécanismes d’authentification et de rediriger les requêtes utilisateurs vers les bonnes fonctions.

Les Azure Functions ont-elles pour but de gérer et mettre à jour en temps réel les actions de l’utilisateur :

  • La fonction « User Management » a pour but de gérer l’utilisateur : son nom, son prénom, sa photo de profil…
  • La fonction « Center Of Interest » a pour but de renseigner les centres d’intérêts de l’utilisateur : ses goûts, ses passions…
  • La fonction « Location » a pour but de gérer la position géographique de l’utilisateur : sa latitude, sa longitude

Une base de données de type Cosmos DB permet de stocker toutes ces informations.

Novembre 
16
2h00
Azure Apps Forum Visionner En savoir plus

Qu’en est-il de la sécurité ?

Cette application traite des données utilisateurs telles que ses informations personnelles, sa position… Pour ce qui est de la donnée en elle-même, Azure offre un chiffrement des données au repos dans Cosmos DB. De plus, l’API App permet de gérer l’authentification et la vérification de l’utilisateur. Pour se faire, les clefs sont gérées au sein de l’application mobile et utilisées pour reconnaître un couple utilisateur/device.

Maintenant que la position et les centres d’intérêts de l’utilisateur sont stockées en base, il faut désormais lui faire des propositions pertinentes.

Cependant, avant de voir la suite de l’architecture, étudions une fonction essentielle au bon fonctionnement de notre application : le « Change Feed » de Cosmos DB.

Qu’est-ce que le Change Feed ?

Dans Azure Cosmos DB, il existe une fonctionnalité particulière : le Change Feed. Elle permet de lister les modifications apportées à la base elle-même. Ce mécanisme permet d’avoir accès à la liste des documents modifiés dans l’ordre chronologique des événements. Cela permet de traiter ces modifications de manières asynchrone et incrémentielle afin de faire du traitement parallèle. Le but du Change Feed est d’utiliser ces modifications afin de déclencher des actions, par exemple :

  • Déclanchement d’une notification ou d’un appel API lorsqu’un élément est inséré ou modifié (c’est ce qui va nous intéresser pour notre application)
  • Traitement du flux de données en temps réel pour des scénarios d’IoT ou d’analyse de données opérationnelles en temps réel
  • Déplacement de données via une synchronisation à un cache, ou alors l’archivage des données dans un stockage à froid

 

 

Grâce à cette fonctionnalité, nous allons pouvoir, pour chaque modification de la position de notre utilisateur, activer le mécanisme de Matchmaking. Il sera porté, tout comme la captation des données utilisateurs, par une Azure Functions.

En effet, nous allons brancher une fonction à ce Change Feed. Cette fonction est activée lorsque l’utilisateur bouge ou de manière moins régulière, lorsqu’il modifie ses centres d’intérêts. Le but de cette fonction est de mettre en relation les centres d’intérêts et la position de l’utilisateur aux éléments que nous souhaitons lui proposer (personnes, informations …).

Novembre 
16
2h00
Azure Apps Forum Visionner En savoir plus

Prenons l’exemple d’un site de rencontre

Le but d’une application de rencontre est de proposer un profil utilisateur à un autre utilisateur se trouvant dans la même zone géographique et partageant ses centres d’intérêts.

Regardons alors ce que devient notre application :

 

 

Le mécanisme est le suivant :

  • L’utilisateur change ses centres d’intérêts ou sa position, apportant des modifications dans la base Cosmos DB et stockées dans le Change Feed.
  • Une Azure Functions, « Find Match » est activée et propose ensuite des personnes partageant les centres d’intérêts de l’utilisateur. C’est ici que repose le cœur de l’application de Matchmaking.
  • Un Notification Hub notifie les deux utilisateurs ayant matchés.

La suite du mécanisme dépendra des interactions que vous souhaitez créer entre les utilisateurs. Pour une application de rencontre, il est possible de partager les informations des utilisateurs pour qu’ils puissent se rencontrer ou alors ouvrir un canal de messagerie entre eux.

Cependant, si nous sommes dans le cas d’une application d’agrégation d’informations, le but sera de fournir les liens des articles adaptés à la position et aux centres d’intérêts de notre utilisateur.

Rappelons-nous que l’application doit pouvoir supporter des millions d’utilisateurs. Elle repose donc sur des composants pouvant assumer sa montée en charge et sa disponibilité : Azure Functions et Cosmos DB.

Novembre 
16
2h00
Azure Apps Forum Visionner En savoir plus

En Résumé …

Les applications de Matchmaking sont multiples et variées : rencontre de personnes, agrégation d’informations, proposition de lieux de sorties … Cependant, ces dernières reposent toutes sur la même base architecturale. La valeur repose donc sur la donnée exploitée et l’algorithme de Matching.

Cette architecture événementielle repose sur différent composants et services : le Change Feed de Azure Cosmos DB et les Azure Functions.

Vous avez désormais les bases nécessaires à la conception de l’architecture d’une application de Matchmaking adaptée au Cloud.

Venez découvrir Azure et ses possibilités afin d’innover et disrupter votre marché !

Et vous, have you ever wondered… ?

Novembre 
16
2h00
Azure Apps Forum Visionner En savoir plus

Liste des produits utilisés :

  • Azure Traffic Manager: Azure Traffic Manager est un load balancer base sur le DNS permettant alors de distribuer le trafic de façon optimal et global tout en gardant la haute disponibilité et les performances.
  • Azure Functions: Azure Functions est une solution serverless pour faire tourner de petite partie de code, ou fonctions, dans le cloud.
  • Azure Cosmos DB: Azure Cosmos DB est le service de base de données multimodale ayant une distribution mondiale.
  • Azure Mobile App: Azure Mobile App est un service manager offrant aux développeurs et aux intégrateurs systèmes une plateforme de développement d’application mobile.
  • Azure API App: permet de gérer (get/post) des API dans le cloud dans différents langages.
  • Azure Notification Hub: est un moteur de notification push manager prenant en charge tous les types d’OS.
  • Azure Key VaultHSM manager dans le cloud.
  • Azure Active Directory: Annuaire d’identité permettant de gérer les identités et les accès utilisateurs.

A la une

Une femme utilisant une tablette mobile dans un espace de stockage de mobilier

Le Low-Code, outil d’engagement des collaborateurs

Développer des applications métiers performantes et avec peu de code, voilà la promesse portée par le « Low-Code », une approche qui facilite la prise en main des technologies par tous. IKEA France, un acteur majeur du commerce que l’on ne présente plus, fait partie de ces organisations qui considèrent les nouvelles technologies comme un moyen de (ré)engager […]

Lire l'article
Une équipe en entreprise qui discutent.

Azure OpenAI Service : l’IA générative en pratique

Au-delà de l’effet d’annonce, l’IA générative a bel et bien fait son entrée dans le monde de l’entreprise et est là pour rester… Immersion dans les divers cas d’usage concret développés, qui génèrent de valeur ajoutée et promesses d’efficacité.  Le partenariat scellé entre Microsoft et OpenAI fait naître de nombreuses innovations entre les deux firmes, mais […]

Lire l'article
A mother and her son learning about the human eye in their home office with Minecraft: Education Edition displayed on a Dell Latitude 3190 2-in-1.

Minecraft Éducation : une expérience éducative gamifiée pour tous

Minecraft Education est une expérience pédagogique et éducative innovante, à la croisée du jeu et de la leçon. Professeur ou parent, comment s’en emparer pour engager les enfants et les rendre acteurs de leur propre apprentissage ?     Minecraft, c’est avant tout un jeu vidéo de type “bac à sable”, c’est-à-dire qu’il intègre des outils permettant […]

Lire l'article