Lorsque j'ai rejoint Statista en janvier 2023 en tant que directeur de l'infrastructure et de la technologie, notre technologie était à l'opposé de l'avant-garde : bon nombre de nos services étaient développés sur des systèmes legacy, y compris des sites web créés dans WordPress, dont la plupart étaient pure improvisation ou mal entretenus. Les instances étaient configurées manuellement sans automatisation ni sauvegarde, de telle sorte que lorsqu'elles tombaient en panne, nous devions procéder à la laborieuse résolution manuelle du problème. 

J'avais une mission : répondre urgemment aux difficultés immédiates que nous rencontrions et formuler un plan à long terme pour moderniser notre stack technologique et améliorer l'expérience des clients. Je savais que nous avions besoin de changements majeurs et j'ai approché la situation en émettant une hypothèse positive : vérifier et mesurer les performances de notre infrastructure et des applications. J'ai mis en marche un projet de preuve de concept en utilisant le forfait gratuit Free Tier de New Relic. Cette exploration visait à déterminer si l'adoption de New Relic en tant que solution de monitoring à long terme était non seulement réalisable, mais également avantageuse.

Nos premiers pas avec New Relic

Lorsque j'ai rejoint Statista, nous utilisions AWS (Amazon Web Services) à une échelle très limitée et une grande partie de notre architecture se trouvait encore sur des serveurs physiques en dehors d'AWS. J'ai introduit New Relic dans notre environnement en instrumentant notre stack AWS et j'ai été surpris par la rapidité et la simplicité de ce processus.

Mon objectif était d'utiliser le forfait gratuit, Free Tier, pour démontrer la valeur créée auprès de la direction de notre entreprise et pour plaider en faveur du déploiement de l'observabilité. La justification était simple : la facture mensuelle de New Relic équivalait à quatre heures de développeurs, mais nous permettait de réaliser d'importantes économies en argent et en ressources. Nous pouvons instrumenter tout notre stack technologique — serveurs physiques, virtuels et AWS — et simplifier ainsi le processus d'identification des bogues et des anomalies.

Une valeur éprouvée et un déploiement de l'observabilité étendu

Avant l'implémentation de New Relic, les performances de nos instances WordPress étaient léthargiques en raison d'une accumulation de plug-ins, de sites web non remaniés et de bogues sous-jacents. New Relic a joué un rôle essentiel dans l'identification et la résolution de ces problèmes, ce qui nous a permis d'optimiser les configurations d'hébergement. Ces améliorations ont facilité l'adoption de l'automatisation de la scalabilité sur notre stack technologique legacy, qui jusque-là nous posait des problèmes, sans pour autant ajouter de dépenses inutiles avec des instances surdimensionnées.

Lors de l'optimisation du stack technologique, certaines entreprises se concentrent sur les économies de coûts, mais Statista a préféré mettre la priorité sur l'amélioration de l'expérience client. En effet, nous avons visé l'amélioration des performances sans augmenter les dépenses, avec l'optimisation efficace des performances des instances grâce à New Relic et à son plan de migration qui remplace les serveurs physiques avec des instances AWS et apporte d'importantes réductions des dépenses à long terme.

D'importantes réductions de la latence pour un coût limité

Je savais que pour améliorer l'expérience des clients nous devions réduire la latence. Nous avons pu introduire de nouveaux mécanismes de mise en cache et identifier les sites et les pages qui étaient utilisés, et nous nous sommes servis de New Relic pour identifier les causes profondes de la plupart des latences. Nous avons découvert des problèmes N+1 qui provenaient d'une augmentation drastique des appels sur la base de données. Ce volume inutile d'appels signifiait que nos services étaient bien plus lents que nécessaire. Nous avons identifié les plug-ins défaillants et nous les avons remplacés par des solutions modernes efficaces. En outre, nous avons éliminé de nombreux plug-ins qui n'apportaient pas de contribution notable.

Une fois les problèmes N+1 résolus et les plug-ins problématiques remplacés, nous avons constaté une réduction considérable de la latence. Les pages qui prenaient auparavant 2 secondes s'ouvrent maintenant en 100 millisecondes, soit une amélioration de 95 %. En termes d'expérience utilisateur, c'est le jour et la nuit : lorsque les clients naviguent sur le site web, leur ressenti est positif.

Ces améliorations n'ont pas nécessité d'énormes quantités de temps ni d'argent. Il nous a simplement fallu utiliser un outil d'observabilité moderne — New Relic — pour identifier comment optimiser notre infrastructure et nos applications. Maintenant que nous nous sommes débarrassés de quelques problèmes persistants, nous pouvons commencer à nous focaliser sur la façon de développer un meilleur stack technologique pour l'avenir.

Le shift-left avec l'observabilité

Nous nous sommes lancés dans l'aventure prometteuse que sont la modernisation du stack technologique et l'amélioration de l'expérience des clients. Nous sommes actuellement en phase de planification stratégique de la transition de nos serveurs physiques afin d'activer la scalabilité à la demande des instances, ce qui réduira les dépenses opérationnelles. Nous nous focalisons tout particulièrement sur la préparation au cloud des applications avant de migrer sur AWS. Lorsque nous atteindrons ces importants jalons, la scalabilité de notre infrastructure sera nettement plus simple.

New Relic va jouer un rôle majeur dans notre migration. Nous allons notamment l'utiliser pour établir les points de référence des performances et effectuer un comparatif avant/après. Nous voulons aussi intégrer l'observabilité dès le début de notre cycle de développement. Au fil du temps, nous voulons tirer parti des événements personnalisés et du monitoring synthétique pour comprendre ce qui se passe sur le système et recevoir des notifications dès qu'il y a quoi que ce soit d'anormal. Je m'attends à ce que cette transition réduise nettement le temps que nous passons au développement et à l'assurance qualité.

Nous traversons actuellement la phase initiale de notre périple. En engageant activement des développeurs et des gestionnaires de projets, en adoptant des pratiques DevOps et en modernisant notre boîte à outils, nous avançons à grands pas. L'introduction du Free Tier de New Relic a été un moment décisif pour Statista qui nous a permis d'identifier et de relever quelques-uns des défis les plus persistants. Avec l'évolution continue de notre pratique de l'observabilité, nous serons guidés vers des performances améliorées et une expérience utilisateur encore meilleure.

Un démarrage simple : consultez notre modèle de lancement

Si vous voulez voir à quel point le démarrage a été simple pour nous, consultez l'exemple du modèle de lancement que nous avons suivi ci-dessous.

#!/bin/bash

# copy the correct configs to /etc

# setup New Relic Infrastructure Agent
echo "license_key: eu01xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxNRAL" | sudo tee -a /etc/newrelic-infra.yml

# setup New Relic PHP Agent
sudo NR_INSTALL_SILENT=1 newrelic-install install

# setup New Relic Logs Integration
curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | bash && sudo NEW_RELIC_API_KEY=NRAK-XXXXXXXXXXXXXXXXXXXXXXXXXXX NEW_RELIC_ACCOUNT_ID=1234567 NEW_RELIC_REGION=EU /usr/local/bin/newrelic install -n logs-integration -y

# setup New Relic NginX Integration
curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | bash && sudo NEW_RELIC_API_KEY=NRAK-YYYYYYYYYYYYYYYYYYYYYYYYYYY NEW_RELIC_ACCOUNT_ID=1234567 NEW_RELIC_REGION=EU /usr/local/bin/newrelic install -n nginx-open-source-integration -y

# setup New Relic Memcached Integration
curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | bash && sudo NEW_RELIC_API_KEY=NRAK-ZZZZZZZZZZZZZZZZZZZZZZZZZZZ NEW_RELIC_ACCOUNT_ID=1234567 NEW_RELIC_REGION=EU /usr/local/bin/newrelic install -n memcached-open-source-integration -y

# restart services
sudo systemctl restart memcached nginx php-fpm newrelic-infra