Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

31
@MeeticTech Comment l’architecture événementielle révolutionne la communication dans le SI

description

Les slides de notre talk au Meetup "Les Frenchies du web #1" présentation l'archictecture événementielle mise en place chez Meetic autour d'Apache Kafka

Transcript of Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

Page 1: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

@MeeticTech

Comment l’architecture événementielle

révolutionne la communication dans le SI

Page 2: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

Euh… Vous êtes qui, d’abord ?

Vincent LEPOT

Architecte logiciel, R&D

@neozibok

Olivier DUFOUR

Ingénieur, IT CRM

Page 3: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

➔ 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

Page 4: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

(ou pourquoi vouloir passer plein de temps pour changer d’architecture

événementielle ?)

Un peu de contexte fonctionnel

Page 5: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie

Page 6: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

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,... ?

Page 7: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

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 !

Page 8: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie

Et si on en

profiter pour aller

même encore

plus loin ?...

Page 9: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

“Ça me fait penser un peu à un vieux jeu : The Incredible Machine” - V.Lepot

L’architecture historique

Page 10: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic
Page 11: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

L'architecture historique

Site web

WS

Fetch

Decide

Execute

Opt-ins

Onlines

Mobiles

...

Event type

ID sender

ID receiver

Date/time

Page 12: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

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

Page 13: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

Notre cible

Page 14: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

Notre cible

Visites FlashsMises en

favoriMessages

Connexions InscriptionsModifs de

profilGéoloc’

...

...

...

...

......

...

...

...

...

...

...

...

......

...

...

...

...

Page 15: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

Notre cible

Bus d’événements d’entreprise

Sites web

Tracking

Apps mobile

Notifications

Moteurs de

recherche

Graphes

Détection de

fraudeScoring et

algorithmie

Page 16: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

Notre cible - Notre choix

Apache Kafka

High throughput Distributed Durable

Page 17: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

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

Page 18: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

Les points d’attention

Page 19: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

Zookeeper fonctionne sur un principe de quorum, nécessitant un nombre

impair de votants.

Les points d’attention

Page 20: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

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

Page 21: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

Intégration avec PHP

=> Interface REST pour les producteurs

=> Scala/Akka pour les consommateurs

Les points d’attention

Page 22: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

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

Page 23: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

Les next steps

Page 24: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

SI CRM

Page 25: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

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

Page 26: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

Architecture actuel: l'évènement déclenche un envoi sur l’ensemble des canaux

Intégration SI CRM

Email

CRM MTA EmailSites web

&

Service client

&

Paiement

filtrer les optouts

A/B testing

Capping

BAL

CRM MTA BAL

MTA pushPush

Page 27: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

Faisons tomber

les murs

Page 28: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

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

Page 29: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

=> 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

Page 30: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

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...

!

Page 31: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

Merci !