comment l’architecture événementielle révolutionne la communication dans le si @meetic
Post on 08-Jul-2015
477 Views
Preview:
DESCRIPTION
TRANSCRIPT
@MeeticTech
Comment l’architecture événementielle
révolutionne la communication dans le SI
Euh… Vous êtes qui, d’abord ?
Vincent LEPOT
Architecte logiciel, R&D
@neozibok
Olivier DUFOUR
Ingénieur, IT CRM
➔ Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie
➔ Notre architecture historique
➔ Notre cible: tout est événement !
➔ Les points d’attention
➔ Les next steps
Comment l’architecture événementielle révolutionne la communication dans le SI
(ou pourquoi vouloir passer plein de temps pour changer d’architecture
événementielle ?)
Un peu de contexte fonctionnel
Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie
Et puis un jour...
Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie
Et sinon, on pourrait avoir une
interaction avec une publication d’un
membre ?
Genre “liker” sa photo, son
annonce, ses hobbies,... ?
Et puis un autre jour...
Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie
Et moi, j’aimerais bien pouvoir
améliorer les algorithmes de
recommandation entre les profils en
utilisant les interactions, les
affichages, le sens du vent… en
temps quasi réel, ce serait top !
Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie
Et si on en
profiter pour aller
même encore
plus loin ?...
“Ça me fait penser un peu à un vieux jeu : The Incredible Machine” - V.Lepot
L’architecture historique
L'architecture historique
Site web
WS
Fetch
Decide
Execute
Opt-ins
Onlines
Mobiles
...
Event type
ID sender
ID receiver
Date/time
Néanmoins, ça fonctionne très bien comme ça depuis des années !
Problèmes liés à cette solution
➔ Home made et peu maintenue : les compétences techniques ont été perdues
➔ Une souplesse… hum... limitée
➔ Ne peut traiter que des interactions entre membres
L'architecture historique
Notre cible
Notre cible
Visites FlashsMises en
favoriMessages
Connexions InscriptionsModifs de
profilGéoloc’
...
...
...
...
......
...
...
...
...
...
...
...
......
...
...
...
...
Notre cible
Bus d’événements d’entreprise
Sites web
Tracking
Apps mobile
Notifications
Moteurs de
recherche
Graphes
Détection de
fraudeScoring et
algorithmie
Notre cible - Comment ça marche, Kafka ?
Topic
Partition Partition Partition
Producteur
Consommateur
groupe A
Consommateur
groupe A
Consommateur
groupe AConsommateur
groupe B
Consommateur
groupe B
Consommateur
groupe B
Les points d’attention
Zookeeper fonctionne sur un principe de quorum, nécessitant un nombre
impair de votants.
Les points d’attention
✔
✘
Zookeeper s’inscrit mal dans une configuration à 2 Datacenters Actif/Actif
=> On a un risque en cas de perte d’un DC ou d’un split brain
Les points d’attention
Data center 1 Data center 2
Intégration avec PHP
=> Interface REST pour les producteurs
=> Scala/Akka pour les consommateurs
Les points d’attention
Stabilité ? (protocole, plateforme,...)
Néanmoins:
➔ pas de plantage depuis la mise en service
➔ le cluster est toujours resté cohérent (pas de perte de données) même après avoir été “brusqué”
Les points d’attention
Les next steps
SI CRM
SPAM = envoi en masse d’offres sur tous les canaux
CRM = envoi de la meilleur offre au meilleur moment sur le(s) meilleur(s) canal(aux)
SI CRM
Architecture actuel: l'évènement déclenche un envoi sur l’ensemble des canaux
Intégration SI CRM
CRM MTA EmailSites web
&
Service client
&
Paiement
filtrer les optouts
A/B testing
Capping
BAL
CRM MTA BAL
MTA pushPush
Faisons tomber
les murs
architecture cible:
Intégration SI CRM
Bus
d’événements
(kafka)
Sites web
Paiement
Service client
event
event
event
CRM
Choix du canal de
communication
filtrer les optouts
A/B testing
Capping
MTA
Personnalisation
envoi du
message
Existant
A construire
=> Calcul distribué temps réel (ex: Spark) ou par traitement (ex: hadoop)
➢ Segmentation & scoring (offres, packs, remises, appétence par canal)
➢ Personnalisation et amélioration des résultats de recherche et des sélections de profils
Scoring et algorithmie
Indexation du moteur de recherche (ex:elasticsearch, splunk,...)
Mise à jour de la base graphe (ex: neo4j)
Détection de scam
Tracking
...
Plein d’autres applications possibles...
!
Merci !
top related