How Hi-Media is using Couchbase for retargeting advertising.
Cédric Pessan and Mickaël Le Baillif demonstrate how Hi-Media is using Couchbase to deliver low-latency, highly-available retargeted advertisements.
Comment l’architecture événementielle révolutionne la communication dans le S...Vincent Lepot
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
GAB 2015 - Nouveautes sur le stockage de donnees dans AzureJean-Luc Boucho
Cette présentation parcourt les principales nouveautés concernant le stockage de données dans Azure. Au menu : évolutions du Storage (Premium), SQL Database (V12) et Cache Redis, nouveaux services Elastic Scale, DocumentDB et améliorations du Backup et Recovery.
Session animée à l'événement Global Azure Bootcamp à Paris, 25 Avril 2015.
Explorez vos données avec apache zeppelinBruno Bonnin
Rapide présentation du projet Apache Zeppelin, environnement web facilitant l'exploration et le partage autour de vos données : le support de multiples langages pour le traitement (Spark) et l'accès aux bases de données (PostgreSQL, Cassandra, ...) permet à Zeppelin de s'adapter aux backends les plus divers.
Les micro orm, alternatives à entity frameworkMSDEVMTL
L'arrivée il y 10 ans d'Entity Framework a permis de manipuler une base de données sans écrire une seule ligne de SQL.Entity Framework a apporté son lot d'avantages mais aussi d'inconvénients.
Aujourd'hui il existe différentes alternatives à ce dernier, les micro ORM.Nous allons voir en quoi ils sont intéressants : leur compatibilité avec les différentes bases de données, leur simplicité, leur performance, la communauté autour de ces derniers.
Kafka Connect & Kafka Streams - Paris Kafka User GroupHervé Rivière
Kafka Connect & Kafka Streams - Paris Kafka User Group
05/18/2016
http://www.meetup.com/fr-FR/Paris-Apache-Kafka-Meetup/events/230324870/
Code : https://github.com/hriviere/demo-kafka-connect-streams
Comment l’architecture événementielle révolutionne la communication dans le S...Vincent Lepot
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
GAB 2015 - Nouveautes sur le stockage de donnees dans AzureJean-Luc Boucho
Cette présentation parcourt les principales nouveautés concernant le stockage de données dans Azure. Au menu : évolutions du Storage (Premium), SQL Database (V12) et Cache Redis, nouveaux services Elastic Scale, DocumentDB et améliorations du Backup et Recovery.
Session animée à l'événement Global Azure Bootcamp à Paris, 25 Avril 2015.
Explorez vos données avec apache zeppelinBruno Bonnin
Rapide présentation du projet Apache Zeppelin, environnement web facilitant l'exploration et le partage autour de vos données : le support de multiples langages pour le traitement (Spark) et l'accès aux bases de données (PostgreSQL, Cassandra, ...) permet à Zeppelin de s'adapter aux backends les plus divers.
Les micro orm, alternatives à entity frameworkMSDEVMTL
L'arrivée il y 10 ans d'Entity Framework a permis de manipuler une base de données sans écrire une seule ligne de SQL.Entity Framework a apporté son lot d'avantages mais aussi d'inconvénients.
Aujourd'hui il existe différentes alternatives à ce dernier, les micro ORM.Nous allons voir en quoi ils sont intéressants : leur compatibilité avec les différentes bases de données, leur simplicité, leur performance, la communauté autour de ces derniers.
Kafka Connect & Kafka Streams - Paris Kafka User GroupHervé Rivière
Kafka Connect & Kafka Streams - Paris Kafka User Group
05/18/2016
http://www.meetup.com/fr-FR/Paris-Apache-Kafka-Meetup/events/230324870/
Code : https://github.com/hriviere/demo-kafka-connect-streams
Notre voyage vers le déploiement continu avec micro-services, la conteneurisation et l'orchestration des conteneurs utilisant Kubernetes. Sur notre chemin, nous avons dû créer divers outils pour nous aider à mieux utiliser et tester le tout avant d'aller en production. Nous avons également intégré une variété d'autres outils pour nous donner de la visibilité sur notre plate-forme. Cette conférence sera un aperçu de notre voyage jusqu'à maintenant.
Our journey towards continuous deployment with micro-services, containerization and orchestration of containers using Kubernetes. On our way there, we've had to create various tools to help us better use and test everything before going to production. We also had to integrate a variety of other tools to give us visibility on our platform.
This talk will be an overview of our journey up to now.
Slides du meetup Google Cloud présentant les différents services Google Cloud
- Compute Engine
- Gigquery
- Cloud Storage
- Cloud Function
- Google Dataflow / Apache Beam
- Google Spanner etc...
Après un panorama du Big Data / Data Science, nos experts font le focus sur Spark, l’un des composants de la stack SMACK.
Spark est un framework de cluster computing qui permet de faire du traitement de larges volumes de données de manière distribuée. Le modèle de programmation proposé par Spark est plus simple que celui d'Hadoop et jusqu'à 100 fois plus rapide en temps d'exécution.
Nous découvrons ensuite Zeppelin, un outil graphique simple et rapide à mettre en oeuvre se plaçant au-dessus de Spark.
Pour terminer, nous nous intéressons au Machine Learning, aujourd’hui en plein essor. Pourquoi cela ? Quels sont ses principaux domaines d'applications et ses apports ? Quelles sont les principales stratégies utilisées dans le domaine de l'analyse prédictive ? Il est temps d'y voir plus clair et de comprendre les enjeux de cette discipline !
[JSS2015] Azure SQL Data Warehouse - Azure Data LakeGUSS
• Présentation du service MPP dans le Cloud SQL Data Warehouse : DWU, Polybase, ...
• Présentation des nouveaux services Big Data dans Azure : Data Lake Store, Data Lake Analytics Service (U-SQL)
• Plein de démos :-)"
De l'upsert sur des fichiers Parquet ? Retrouver l'état de mes données de mercredi dernier ? Des transactions ACID sur mon datalake ? C'est désormais possible avec DeltaLake, la nouvelle librairie de Databricks.
Presentation de DWH as a service de Google et retour d'experience
- prise en main
- alilentation et requête
- coût et facturation
- fonctions avancées (geo, ML..)
- Bigquery dans l'écosystème GCP
Rappel des différents services de stockage NoSQL présents dans Microsoft Azure, puis approfondissement du service DocumentDB, ses fonctionnalités ainsi que les options d'administration.
Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...MongoDB
Cas d'usages courant en entreprise. Présentations des Clients et des Integrateurs Partner (fr)
Criteo, Le Figaro, Fast Connect, OCTO, Xebia, Zenika, eNovance
Présentation et démos techniques des principaux services Google Cloud et leurs relations
(Compute Engine, Cloud Storage, Bigquery, Cloud SQL, Dataflow, Pub/Sub, Cloud Function)
Architecture d’une app qui fait 5 millions de visites par moisJulien Carnelos
Basé sur un cas réel dans la presse quotidienne régionale, cette présentation vous montrera quels sont les principes d'architecture à respecter pour concevoir et maintenir un parc d'applications mobiles natives iOS / Android / Windows Phone 8. Nous verrons les différentes étapes de la construction d'un socle commun et générique, résistant à la charge et évolutif. Nous parlerons également des solutions hybrides, de la gestion server-side, de la prise en compte du réseau mobile et des difficultés rencontrées.
HTTP2 : ce qui va changer par Julien LanduréZenika
HTTP1 est omniprésent en 2016 et HTTP2 est pourtant "sorti" le 15 mai 2015. Qu'est-ce qu'on y gagne, nous développeurs ? Les principes d'optimisation Web seront-ils toujours d'actualités ? Venez découvrir HTTP2, le futur protocole du Web !
Avec Enterprise Cloud Databases, découvrez un service dédié, entièrement géré et surveillé, basé sur le système de gestion de bases de données relationnelle PostgreSQL, qui garantit une haute disponibilité pour vos charges de travail les plus critiques.
Notre voyage vers le déploiement continu avec micro-services, la conteneurisation et l'orchestration des conteneurs utilisant Kubernetes. Sur notre chemin, nous avons dû créer divers outils pour nous aider à mieux utiliser et tester le tout avant d'aller en production. Nous avons également intégré une variété d'autres outils pour nous donner de la visibilité sur notre plate-forme. Cette conférence sera un aperçu de notre voyage jusqu'à maintenant.
Our journey towards continuous deployment with micro-services, containerization and orchestration of containers using Kubernetes. On our way there, we've had to create various tools to help us better use and test everything before going to production. We also had to integrate a variety of other tools to give us visibility on our platform.
This talk will be an overview of our journey up to now.
Slides du meetup Google Cloud présentant les différents services Google Cloud
- Compute Engine
- Gigquery
- Cloud Storage
- Cloud Function
- Google Dataflow / Apache Beam
- Google Spanner etc...
Après un panorama du Big Data / Data Science, nos experts font le focus sur Spark, l’un des composants de la stack SMACK.
Spark est un framework de cluster computing qui permet de faire du traitement de larges volumes de données de manière distribuée. Le modèle de programmation proposé par Spark est plus simple que celui d'Hadoop et jusqu'à 100 fois plus rapide en temps d'exécution.
Nous découvrons ensuite Zeppelin, un outil graphique simple et rapide à mettre en oeuvre se plaçant au-dessus de Spark.
Pour terminer, nous nous intéressons au Machine Learning, aujourd’hui en plein essor. Pourquoi cela ? Quels sont ses principaux domaines d'applications et ses apports ? Quelles sont les principales stratégies utilisées dans le domaine de l'analyse prédictive ? Il est temps d'y voir plus clair et de comprendre les enjeux de cette discipline !
[JSS2015] Azure SQL Data Warehouse - Azure Data LakeGUSS
• Présentation du service MPP dans le Cloud SQL Data Warehouse : DWU, Polybase, ...
• Présentation des nouveaux services Big Data dans Azure : Data Lake Store, Data Lake Analytics Service (U-SQL)
• Plein de démos :-)"
De l'upsert sur des fichiers Parquet ? Retrouver l'état de mes données de mercredi dernier ? Des transactions ACID sur mon datalake ? C'est désormais possible avec DeltaLake, la nouvelle librairie de Databricks.
Presentation de DWH as a service de Google et retour d'experience
- prise en main
- alilentation et requête
- coût et facturation
- fonctions avancées (geo, ML..)
- Bigquery dans l'écosystème GCP
Rappel des différents services de stockage NoSQL présents dans Microsoft Azure, puis approfondissement du service DocumentDB, ses fonctionnalités ainsi que les options d'administration.
Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...MongoDB
Cas d'usages courant en entreprise. Présentations des Clients et des Integrateurs Partner (fr)
Criteo, Le Figaro, Fast Connect, OCTO, Xebia, Zenika, eNovance
Présentation et démos techniques des principaux services Google Cloud et leurs relations
(Compute Engine, Cloud Storage, Bigquery, Cloud SQL, Dataflow, Pub/Sub, Cloud Function)
Architecture d’une app qui fait 5 millions de visites par moisJulien Carnelos
Basé sur un cas réel dans la presse quotidienne régionale, cette présentation vous montrera quels sont les principes d'architecture à respecter pour concevoir et maintenir un parc d'applications mobiles natives iOS / Android / Windows Phone 8. Nous verrons les différentes étapes de la construction d'un socle commun et générique, résistant à la charge et évolutif. Nous parlerons également des solutions hybrides, de la gestion server-side, de la prise en compte du réseau mobile et des difficultés rencontrées.
HTTP2 : ce qui va changer par Julien LanduréZenika
HTTP1 est omniprésent en 2016 et HTTP2 est pourtant "sorti" le 15 mai 2015. Qu'est-ce qu'on y gagne, nous développeurs ? Les principes d'optimisation Web seront-ils toujours d'actualités ? Venez découvrir HTTP2, le futur protocole du Web !
Avec Enterprise Cloud Databases, découvrez un service dédié, entièrement géré et surveillé, basé sur le système de gestion de bases de données relationnelle PostgreSQL, qui garantit une haute disponibilité pour vos charges de travail les plus critiques.
You may want a NoSQL database for your project? And a memcached for speed things up? Or you may want an offline and real-time database which is ready for your mobile apps? MongoDB or Redis or Firebase? Let's try Couchbase!
Speaker: Vu Nguyen - Web Freelancer
Vu Nguyen is a young and passionate engineer. Previously he founded Liti Book, the next generation of productivity tool which is support more collaboration.
Spark : 5 moyens simples et rapides pour exploiter vos Big Data avec Spark et...Jean-Michel Franco
L'environnement Spark change la donne pour les projets Big Data: accélération des prises de décisions et des temps de traitement grâce à l'in-memory ; intégration du décisionnel dans le transactionnel grâce aux architectures lambda ; temps réel et streaming ; machine learning. Le tout dans un environnement intégré. Reste à la prendre en main rapidement, mais aussi à s'en abstraire car il n'est sans doute pas la dernière innovation que l'on peut attendre dans le monde du Big Data en général et de Hadoop en particulier.
TechTalk #15 Grokking: The data processing journey at AhaMoveGrokking VN
Thuc Nguyen - Lead Operation Engineer, AhaMove
Thuc Nguyen is working at AhaMove - an 1.5 year old instant delivery startup - as Lead Operation Engineer.
The topic is to share data problems which AhaMove had to deal with on early days, and how our engineering culture and philosophy affected our decisions and actions on handling these issues with detailed showcases on geospatial analytics and data pipeline.
Jay Kreps is a Principal Staff Engineer at LinkedIn where he is the lead architect for online data infrastructure. He is among the original authors of several open source projects including a distributed key-value store called Project Voldemort, a messaging system called Kafka, and a stream processing system called Samza. This talk gives an introduction to Apache Kafka, a distributed messaging system. It will cover both how Kafka works, as well as how it is used at LinkedIn for log aggregation, messaging, ETL, and real-time stream processing.
I Heart Log: Real-time Data and Apache KafkaJay Kreps
This presentation discusses how logs and stream-processing can form a backbone for data flow, ETL, and real-time data processing. It will describe the challenges and lessons learned as LinkedIn built out its real-time data subscription and processing infrastructure. It will also discuss the role of real-time processing and its relationship to offline processing frameworks such as MapReduce.
Apache Kafka is an open-source message broker project developed by the Apache Software Foundation written in Scala. The project aims to provide a unified, high-throughput, low-latency platform for handling real-time data feeds.
This is the first part of the presentation.
Here is the 2nd part of this presentation:-
http://www.slideshare.net/knoldus/introduction-to-apache-kafka-part-2
Pour accéder aux fichiers nécessaires pour faire ce TP, visitez: https://drive.google.com/folderview?id=0Bz7DokLRQvx7M2JWZEt1VHdwSE0&usp=sharing
Pour plus de contenu, Visitez http://liliasfaxi.wix.com/liliasfaxi !
Apache Storm 0.9 basic training - VerisignMichael Noll
Apache Storm 0.9 basic training (130 slides) covering:
1. Introducing Storm: history, Storm adoption in the industry, why Storm
2. Storm core concepts: topology, data model, spouts and bolts, groupings, parallelism
3. Operating Storm: architecture, hardware specs, deploying, monitoring
4. Developing Storm apps: Hello World, creating a bolt, creating a topology, running a topology, integrating Storm and Kafka, testing, data serialization in Storm, example apps, performance and scalability tuning
5. Playing with Storm using Wirbelsturm
Audience: developers, operations, architects
Created by Michael G. Noll, Data Architect, Verisign, https://www.verisigninc.com/
Verisign is a global leader in domain names and internet security.
Tools mentioned:
- Wirbelsturm (https://github.com/miguno/wirbelsturm)
- kafka-storm-starter (https://github.com/miguno/kafka-storm-starter)
Blog post at:
http://www.michael-noll.com/blog/2014/09/15/apache-storm-training-deck-and-tutorial/
Many thanks to the Twitter Engineering team (the creators of Storm) and the Apache Storm open source community!
Slides du meetup Rubedo du 17 décembre. Au programme :
- Pourquoi Rubedo ?
- Comment installer Rubedo ?
- Créer votre premier site
- Créer votre extension
- Hébergement
- Présentation de la roadmap du CMS Rubedo
Le Big Data offre la capacité de traiter des volumes de données conséquents à l’aide d’architectures techniques nouvelles, comment les utilisateurs traditionnels (datamanager, datasteward, dataminers) accèderont et traiteront les données dans ces nouvelles architectures ?
Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELECMicrosoft Technet France
Session de retour d'experience sur Windows Azure Big Compute à Supelec Metz: Portage de Linux à Windows et benchmark sur 512 coeurs d'un logiciel de traitement du signal de Supelec Metz. Session présentée par Antoine Poliakov d'ANEO et le prof. Stéphane Vialle de Supelec Metz. www.aneo.eu/ www.metz.supelec.fr/~vialle La plateforme Windows Azure Big Compute a été créée pour répondre aux besoins d'applications parallelisées impliquant des communications entre nœuds de calculs. Big Compute repose sur un cluster bâti autour de la solution HPCPack et interconnecté en infiniband. Dans le but d'explorer cette offre et la valeur ajoutée de cette infrastructure, ANEO a analysé les performances d’une application qui a été portée par ses soins à partir de Linux. Cette application de traitement du signal, développée et optimisée par Supélec, fait de la segmentation audio et présente deux niveaux de parallélisme. Le premier niveaux de parallélisme met en œuvre des threads à l’aide d’OpenMP tandis que le second met en œuvre des process (éventuellement distribués) et s’appuie sur MSMPI. Dans cette présentation, nous exposerons comment effectuer le portage d’une application HPC depuis Linux vers Windows Azure. Nous analyserons et discuterons ensuite les performances obtenues.
Speakers : Antoine Poliakov (ANEO), Pierre-Louis Xech (Microsoft France)
20151118 Retour d'Expérience : déploiement Cloud OpenStack chez un opérateurObjectif Libre
Description du projet et enseignements / Bonnes Pratiques.
Présentation par Christophe Sauthier au Paris Open Source Summit le 18/11/2015 dans la Track Cloud / Enterprise.
Présentation effectuée aux Expériences 2016 de Microsoft France par Christophe Villeneuve et Benjamin Talmard : "Open source et microsoft azure reve ou realite ?"
Présentation effectuée au Meetup 24 Programmez (5 Avril 2022) par Christophe Villeneuve sur "Infrastructure as code Drupal".
Cette présentation aborde les rappels de l'IaC (infrastructure as code), comment l'utilisé avec le CMS Drupal et déployé automatiquement le contenu et les évolutions dans l'IaC.
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]ANEO
Le cloud est-il adapté aux besoins du calcul hautes performances ? La réponse par l’expérience : les consultants HPC d'ANEO ont porté et optimisé une application scientifique distribuée développée par Supélec depuis leur cluster Linux vers la nouvelle offre de cloud Microsoft, Big Compute (nœuds reliés en InfiniBand).
Google est le champion de la data et naturellement sa plateforme cloud propose toutes les briques nécessaires pour mettre en place un Data lake.
Dans cette présentation, nous vous détaillerons les différents services permettant de mettre en place concrètement un data lake, et ainsi répondre aux questions suivantes:
Comment stocker mes données ?
Comment les intégrer ?
Comment les exploiter ?
Comment orchestrer des traitements ?
Comment maitriser mon data lake ?
Jean-Luc Boucho - Azure DocumentDB - Global Azure Bootcamp 2016 Paris AZUG FR
Service très convoité dans le monde des développeurs Azure, DocumentDB se présente devant vous avec toutes les nouveautés ainsi que des expériences et cas d'utilisation.
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
"Node.JS, MariaDb, MongoDb, Python, Ruby on Rails, PHP... toutes ces technologies et beaucoup d'autres ont deux points commun : elles sont Open Source et fonctionnent sur Microsoft Azure.
Faisons un point rapide sur la stratégie de Microsoft sur le sujet et démontrons les atouts d'Azure à travers l'exemple d'un projet web professionnel.
Celui-ci s’appuiera sur des technologies ouvertes : Drupal pour le CMS, PHP pour le langage, Linux pour le système d'exploitation, MariaDB pour la base de données ou encore Redis pour le cache distribué.
En plus d’aborder des nouveautés de l’offre Azure, cette session sera également l’occasion d’aborder les différents types de services disponibles dans Azure (infrastructure, plateforme, applicatif) et les questions à se poser pour choisir entre ceux-ci."
Lors du PaaS Tour de France, j'ai co-organisé et réalisé un talk sous forme de REX sur Hager
Vincent Thavonekham Regional Director
AZUG FR-MUG Lyon
VISEO
Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics Marius Zaharia
Le chemin du CEP (Complex Event Processing) vers le Cloud - de StreamInsight à Azure Stream Analytics. Concepte de traitement d'évènements en temps réel et CEP as a Service dans Azure.
Conférence Devoxx FR 2022
"Microservices, DDD et bootstrapping pour faire un départ lancé"
Résumé de la présentation :
Associer microservices et conception DDD (Domain-Driven Design) semble une évidence. Le découpage en contextes et les différentes couches d’architecture constituent un cadre séduisant pour bâtir des microservices avec une structure stéréotypée. Mais si on souhaite respecter les fondamentaux du DDD et garantir l’isolation des différentes couches on arrive rapidement à une structure de projet basée sur plusieurs modules qui peuvent devenir complexes à gérer et qui risquent de ralentir le cycle de développement, en particulier lors de la phase de démarrage.
Cette présentation est un retour d’expérience d’un grand projet dans lequel le générateur de code Telosys a été utilisé pour automatiser la phase d’amorçage de chaque microservice.
Environnement technique : Java, SpringBoot, Telosys
3 Microsoft Advanced Threat Analytics - GenèveaOS Community
Session qui va décrire et présenter la technologie Azure Site Recovery. Ce service dans Azure propose un PRA pour les systèmes d'informations avec comme source plusieurs technologies ( Hyper-V , VMware) cette session va présenter ASR dans les moindres détails en passant par la phase design , déploiement et administration.
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure PackMicrosoft Décideurs IT
Microsoft apporte son expérience dans la conception et la gestion des centres de données et du cloud avec un système convergent entièrement validé et intégré en usine. CPS associe une pile logicielle éprouvée avec Windows Server 2012 R2 et System Center 2012 R2, le portail Windows Azure Pack et les infrastructures serveurs, stockage et équipements réseau de DELL. Basé sur un bloc de construction évolutif et extensible, CPS raccourcit le temps de mise en œuvre tout en proposant une expérience cohérente du cloud telle que demandée par vos métiers.
Similaire à Hi-Media Couchbase meetup Paris Nb #1 (20)
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure Pack
Hi-Media Couchbase meetup Paris Nb #1
1. Utilisation de Couchbase
pour le ciblage publicitaire
Cédric Pessan
Mickaël Le Baillif
Couchbase Meetup {"Number" :1}
21 novembre 2013
2. Ce que nous allons voir ensemble...
●
●
●
Hi-Media : aperçu de la société et de ses
activités
Ciblage publicitaire : à quoi ça sert, comment
ça marche ?
Notre utilisation de Couchbase
–
Place au sein de notre architecture
–
Connexions avec nos modules métiers
–
Interaction avec PostgreSQL
Couchbase Meetup {"Number" :1}
21 novembre 2013
7. Objectif du retargeting produit
●
●
Visite d'un site
marchand : « tracking »
de l'activité d'un
internaute
Visite d'un site tiers :
mise en valeur des
articles recherchés et
recommandés dans des
bannières publicitaires
Couchbase Meetup {"Number" :1}
21 novembre 2013
8. Phase de tracking 1/2
http://himedia/tracking
Annonceur : nn
Site : mm
Action : fiche produit
Ref produit : rr-vv-pp
Cookie : uid=AE23DF34
Couchbase Meetup {"Number" :1}
21 novembre 2013
9. Phase de tracking 2/2
Serveur web
http://himedia/tracking
NginX
Module
métier
« tracking »
Moteur de
recommandation
Validation
format URL
+
Envoi msg
queue
Couchbase Meetup {"Number" :1}
21 novembre 2013
Annonceur : nn
Site : mm
Action : fiche produit
Ref produit : rr-vv-pp
Cookie : uid=AE23DF34
NginX
HTTP 200 OK
10. Asynchrone : stockage du tracking
uid=AE23DF34
Action 1
Action 2
uid=AE23DF34
Annonceur : nn
Site : mm
Action : fiche produit
Ref produit : rr-vv-pp
Msg queue
Moteur de
recommandation
Mise à jour de l'historique
+
Invalidation cache
uid=AE23DF34
Action 1
Action 2
Action 3
Couchbase Meetup {"Number" :1}
21 novembre 2013
11. Phase d'affichage de publicité
Serveur web
Cache ?
Module
métier
« display »
Couchbase
Mise en
cache
e
l liv
cu
Cal
Moteur de
recommandation
Couchbase Meetup {"Number" :1}
21 novembre 2013
NginX
NginX
uid=AE23DF34
HTTP 200 OK
envoi bannière pub
13. Quelques chiffres
●
7 buckets, pour séparation logique des
données et besoins distincts de réplication
●
80 Go de données en RAM sans les réplicas
●
100 millions de clés
●
Réplication XDCR unidirectionnelle vers
cluster en hot standby
Couchbase Meetup {"Number" :1}
21 novembre 2013
14. NoSQL : pourquoi Couchbase ?
●
Redimensionnement horizontal très aisé, idéal pour
suivre l'évolution de nos volumétries
●
●
●
Expériences précédentes avec memcached
On a débuté avec membase, pas besoin de NoSQL
orientés documents
Besoin de temps de réponse très courts pour des
données précalculées ou mises en cache
●
Sécurisation des données par réplication
●
Tolérance aux pannes pour haute disponibilité
Couchbase Meetup {"Number" :1}
21 novembre 2013
15. Protocole
●
●
Besoin d'un protocole adapté à notre boucle
événementielle C++ boost::asio
Utilisation du protocole ASCII de memcached
–
get, gets, set, cas, incr, decr
–
Formattage des messages et parsing des réponses
très simple à implémenter
–
Envoi/réception des messages sans passer par une
bibliothèque externe, utilise directement
boost::asio
Couchbase Meetup {"Number" :1}
21 novembre 2013
16. Protocole
●
En python, également protocole ASCII couplé
à eventlet pour l'événementiel
–
À essayer : version 1.1.0 de la lib
couchbase-python-client qui expérimente la
délégation des I/O de libcouchbase (en C) par
Python/gevent ou Python/Twisted
–
Overhead pour établir une connexion REST
(management channel) + 100 connexions data sur
des sessions de courtes durées (<10s) vs 100
connexions TCP sans contexte d'init à parser
Couchbase Meetup {"Number" :1}
21 novembre 2013
17. Gestion des connexions
●
Modèle événementiel : nombreuses requêtes
métiers traitées simultanément
–
●
●
Plusieurs requêtes couchbase simultanées
Une requête couchbase = une connexion TCP
Utilisation d'un pool de connexion vers chaque
bucket : environ 100 connexions par processus
Couchbase Meetup {"Number" :1}
21 novembre 2013
18. Gestion des connexions
●
Protocole ASCII simple : aucune notion de nœuds,
typologie, vbucket, etc.
●
Connexion des modules métiers vers des moxis
●
Un bucket = un moxi
●
●
Chaque machine a ses moxis en local, centaines de
connexions entrantes (upstream)
Moxi établit les connexions vers les nœuds Couchbase
(downstream) en s'adaptant à la typologie, dispatche
les requêtes vers les nœuds responsables des données
Couchbase Meetup {"Number" :1}
21 novembre 2013
19. Gestion des connexions
●
Utilisation du gold-standard recommandé par
Couchbase(1) :
–
Chaque moxi se connecte vers un haproxy local
–
Conf haproxy liste tous les nœuds :
●
●
–
cluster couchbase principal
cluster couchbase de backup si aucun nœud du cluster
principal n'est joignable
Les connexions des moxis sont réparties
équitablement vers l'ensemble des nœuds
opérationnels
(1) http://docs.couchbase.com/moxi-manual-1.8/#moxi-standalone
Couchbase Meetup {"Number" :1}
21 novembre 2013
20. Gestion des connexions
Serveur A
moxis
upstream
bucket A
bucket B
bucket C
downstream
x100
Module
métier
x100
x100
REST
haproxy
Couchbase Meetup {"Number" :1}
21 novembre 2013
Cluster Couchbase
2 nœuds
3 buckets
21. Interactions entre modules
HTTP
NginX
Module
métier C++
libmemcacheasio (3) + boost::asio
)
(1
Q
PZ
Module
métier C++
M
/0
)
(2
Q
Module
métier C++
CSV/XML
Catalogues
annonceur
memcache_client(4) + eventlet
Modules métier
Python
(1) https://github.com/mkoppanen/pzq
(2) http://www.zeromq.org
(3) https://code.google.com/p/memcacheasio/
(4) https://github.com/mixpanel/memcache_client
Couchbase Meetup {"Number" :1}
21 novembre 2013
22. Interactions entre modules
HTTP
NginX
Module
métier C++
Q
PZ
Module
métier C++
moxi
haproxy
M
/0
Q
Module
métier C++
CSV/XML
Catalogues
annonceur
Modules métier
Python
Couchbase Meetup {"Number" :1}
21 novembre 2013
moxi
haproxy
23. Interactions entre modules
HTTP
NginX
Module
métier C++
Q
PZ
Module
métier C++
M
/0
Q
Module
métier C++
Ligne de commande
CSV/XML
Catalogues
annonceur
Modules métier
Python
Interface IHM
PHP
Couchbase Meetup {"Number" :1}
21 novembre 2013
24. PostgreSQL vs Couchbase
●
Requêtes PG pour calcul des liens entre
produits d'un catalogue
–
●
●
●
Catégories, prix, etc.
Requêtes trop lentes pour être utilisées « en
live » lors d'un affichage de publicité
Pré-calcul des données et stockage dans
Couchbase
Mis à jour lors d'un import de catalogue
Couchbase Meetup {"Number" :1}
21 novembre 2013
25. Remplissage de Couchbase
●
●
●
●
Dépend des buckets
Historique internautes : par consommation sur queue de
messages
Statistiques : incréments lors du traitement des requêtes
HTTP
Cache d'affichage : à la volée lors du traitement d'une
requête HTTP
–
–
●
RAZ par TTL
RAZ si historique change ou catalogue mis à jour
Catalogues : chaînes d'import
Couchbase Meetup {"Number" :1}
21 novembre 2013
26. Exemple : PostgreSQL vers Couchbase
Script Python
Worker
CB
Distribution
sur queue
PostgreSQL
Worker
CB
Worker
CB
Cluster
Couchbase
Couchbase Meetup {"Number" :1}
21 novembre 2013
27. Exemple : PostgreSQL vers Couchbase
Retrouvez ce code source commenté sur :
https://gist.github.com/demikl/7559175
Couchbase Meetup {"Number" :1}
21 novembre 2013
28. Questions à creuser...
●
Crash des moxis observé sous forte charge
(20.000 set/s) si on augmente le nombre de downstreams (16
par nœud et par thread vs. 4 par défaut)
●
Vues couchbase :
–
–
●
délai de mise à jour des index
Flag disponible pour savoir si l'index est à jour ?
Répli XDCR bidirectionnelle :
–
mutations en boucle : MAJ clé sur cluster A, répliqué
sur cluster B, répliqué sur cluster A, ...
–
Certaines clés/valeurs sont refusées :
« invalid_json, […] lexical error: invalid bytes in UTF8 string »
Couchbase Meetup {"Number" :1}
21 novembre 2013