Bonjour à tous et à toutes et bienvenue pour cette deuxième journée du MatomoCamp.
Alors pour le moment tout se passe bien, j'espère que ça va être le cas tout au long de cette
deuxième journée. On a la chance et l'honneur aujourd'hui de recevoir Valentin Barez qui
est du coup qui travaille chez Empreintes Digital et qui en fait la personne qui justement gère
l'ensemble des streams qu'on a aujourd'hui et qu'on a eu hier dans MatomoCamp. Juste pour
dire quelques petits mots sur Valentin. Valentin est DevOps chez Empreintes Digital qui est une
entreprise qui se situe à Angers. Sa mission principale c'est le déploiement et le maintien
de la structure cloud en mode SAS de l'entreprise Empreintes Digital qui est un data center qui
est réparti entre Angers, Rennes et Tours. Dans cette conférence Valentin va nous parler de comment
on gère en fait une instance Matomo au quotidien, qu'il s'agisse d'une instance qui soit j'ai envie
de dire toute simple, qui n'a pas beaucoup de trafic, jusqu'à une instance qui a jusqu'à 5
millions de visiteurs par mois. Donc c'est avant tout une conférence en mode retour d'expérience
sur près de deux ans. Empreintes Digital et Valentin justement gèrent aujourd'hui un client
que certains d'entre vous connaissent peut-être qui est PIX. PIX est en fait une plateforme qui
permet de tester les connaissances en numérique qui est notamment utilisée dans le monde de
l'éducation supérieure. C'est un petit peu l'équivalent du TOEIC mais en mode culture
numérique donc c'est un petit peu comme on a pu le voir dans la conférence d'hier animée par Horay
de l'équipe de Digitalist AB. On est sur un site qui reçoit un paquet de trafic et qui arrive à
tenir du coup d'ailleurs avec avec un Matomo qui est là pour monitorer tout ça. Voilà écoutez je
vais laisser la parole à Valentin, n'hésitez pas durant toute la conférence à interagir, à poser
des questions sur la plateforme qui je le rappelle est chat.matomocamp.org sur laquelle vous
pouvez vous inscrire. Vous avez un salon qui correspond du coup à la conférence qu'on a
actuellement, vous y posez toutes vos questions et si vous souhaitez du coup par la suite continuer
à poser des questions à Valentin n'hésitez pas à utiliser ce chat qui sera actif pour toute la
journée. Je vous souhaite à tous une très bonne conférence. Alors bonjour à tous,
alors tout d'abord je vais essayer de régler un tout petit problème au niveau de la conférence
parce qu'à priori elle n'apparaît pas donc je vais me permettre de vous uploader la conférence.
C'est les petits aléas du direct on va dire.
Je suis désolé pour ce petit contre temps.
Vous
vous notez exactement c'est pas vous.
Alors bonjour à tous, donc je m'appelle Laurentin, merci Renan de m'avoir donné la parole pour
vous parler de ce qu'est une montée en charge, on va dire, de Matomo.
Donc on va parler de comment est-ce qu'il est possible de créer une instance Matomo
facilement, montrer à quel point c'est un logiciel qui est facile à mettre en place
et facilement tenir, et d'également voir comment est-ce qu'il est possible de monter
jusqu'à des charges que l'on a pu rencontrer hier dans la première journée jusqu'à 50
millions de visites par mois, etc.
Alors tout d'abord, qui suis-je? Je m'appelle Valentin Barret, je suis DevOps Engineer chez
Emprunt Digital, on administre du Matomo depuis un peu plus de deux ans, on est partis on
va dire petit à petit sur ce logiciel par évidemment appétence à l'open source et
pour offrir du service supplémentaire à nos clients, et donc depuis deux ans on a
acquis pas mal d'expérience jusqu'à, du coup, on va voir, atteindre des chiffres
on va dire plutôt intéressants sur la gestion des instances Matomo.
Voilà.
Alors, est-ce que je dois présenter Matomo? Bah pas vraiment, on est au MatomoCamp,
mais j'avais quand même envie de dire deux-trois trucs, c'était que Matomo c'est anciennement
Payweek, que ça existe depuis très longtemps, que c'est un logiciel open source, de mesure
de statistiques web, successeur de PHP MyVisit, et conçu pour être une alternative libre
à Google Analytics, Matomo fonctionne sur des serveurs PHP et MySQL.
Et comme l'a dit très justement hier Renan, faut savoir que Matomo c'est ni plus ni
moins qu'une base de données avec des données que l'on collecte au fur et à mesure.
Et ce qui est intéressant aussi c'est de se dire que Matomo c'est un logiciel qui
existe depuis des années et des années, et que ça repose sur essentiellement deux
briques, le PHP et une base de données MySQL.
Donc c'est seulement deux composantes simples qui permettent d'avoir un outil aussi puissant
que Matomo.
Le PHP qui va permettre de traiter l'information, alors évidemment il y a un peu d'habit
du langage, maintenant il y a du JavaScript, il y a du PHP, il y a un peu plus de tooling
autour de tout ça, mais à l'origine il faut savoir que c'est vraiment deux technologies
les plus simples possibles pour créer des outils d'Analytics que l'on connaît aujourd'hui.
Donc la première approche avec Matomo.
Du coup j'ai mes petites images qui ne fonctionnent pas à cause du rendu PDF mais ce n'est pas
grave.
La première approche avec Matomo.
Alors moi j'ai envie de vous raconter l'histoire de la mise en place d'un Matomo comme on
pourrait l'entendre aujourd'hui.
Je me place en tant qu'un dev, j'ai une application, je veux tester l'audience, Google ça me plaît
pas trop, je sais qu'il y a quelques problèmes au niveau de la privacy, donc je me dis tiens
je tape sur Google, je tombe facilement sur Matomo et je me dis bah ça a l'air de correspondre
à mes besoins, en plus j'ai regardé la liste des intégrations, je peux l'intégrer très
facilement dans Wordpress, dans Hugo etc, il y a plus d'une quarantaine d'intégrations
qui ont été créées par la communauté, donc je me dis mais ok parfait, je vais mettre
une pièce dans ce logiciel-là.
Et donc là ce que je peux voir c'est que Matomo ça peut traquer jusqu'à plus de 100
mille pages par mois avec on va dire assez peu de ressources, c'est-à-dire 2 CPU, 2
gigas de RAM et 50 gigas de SSD pour le disque notamment.
Donc ça veut dire que sur mon application que je mets à disposition pour mon développement
qui a pour but de vendre, je suis un dev, j'ai créé un produit, j'ai envie de le vendre,
j'ai envie de le faire connaître etc, et j'ai envie de voir comment est-ce que les
utilisateurs l'utilisent, et ben tout simplement je vais pouvoir traquer on va dire l'utilisateur
sur le fonctionnement de mon site web.
Et tout ça sans changer de hosting, sans rajouter de curs de CPU parce que j'ai pris
un forfait chez OVH, chez Scaleway, chez ED et il est possible du coup d'avoir mon hosting
à côté de mon matomo.
Donc c'est facile à installer, j'ai mes intégrations, facile à maintenir, c'est
du PHP avec une base de données, il peut y avoir quelques surprises mais globalement
toutes les mises à jour se font plutôt bien, ça correspond à tous mes besoins, mon objectif
au début c'est d'avoir vraiment mes page views, savoir combien de personnes accèdent
à mon application et combien de pages de mon application ont été consultées etc,
et ça fonctionne automagiquement, c'est-à-dire qu'une fois qu'on a posé le matomo, une
fois qu'on a mis le tracking, les données rentrent presque facilement dans l'application
et il est possible en plus de ça de les consulter aussi facilement.
Donc là, l'image vous manque, c'est pas grave, je vous parle de 100 à 1 million d'utilisateurs
mais pour l'instant tu nous proposes d'avoir une installation pour quelques users parce
que je vous rappelle que mon objectif au début c'était de créer mon application, d'avoir
du tracking mais je sais que lorsque je lance un business, à moins d'avoir été propulsé
par des gros, je vais avoir que quelques users qui vont consulter mon application au début.
Donc tu nous parles de 100 view à plus d'un million mais comment est-ce qu'on va faire
du coup parce qu'on est sur une installation qui est de CPU, de giga de ram et en plus
de ça tu nous montres que les requirements ça peut aller que jusqu'à 100 000 page view
par mois.
Non non je suis pas en train de vous arnaquer, vous inquiétez pas, mon application fonctionne
bien, on veut plus de visiteurs, j'ai plus de visiteurs, mon business se développe,
c'est génial, je passe de moi tout seul dans mon garage à un peu plus dans ma société
que j'ai créée dans le but de développer mon produit et donc j'ai une équipe autour
de ça dans la société.
On est maintenant 3-4 devs, j'ai fait rentrer un web-analyste dans ma société parce qu'on
sait que c'est aussi important aujourd'hui de connaître la mesure d'audience notamment
sur des produits en web extra et donc du coup le web-analyste me dit oh là on commence
à avoir pas mal de trafic mais par contre il y a une latence pour mon accès à mon
matomo.
Petite aparté, je vous fais part d'un retour d'expérience, c'est à peu près ce qu'on
a eu, c'est à dire qu'il y a plus de deux ans, ça fait très longtemps qu'on utilise
matomo mais ça fait plus de deux ans que maintenant on essaye de le promouvoir, aussi
pour nos clients je veux dire, on utilisait matomo et on s'est rendu compte que mince
l'accès maintenant à des sites web pouvait être un peu plus ralenti de quelques millisecondes
mais le web-analyste nous a dit ouais c'est quand même un peu gênant parce que ça ralentit
on va dire presque la stack entière juste parce qu'on ajoutait tracking.
Alors là il y a un tips assez simple pour améliorer l'expérience au niveau de l'accès
on va dire au tracking et donc l'enregistrement en facilité donc on en a parlé hier avec
les premiers talks de tips and tricks et puis globalement toutes les personnes qui parlaient
d'infrastructure, le must have dans ce cas là et de toute manière quasiment dans toutes
les installations de matomo c'est évidemment le queue tracking, le queue tracking qu'est
ce que c'est? Et bien c'est la mise en queue des statistiques, comment dire du code de
suivi de l'utilisateur dans une queue donc là on parle de redis ou de mysql qui va permettre
de mettre en attente les enregistrements du site web et de les ingérer enfin de les faire
manger par mysql en lot c'est à dire que plutôt que de les mettre un par un au fur
et à mesure et d'avoir un suivi complet de la requête jusqu'à la mise en base de données
là on va mettre dans une boîte les différentes requêtes et une fois que cette boîte est
remplie on la met dans le php de matomo qui va dire oh bah tiens regarde la boîte est
remplie je vais mettre cette boîte là directement en base de données et ça mine de rien ça
améliore grandement les performances donc c'est ce que je répète le principe est simple
une file d'attente pour enregistrer plus rapidement les accès et réduire la charge
en flux tendu plus d'info je vous ai mis le lien du plugin qt tracking n'hésitez pas
à aller le consulter il est vraiment très intéressant et on a pu le voir au fil des
différentes conférences c'est un must have donc c'est super alors j'ai une démo j'essaie
de la faire j'espère que ça fonctionnera sinon je la passerai et puis c'est pas très
long donc c'est super le webanalyse me dit génial grâce à tes petites optimisations
tu as pu augmenter le score du lot de la page etc et en plus de ça on n'a pas eu besoin
de reprendre un hosting supplémentaire ah mince alors là je suis désolé le schéma
ne fonctionne pas c'est pas grave je vais vous le faire on va dire qu'on a les utilisateurs
ici on a ici matomo enfin l'infra matomo on improvise c'est pas grave et donc là où
avant j'avais très schématique là où j'ai mon matomo avec ma base de données j'ai
pu alors je vais juste faire un petit lien ici et rajouter ici donc les utilisateurs
arrivent sur matomo et il y a une connexion entre la base de données et matomo on a pu
ajouter ici ce qu'on appelle le cute tracking via une base redis hop et donc d'un point
de vue de l'infrastructure c'est très simple nous avons l'utilisateur qui va enregistrer
les requêtes dans le matomo et plutôt que de passer de matomo à la base de données
on va passer par le redis qui va nous permettre de mettre en tampon l'ensemble de ces requêtes
et donc d'éviter de surcharger le php qui est utilisé par matomo et aussi par l'application
on peut imaginer que sur un wordpress un drupal un toute application php et donc du coup que
le php est partagé et donc du coup plutôt que d'overload le php de la machine entière
donc du petit vps qu'on peut imaginer et bah on va juste passer les plats dans le redis
et matomo va agir on va dire à intervalles presque irréguliers pour lancer l'intégration
des requêtes dans la base de données donc on a une infrastructure toute simple on peut
scale donc on est passé de quelques utilisateurs à on va dire on peut peut-être imaginer
plusieurs mille utilisateurs dans l'infrastructure sans changer grand chose le qt tracking est
un atout vraiment important dans matomo et ça c'est génial c'est à dire que même si
on a son business qui augmente qu'on a de plus en plus d'utilisateurs on a un petit
plugin à installer et c'est parti on peut on peut retarder l'augmentation de l'infrastructure
alors la démo je vais pas la faire on la fera à la fin si j'ai du temps pour vous
montrer réellement à quel point c'est c'est efficace dans la théorie la démo est en
succès et du coup je me pose la question de comment m'assurer du point de rupture
évidemment là je vous dis le webanalyste nous a dit tiens j'aimerais augmenter le
temps de réponse de l'accès au tracking donc du petit js ou alors de la petite requête
php etc pour matomo mais il y a un autre problème c'est à dire que évidemment on
retarde l'augmentation de l'infrastructure je me rappelle tout à l'heure on était
sur 2 cpu 2 giga de ram 50 ssd allez on se dit on est passé à 4 cpu 4 giga de ram super
on a pu augmenter encore un peu plus la charge mais là je commence à avoir beaucoup de
ralentissement sur mon application autant cms imaginez que cms un cms que pour l'intégration
des données dans matomo et en plus de ça j'ai l'impression que des fois c'est
pas tout à fait représentatif de de ce qui peut se passer donc comment détecter
les problèmes alors évidemment le premier problème qui est assez simple à à à identifier
c'est les slow access on a du mal à accéder à l'application plutôt que de loder l'application
en une seconde aller 500 millisecondes etc on se retrouve à 3 4 secondes on a des erreurs
500 en serveur et en plus on a des timeouts qui apparaissent dans le dans le on va dire
le veost dans l'application matomo alors petit aparté seconde petit aparté je parle
de concept je parle pas de techno tout ça ça peut être fait en bar métal en conteneur
en en sas sachant que le sas évidemment c'est pas vraiment vous qui gérez mais on peut
se rendre compte quand même des petits slow access et des petits timeouts même des erreurs
500 si on a des du monitoring etc bref je parle de concept et il n'y a pas de techno
derrière tout ça vous faites comme vous voulez c'est aussi l'avantage de cette application
matomo c'est que c'est du php donc c'est relativement standard donc vous le faites
à peu près comme vous voulez donc voilà donc comment détecter les problèmes ces
petits indicateurs peuvent nous dire ah c'est bizarre ça y est mon matomo j'ai l'impression
qu'il est un peu surchargé donc comment est ce qu'on peut augmenter la charge donc j'ai
dit un petit peu juste avant on peut augmenter le cpu on peut augmenter la mémoire et hop
ça repart effectivement on peut augmenter le cpu on peut augmenter la mémoire et ça
repart on va dire presque c'est pas si compliqué de d'augmenter la charge mais on peut pas
augmenter à l'infini c'est à dire que à un moment on va pas commander des machines
avec 128 cpu 3 teras de ram 6 tera de stockage juste pour le plaisir de nos beaux yeux on
va dire et pour se dire tiens c'est bon je vais gérer mon infrastructure matomo non
ça ne peut pas marcher comme ça pour quelle raison bah simplement la haute disponibilité
notre business on est parti de un développeur à une équipe de développeurs et maintenant
ça y est je sens que je suis bien entré dans le business et puis bah ça fait partie
vraiment de l'identité maintenant l'analytics j'offre du produit avec de l'analytics
etc donc il faut vraiment que cette infrastructure matomo soit un point clé et une motivation
supplémentaire pour l'assurer dans l'infrastructure de mon entreprise et donc pour ça il faut
évidemment avoir de la haute disponibilité la haute disponibilité ça passe par quoi
bah par plein de choses qu'on va voir juste après donc est ce qu'on peut scale horizontalement
je suis désolé à chaque fois il y a des petits schémas mais je vous les fournirai
après dans une avec le pdf mieux généré alors est ce qu'on peut scale horizontalement
dans la haute disponibilité on peut se poser cette question là est ce qu'on peut scale
horizontalement oui on peut quel composant l'application PHP le redis la base de données
PHP et évidemment on n'oublie pas last but not least un LB pour appels pour les noms
techniques ou pour les techniques load balancer donc pour gérer la charge sur les différentes
applications PHP l'avantage c'est que c'est une application qui est en PHP qui a différents
composants qui peuvent fonctionner de différentes manières on l'a vu hier avec les différentes
conférences notamment avec la conférence de nos amis italiens qui était génial je
vous invite vraiment à aller la voir eux ils ont séparé vraiment chaque composant
PHP avec le cron les tasks scheduler le tracking etc etc donc super on sait que matomo on
peut le scale c'est une bonne nouvelle c'est à dire qu'à partir de maintenant on est
capable de passer d'une petite infrastructure sur un serveur une base de données à différents
serveurs une base redis qui peut être clusterisé plusieurs bases de données qui permettent
de faire du read write etc bref un plaisir et là on n'a pas l'infrastructure alors je
vais je vais quand même me permettre pour le coup d'ajouter une petite image parce que
celle ci je trouve plutôt intéressante donc je vous demande deux minutes hop celle ci
en page de gérer l'infrastructure c'est également de connaître les outils pour le
matomo camp donc je peux me permettre de vous offrir la possibilité de voir ce que je voulais
vous montrer et donc maintenant on se retrouve avec une infrastructure qui est plus complexe
donc ça c'est la mise en image de ce que je vous expliquais juste avant on a les requêtes
qui arrivent on a load balancer qui répartit sur les différents matomo donc ça peut être
des full applications ou pas donc comme je disais à l'instant avec différents microservices
qui utilisent un cluster redis ou un seul node redis enfin bref il y a plein de solutions
et ensuite on a une base de données mysql qui est en réplication master master master
slave bref après évidemment on a plein d'imagination pour améliorer l'infrastructure
évidemment c'est aussi limité par les les comment dire les les les choix qui ont été
faits par matomo on en parlait hier avec les différentes bases de données qui sont qui
aimeraient être intégrées dans matomo là c'est du mysql que j'ai pris évidemment
c'était par rapport à notre petite installation on s'est posé des questions et on est on
s'est rendu compte maintenant qu'il était possible de d'avoir une comment dire une
infrastructure matomo de production hautement disponible et escalable génial on est passé
de 100 000 aller à plus de 100 millions de visites par mois c'est pas moi qui l'a dit
c'est évidemment la page de requiem de matomo et je schématise un peu parce qu'en fait
une fois qu'on a compris comment est-ce qu'il était possible d'ajouter tel ou tel composant
de ce qu'elle est tel ou tel composant il est facile de alors je dis facile parce qu'on
va voir qu'il ya des petites subtilités mais il est relativement facile de comprendre
comment on peut augmenter la charge de son matomo et j'en ai pas parlé mais on peut
même une fois que on est à l'aise avec l'infrastructure on est à l'aise avec les différents éléments
qu'on a mis au niveau du tracking etc mettre notre petit code javascript sur un cdn pour
en plus augmenter la possibilité d'accès rapidement aux différents aux différents
comment dire enfin à différents points du globe je vous ai pas montré ça évidemment
tout ça ça peut se faire dans des clusters bar metal dans des clusters kubernetes dans
des clusters swam je vous rappelle je parle pas de techno je parle de concepts ici on
est sur des choses qui nous permettent de comprendre comment il est facile de passer
de 100 à plusieurs millions d'utilisateurs par mois bon un petit une petite surprise
qu'on a eu dans notre expérience c'est que le webanalyse souhaite utiliser un tag manager
car l'objectif est d'avoir encore plus de moyens d'analyser l'usage du site génial
ronan vous en parlera tag manager c'est un super outil ronan chardonneau et ronan et
l'eau je reviens qui en parle régulièrement ce sont des supers outils mais on s'est rendu
compte d'une chose c'est que dans un environnement clusterisé le tag manager n'est pas vraiment
prévu pour être clusterisé alors il y a des issues survivables dans ce sens là nous
dans notre cas d'expérience client et de retour d'expérience il a fallu trouver une
solution relativement rapidement alors comment on s'en est rendu compte donc quoi qu'est
ce que ça veut dire un tag manager en fait le tag manager il peut pas être clusterisé
il peut pas être utilisé sur tous les nœuds en fait le tag manager il est généré en
local sur une instance du php ce qui veut dire que ça dépend sur quel worker il est
généré lorsqu'un administrateur utilise la plateforme donc tout simplement lorsqu'une
mise à jour du tag manager va être faite bah si il n'y a pas quelque chose qui permet
de mettre en lien les différentes les différents donc là on parle de javascript les différents
javascript pour que ce soit commun entre les différents workers bah il peut y avoir des
incohérences c'est à dire qu'un utilisateur va arriver sur une version 1 du tag manager
alors que l'autre va arriver sur une version 2 c'est pas vraiment l'esprit que l'on souhaite
avoir et le comportement que l'on souhaite avoir donc pour ça il a fallu que enfin on
peut se poser la question de est ce que ça veut dire que tag manager n'est pas édible
sur les plateformes plus complexes avec différents nœuds donc c'est pas ce que je veux dire
non non on peut le faire évidemment mais il y a quelques tricks pour parvenir aux résultats
attendus alors ici je vous parle de ça on pourrait utiliser un file system partagé
entre les différents workers pour avoir exactement le même code alors ce qui est recommandé
par Matomo c'est qu'il faut synchroniser lorsqu'on est dans un environnement clusterisé
le config.php donc ça c'est typiquement la base de connaissance de configuration de
Matomo et uploader l'ensemble des fichiers et des plugins sur chaque serveur ok donc
effectivement il faut visiblement à peu près la même base comment est ce que on peut s'assurer
que en permanence il y ait le même code base etc et en plus de ça sans réduire les perfs
éviter d'utiliser un nfs ou un partage en bas enfin j'aimais des hypothèses ou même
un s3 etc je veux pas perdre trop en performance parce qu'évidemment mon application elle
est clusterisée etc donc du coup on se dit il faut tout synchroniser mais dans la base
de Matomo il y a aussi le tmp et dans le tmp c'est là qu'est généré le tag manager
enfin le javascript du tag manager et là on se rend compte que est ce que c'est vraiment
important de générer le tmp parce qu'il contient aussi des pleins de choses du cache
etc est ce que ça peut ça veut dire que c'est un comment dire un dossier qui est
très régulièrement écrit avec potentiellement beaucoup d'accès etc donc si on met un file
système partagé il faut que ce file système partagé il soit très performant donc là
pareil pour refaire le petit aparté je parle de concept et je me dis moi au début j'ai
pas envie de dépenser des mille et des cent dans des files hyper complexes etc pour que
ça fonctionne donc qu'est ce que je peux faire alors là je vais vous le faire qu'est
ce que je peux faire j'ai pas de solution mon tag manager il génère un côté et si
je veux le mettre à jour il faut que j'aille sur les machines que je le copie enfin je
sais pas comment faire alors nous la solution qu'on a trouvé en tout cas dans l'urgence
enfin dans l'urgence non pas dans l'urgence mais dans notre cas qu'on avait c'était
d'utiliser sing sing alors sing sing je sais pas si vous savez ce que c'est mais c'est
un petit outil qui permet de synchroniser différents répertoires et en plus de ça
il y a une gestion des différentes versions de fichiers qui ont été synchronisés c'est
pas du live c'est en synchrone mais attention on parle d'un synchrone à quelques millisecondes
et surtout ça permet d'éviter d'avoir des locs ou un file système qui soit dépendant
d'une autre machine et en plus de ça d'éviter des accès concurrents au niveau file système
bref on a synchronisé les tags génial c'est à dire que on a notre tag manager qui est
maintenant disponible sur l'ensemble de nos workers et qui permet au webanalyste qui se
connecte sur la plateforme de s'occuper de créer les différents tags etc et de les
mettre en production instantanément alors évidemment je vous parle de notre cas c'est
un rex on a utilisé sing sing il y a plein d'autres solutions libre à vous de faire
comme vous voulez j'ai trouvé intéressant de parler de ce petit cas là du tag manager
qui maintenant est presque un incontournable de l'utilisation de matomo et qui du coup
nous a posé quelques problèmes dans notre administration de matomo alors faisons un
point stop je vous rappelle qu'au début on avait notre petit dev qui était tout seul
sur son projet qui a commencé à avoir son business qui a augmenté et du coup il a engagé
du monde il a engagé des admins il a engagé des devops bref maintenant c'est bon c'est
une c'est une société qui est qui est bien huilé qui est qui utilise matomo at scale
etc et tout ça je vous l'ai pas dit mais évidemment ce sont des maintenance qui peuvent
être faites quasiment sans downtime je rappelle qu'une base de données il est possible de
la mettre en réplication facilement il est possible de créer un nouveau worker matomo
de mettre en front un load balancer donc du coup le temps d'arrêter un matomo sur un
sur notre petit noeud de cpu de giga de ram je redirige le trafic on a réussi à scaler
l'ensemble de l'application de passer de 100 utilisateurs à plus d'un million presque
sans coupure en se posant les bonnes questions en ayant eu un peu de retour d'expérience
en se rendant compte que finalement l'application matomo était suffisamment bien faite pour
pouvoir la scaler horizontalement et surtout en ajoutant le Qt tracking qui lui est un
composant très important au niveau de la performance mais aussi au niveau des maintenance j'en ai
pas parlé évidemment mais le Qt tracking lui permet également lors de la maintenance
de continuer de récupérer les données donc il va les emmagasiner les emmagasiner les
emmagasiner et une fois que la maintenance est terminée il va les prendre les envoyer
dans la base de données et il va reprendre le cours de sa vie on va dire à stocker les
requêtes au fur et à mesure donc super mais finalement en résumé qu'est ce qu'on a
vu et bien en résumé on a vu que le Qt tracking c'est un must have alors je vais répondre
à des questions après mais j'en ai vu une toute petite de ronan qui parlait du fait
que matomo est ce que c'est important même sur les petites instances pour moi oui c'est
très important parce que ça améliore beaucoup beaucoup de choses et ça permet d'absorber
les pics de trafic est ce qu'on peut scale facilement oui on peut scale facilement on
l'a vu dans les concepts c'est facile il y a même des petites astuces pour le tag
manager lorsqu'on a des problèmes évidemment il y a toujours quelques soucis sur sur la
montée en charge ça on est bien d'accord je vous invite à aller voir les conférences
d'hier il y en a eu plusieurs qui parlaient de ces petits problèmes on va dire et vraiment
ils ont fait des retours d'expérience hyper enrichissant aussi sur l'administration et
le scale de de matomo donc voilà hop là je vais je vais me permettre de vous montrer
quand même la slide la petite la petite photo parce que normalement j'ai une petite image
qui s'affiche voilà donc on est avait en résumé on peut passer de quelques centaines
d'utilisateurs par mois à plus de 5 millions d'utilisateurs donc ça c'est c'est vraiment
un cas concret donc c'est c'est grâce à notre expérience de montée en charge etc
qu'on en arrive à ce résultat là donc on a atteint alors là c'est sur un mois
un mois plus de 5 millions de visites plus de 100 millions de pages vues plus de 131
millions d'actions donc évidemment si vous n'êtes pas forcément familier avec matomo
ça va peut-être pas trop vous parler mais ce sont des chiffres qui sont quand même
assez impressionnant et dans le dans sur lequel on est on est plutôt satisfait nous dans
au sein de l'équipe emprunt des étages sur sur notre usage et notre montée en charge
avec matomo voilà hop je reprends est-ce qu'on a tout dit oui parce que là on a parlé
de la montée en charge des concepts etc de du fait qu'on n'était pas vraiment dépendant
d'in-techno juste de du fonctionnement de l'architecture bah on n'a pas tout à fait
tout dit c'est à dire qu'on a encore quelques petits problèmes qui peuvent subvenir et
ça c'est dans la génération des rapports il y a un des enfin nous on rencontre encore
quelques soucis sur certains clients la génération des rapports prend énormément de temps ces
rapports là sont faits sont générés par le compte etc donc il y a encore des optimisations
à faire il faut pas oublier que il est important d'augmenter au delà même de l'application
des applications sur lesquelles repose matomo donc les timeouts de php, nginx, du proxy
etc pour éviter que lorsqu'il y a des générations de rapports notamment le php soit comment
dire soit killé on va dire il y a des optimisations de la base de données à faire il y a l'optimisation
du quicktracking alors je parle de l'optimisation du quicktracking parce que on avait on va
dire un peu de mal à monter en charge lorsqu'on a eu un pic à un moment c'est à dire que
le quicktracking fonctionnait correctement mais on avait pas de vue dans le fameux realtime
je sais pas si ça vous parle le realtime dans matomo mais il y a un petit realtime qui permet
de savoir le nombre d'utilisateurs qui sont actuellement comment dire sur la plateforme
et en fait il était toujours à zéro et c'était parce que le quicktracking augmentait augmentait
augmentait jusqu'à ce que le php ne puisse plus prendre les différents lots et l'envoyer
dans la base de données et donc en optimisant un petit peu on a pu réussir à atteindre
donc plus de 9000 requêtes sur les trois dernières minutes donc dans le décompte
de visiteurs en temps réel vous irez voir plus de 9000 utilisateurs en temps réel sur
la plateforme et pour notre plus grand bonheur et comme disait notre ami hier italien lui
il était en train de regarder ce petit décompte en temps réel moi j'étais pareil pour vérifier
que tout fonctionnait correctement voilà j'ai fini j'espère que ça a été instructif
j'espère que ça a été on va dire pas trop pas trop compliqué niveau niveau comment
dire concept d'administration etc mon but c'était de voir des concepts généraux pour
vous expliquer que finalement l'application matomo était été suffisamment bien faite
pour pouvoir la scaler et que on avait peu de limites à monter en charge avec l'application
finalement voilà donc maintenant je me permets d'aller dans le chat pour consulter les différentes
questions d'autres alors renan qui nous demande doit mettre doit on mettre le quicktracking
même sur les petites infrastructures au cas où on aurait un pic de trafic effectivement
le quicktracking moi je le recommande de facto sur n'importe quel type d'installation
parce que il est il est important de pouvoir absorber ces petits petits pics de trafic
et si en plus de ça on a une application alors si on a notre matomo avec notre application
php comment dire le quicktracking va nous permettre d'éviter de surcharger l'ensemble
de la machine donc je pense qu'effectivement c'est important de le mettre sachant que
on n'est pas obligé de mettre du redis avec le quicktracking même si c'est je pense
pas trop consommateur de mettre du redis on peut utiliser le quicktracking dans dans
ma sql directement avez vous dû faire des certaines modifications de alexandre girel
d'infra et config pour améliorer l'archivage alors on a on a essayé de faire quelques
quelques modifications au niveau de l'infra pour gérer l'archivage notamment le comment
dire les les les limites au niveau du php etc et les les limites au niveau de la mémoire
et du max max time parce qu'effectivement générer des là on a eu des cas où la génération
se faisait sur plus d'une heure donc il a fallu un petit peu optimiser ça et c'est
une des pistes d'amélioration encore qu'on a actuellement c'est je pense qu'il faut
qu'on essaie d'exporter vraiment la tâche d'archivage sur autre chose que enfin essayer
de de de scinder vraiment la tâche d'archivage parce que c'est ça que c'est quelque chose
qui est très consommateur est ce que tu as des exemples de ratios coût par an en fonction
du nombre de visite non je n'ai pas ce genre d'information je suis désolé mais pour
l'infra qu'on en a actuellement pour les chiffres que je vous ai montré là on est
sur cinq machines je crois cinq machines et le tout on va dire avec des limites physiques
donc c'est cpu ram flexible donc lorsqu'on a besoin de augmenter la charge soit on ajoute
un oeuf lorsque c'est nécessaire soit on voit que en augmentant uniquement la partie cpu
ram on peut on peut absorber la charge avez vous un système de date qui vous prévient
lorsqu'un analyste lorsqu'un analyste rencontre une page d'erreur lors de l'affichage d'un
rapport en effet sur lequel on n'ose pas nous souhaiter alors nous on a des effectivement
on a du du du monitoring sur sur les pages on utilise des outils classiques un petit
peu peut-être en botte paye garde utile je crois tout comme ça bref qui nous permettent
d'avoir des des erreurs enfin ça détecte les erreurs lorsqu'on fait des requêtes
mais sinon on a un système également de de de alors on travaille on a on a on est très
comment dire proche de nos clients donc on travaille avec nos clients avec des chats
etc donc dès qu'ils ont un souci on est comment dire sollicité directement par eux
pour pour essayer de régler le problème sachant qu'à chaque fois c'est des petits
fausses positives c'est à dire que la dernière fois c'était le le fameux le fameux compteur
temps réel qui qui était bloqué et en fait c'est la crainte c'était que le cul traqués
le cul de tracking ne fonctionne plus mais les données étaient bien en queue c'est
juste que maintenant on n'arrivait pas à gérer l'ensemble des données à ingérer
dans la base de données d'accord valentin est ce que tu m'entends je t'entends très
bien ok je fais surtout un focus sur cette question parce que c'est vrai que parfois
en tant qu'utilisateur de matomo on voit souvent un message en rouge qui apparaît
du coup dans les rapports en disant que d'une certaine façon le le serveur est pas assez
puissant où il ya un problème d'archivage et en fait ce que j'ai surtout remarqué
chez chez mes clients c'est lorsqu'ils rencontraient ce problème là souvent ils n'étaient pas
en train de questionner matomo enfin ils étaient juste en train de se dire ok bon bah faut
que je fasse cette requête là plus tard ils osaient pas en fait prévenir directement
à l'entreprise qui gère le matomo je voulais savoir si dans le dans le monitoring dont
tu as parlé il ya quelques secondes est ce que justement c'est ce type de message d'erreur
en rouge je sais pas si du coup toi ça te ça te parle qui apparaîtrait qui derrière
vous ping et vous dit tiens bah là la personne a rencontré une erreur et qui vous pousse
je dirais ou qui vous motive à justement creuser et savoir comment c'est possible qu'ils aient
rencontré un message d'erreur est ce que ce type d'erreur là qui nous a monté non on
n'a pas trop ce type d'erreur qui nous est remonté sachant que on consulte régulièrement
alors là c'est vraiment au niveau infras mais on consultait les logs d'application on consulte
les logs de la machine pour vérifier qu'on n'a pas des remontées anormales sur l'exécution
classique de l'application et du coup j'avoue que pour l'instant on nous a pas trop remonté
ce genre de problème alors il ya un client qui nous a remonté ce genre de problème
sur une petite infra mais sur des sur un cas particulier c'est à dire que les url sont
extrêmement longues et alors il me semble que la limite actuelle dans ma tomo c'est
1024 caractères ou 4087 je sais plus mais le fait que on est énormément énormément
d'url qui sont très longues ça ralentit énormément l'archivage et ça crée un
problème on va dire dans l'interface donc donc là on a des remontées de côté client
et c'est comme ça qu'on s'est rendu compte que pour même des petites infra des fois
il est nécessaire d'augmenter drastiquement les ressources au niveau du php pour pouvoir
exécuter l'archivage normalement on va dire d'accord il est actuellement 9h45 il nous
reste encore peut-être cinq minutes pour prendre encore quelques autres questions on
a une nouvelle qui vient tout juste d'arriver dans le chat ouais donc comment gérer vous
l'archivage est ce que vous le découpez par segments ou années ou vous l'exécutez normalement
alors actuellement l'exécute normalement on n'a pas trop de soucis là dessus sachant
que alors le screen que je vous envoyais sur l'image que je vous envoie avec nos résultats
de plus de 130 millions d'actions etc etc ça date du mois d'octobre et donc du coup
là on va travailler avec les équipes donc nos clients pour discuter justement sur l'amélioration
de l'archivage de ce côté là ça va être une discussion avec eux mais sinon on exécute
plutôt normalement le l'archivage voilà super alors je regarde si on a encore quelques
autres petites questions qui arrivent alors je vois que alexandra on nous indique que
c'est toujours en cours d'écriture dans le dans le chat alors du coup j'en profite pour
annoncer les deux conférences qui vont suivre juste après donc sur les coûts de 10 heures
donc vous en avez une sur la visualisation de données c'est une conférence qui est
en anglais mais qui est faite par un français donc si certaines certains d'entre vous sont
pas très à l'aise avec avec l'anglais je pense pas que ce soit un problème en tout
cas pour poursuivre la conférence qui va venir sinon vous avez la possibilité d'aller
dans un workshop alors ce workshop les places sont limitées c'est à dire que c'est vraiment
les premiers arrivés premiers servis et le workshop de souvenir on est sur de la base
de 25 25 personnes qui se connectent le workshop est sur implementing advanced privacy preserving
analytics on mobile desktop and server donc probablement plus une conférence qui est
liée autour de de la vie privée et du coup ce sera ce sera un retour d'expérience là-dessus
donc ce sera par Nathan Freitas et du coup dans la salle numéro une la partie visualisation
de données donc sera avec justement la présentation d'un logiciel libre qui s'appelle MetaBase
que peut-être certaines certains d'entre vous connaissent et elle est présentée du
coup par Baptiste Stephen qui travaille chez open source politics je regarde une dernière
fois s'il y a des questions dans le dans le chat et bien oui on a une autre question
de la part d'Alexandra avez-vous rencontré des erreurs type mysql server has gone away
donc une erreur qui ressort souvent lors de l'archivage après avoir invalidé des
périodes non alors ça nous est arrivé mais on a augmenté on a augmenté notamment le
nombre de connexions au niveau du serveur mysql et je crois pas qu'on ait eu trop rencontré
ce problème il me semble qu'on a été un peu épargné sur ce truc là on a on a dû
le rencontrer rapidement mais enfin c'est pas quelque chose qui m'a choqué dans la
maintenance et dans la gestion des infrastructures maintenant pour l'instant désolé super
mais écoutez je merci beaucoup valentin merci beaucoup à toutes et à tous d'être d'avoir
choisi du coup cette conférence nous disposons désormais de 12 minutes pour une pause café
n'hésitez pas à interagir du coup dans le salon café si vous voulez discuter avec
d'autres participants ou aller prendre vraiment un vrai café ou et n'oubliez pas vous pouvez
également aller sur mith.matomocamp.org pour interagir également directement via webcam
avec d'autres participants je vous donne tous rendez vous à 10 heures pour le prochain
jeu de conférence merci à tous