MySQL 8 : mise à jour réussie de millions de bases de données et expérience client inégalée

Nous sommes heureux d’annoncer que nous avons réussi à mettre à jour nos serveurs vers MySQL 8, et qu’environ 3 millions de bases de données l’utilisent aujourd’hui à plein régime. Plus important encore, ce changement majeur n’a nécessité aucun effort de la part des webmasters et des propriétaires de sites web ! Notre approche unique de cette tâche nous a permis de fournir à nos clients tous les avantages de la dernière version de MySQL, tout en atténuant le risque élevé de mise à jour d’une technologie sous-jacente aussi vitale pour les sites web.

Alors que de nombreux hébergeurs changeraient leur version de MySQL et laisseraient leurs clients en assumer les conséquences, cela ne correspond pas à nos valeurs. Nous avons pris l’initiative d’apporter les avantages de MySQL 8 à tous nos clients, et nous nous sommes préparés de manière approfondie afin de rendre l’adoption sans douleur et sans risque pour eux. Cela signifie que nous avons testé et évalué d’innombrables configurations d’applications (Joomla, Drupal, WordPress et d’autres systèmes de gestion de contenu, ainsi que toutes leurs extensions et tous les thèmes proposés dans différentes configurations) afin de prévoir les nombreux problèmes possibles après la mise à niveau, puis de les éliminer de manière proactive et rapide, sans aucun travail ennuyeux pour nos clients. 

Voyons comment nous y sommes parvenus.

Le défi : la mise à niveau de MySQL 8 est risquée et crée une lourde charge de travail pour les propriétaires de sites web et les webmasters

La mise à jour de MySQL d’un site web est toujours une action risquée: les mises à jour de versions majeures apportent généralement des fonctionnalités réellement innovantes, mais cela signifie également que les applications et les configurations web existantes peuvent ne pas être compatibles avec ces dernières.  C’est pourquoi il faut généralement des années avant qu’elles ne soient largement adoptées. Par exemple, la première version de MySQL 8 a été présentée en 2018 et, un an après sa sortie, elle n’avait qu’un taux d’adoption global de 17%. 

La décision de passer ou non à une version plus récente de MySQL, et à quel moment, oblige les webmasters à tenir compte des problèmes potentiels qui pourraient survenir et les avantages qu’elle apporte, et à investir du temps et de l’argent dans la résolution des problèmes après la mise à niveau. Cela représente une lourde charge pour les propriétaires de sites web et les webmasters.

C’est là que les fournisseurs d’hébergement web peuvent être d’une grande aide, ou non, en fonction de la manière dont elles gèrent leurs serveurs et du niveau de service qu’elles offrent à leurs clients. Parmi nos concurrents, il existe deux approches populaires pour ces mises à niveau à grande échelle: soit activer la nouvelle version de MySQL uniquement sur les nouveaux serveurs que vous lancez, et si les clients actuels veulent la nouvelle version, ils doivent se relocaliser sur les nouveaux serveurs; soit placer l’ancien et le nouveau MySQL sur un seul serveur, ce qui augmenterait l’utilisation des ressources du serveur et pourrait finalement détériorer les performances des sites qui y sont hébergés. 

Aucune de ces options n’est cependant idéale. Dans les deux cas, la charge du risque incombe toujours au propriétaire du site web ou au webmaster, qui doit faire le travail nécessaire pour rendre son site compatible avec la nouvelle version de MySQL. Le résultat probable est que beaucoup ne feront pas la mise à jour, se privant ainsi des performances, de la sécurité et d’autres avantages. Pire encore, de nombreux clients continueront à utiliser une ancienne version de MySQL pendant si longtemps qu’elle deviendrait vulnérable et ne serait plus prise en charge par les développeurs officiels. En conséquence, cela mettrait leurs sites web en danger, ce qui n’est pas une bonne idée. 

L’approche unique de SiteGround : des millions de bases de données mises à jour automatiquement vers MySQL 8 sans que les clients aient à s’en soucier

Chez SiteGround, notre philosophie est de veiller à ce que tous nos clients puissent bénéficier des dernières technologies, et ce avec le moins de difficulté possible : pas de travail ennuyeux, pas de risque, pas d’investissement supplémentaire, il suffit de le sortir de la boîte et de l’utiliser. Lorsque nous offrons un nouveau logiciel tel que MySQL 8 qui porte de nombreux avantages, nous nous assurons que tous nos clients peuvent en profiter facilement et en toute sécurité. 

C’est pourquoi notre approche de cette mise à jour a été différente. Nous n’avons pas laissé à nos clients le soin de trouver comment mettre à niveau vers MySQL 8; nous l’avons fait pour eux et nous avons pris en charge tout le travail nécessaire pour éliminer les incompatibilités et résoudre les problèmes postérieurs à la mise à niveau. Ce processus comprenait l’évaluation du niveau de risque, la recherche de toutes les incompatibilités et erreurs de mise à niveau possibles, la résolution automatique des problèmes et la vérification manuelle des résultats. En conséquence, des millions de sites utilisent aujourd’hui MySQL 8 sans aucun problème.

  • Recherches approfondies et tests multiples pour réduire le taux d’échec des mises à jour 

Nous avons commencé par faire des recherches approfondies sur les incompatibilités de MySQL 5.7 (la version précédente de MySQL). L’objectif était de découvrir les problèmes susceptibles d’empêcher la mise à jour d’une base de données vers MySQL 8. 

Ensuite, nous avons copié et isolé des centaines de serveurs et lancé des mises à niveau pour les tester. L’objectif était d’identifier les logiciels et les configurations problématiques qui se rompent après la mise à niveau, de trouver des solutions à l’avance et de documenter soigneusement tous les résultats. Nous avons utilisé toutes ces données pour réduire le taux d’échec des mises à niveau et pour automatiser la résolution des problèmes ultérieurs.

  • Réparations automatiques et rapides des sites défectueux

En s’appuyant sur des recherches et des tests approfondis, nos ingénieurs ont développé un système intelligent qui sert essentiellement de mécanicien qualifié pour votre site web. Il effectue un contrôle de compatibilité avec MySQL 8 en fonction de la configuration spécifique de votre application et de la structure de votre base de données. S’il détecte des incompatibilités, il les répare immédiatement.

Par conséquent, après la mise à niveau, ce système automatique nous a permis de corriger immédiatement les erreurs et les requêtes erronées pour des milliers de sites web, et nous a économisé des tonnes de travail manuel, en plus du temps d’attente de résolution pour les clients.

  • Réparation manuelle de 7 518 sites web par nos experts (gratuitement pour nos clients)

Les contrôles automatiques ont fait un travail remarquable, mais nous sommes allés encore plus loin. Après la mise à niveau d’un serveur, nos techniciens ouvraient pratiquement tous les sites web hébergés sur ce serveur pour s’assurer qu’ils étaient pleinement fonctionnels. Par  conséquent, ils ont identifié 7 518 sites web présentant des problèmes, qu’ils ont ensuite réparés manuellement après la migration dans des délais raisonnables

  • 804 sites web ont bénéficié d’un délai supplémentaire (à nos frais)

Toutes nos vérifications automatiques et manuelles nous ont permis de constater que le nombre de sites web qui restaient incompatibles avec la nouvelle version de MySQL était incroyablement bas, moins de 0,001 % du total. Pour ces clients, nous avons fourni une configuration de serveur personnalisée leur permettant d’utiliser MySQL 5.7 pendant deux mois supplémentaires, ce qui leur laisse suffisamment de temps pour résoudre les incompatibilités de requêtes significatives et pour se préparer à l’installation de la nouvelle version. Nous pensons que chacun de nos utilisateurs doit avoir la possibilité de recevoir la meilleure expérience, c’est pourquoi nous avons absorbé le coût de la maintenance de l’ancienne version sur des serveurs supplémentaires. 

  • Un calendrier efficace de mise à niveau des serveurs a permis une résolution rapide des problèmes

L’un des défis internes au cours du processus consistait à programmer la mise à niveau des serveurs de manière à disposer d’un nombre suffisant de gens pour non seulement traiter les problèmes potentiels, mais aussi terminer la mise à niveau dans le délai le plus court possible. Sur la base des statistiques des tests, nous pouvions prédire le nombre de sites web qui auraient eu des problèmes par serveur, et nous savions donc combien de serveurs il fallait programmer et combien de techniciens il fallait recruter pour pouvoir résoudre les problèmes rapidement. À un moment donné, notre processus était si efficace qu’il nous a permis de mettre à niveau avec succès jusqu’à 180 000 sites web en 24 heures ! 

  • Communication ponctuelle et ouverte avec les clients

Ceux d’entre vous qui sont clients depuis un certain temps savent déjà à quel point nous valorisons la communication transparente et claire lorsqu’il s’agit d’événements ayant un impact sur vos sites web. Cette mise à niveau vers MySQL 8 n’a pas fait exception à la règle. Nous avons prévenu chaque client au moins sept jours avant la migration, en les informant du jour et de l’heure à laquelle nous allions mettre à jour leurs sites web (toujours en dehors des horaires de travail de leur région respective). 

En conclusion

Notre priorité absolue dans ce processus de mise à niveau était de faire en sorte que tous les sites web restent pleinement fonctionnels après la mise à niveau – pas de problèmes, seulement les avantages de la nouvelle version de MySQL. Le résultat ? Nous avons obtenu un taux de réussite de plus de 99,99 % pour le processus de migration ! 

  • Grâce à une planification robuste, une préparation et une exécution précise, nous avons réussi à mettre à niveau environ 3 millions de bases de données et à les rendre entièrement compatibles avec MySQL 8, sans aucune charge de travail pour nos clients. 
  • Il ne nous a fallu que 63 jours de migration pour réaliser cette opération pour tous les sites web hébergés sur notre plateforme gratuitement tout en nous assurant que chaque site de nos clients avait été soigneusement pris en charge. N’oublions pas non plus les mois que nous avons investis dans le travail de préparation, y compris la recherche, les tests et les automatisations.
  • Une équipe spéciale de 34 personnes a travaillé pendant 1228 heures au total sur la mise à niveau, achevant le processus avec la plus grande efficacité et le plus grand professionnalisme – il leur a fallu en moyenne sept minutes par serveur pour basculer et résoudre les problèmes. 

Il s’agissait d’une tâche énorme, d’une ampleur stupéfiante, surtout si l’on considère la barre élevée que nous nous étions fixée. En fin de compte, tous nos efforts ont été récompensés par une absence totale de travail pour nos clients. Pour nous, c’est l’objectif final qui justifie tous ces efforts.

Comment rendre votre site web plus respectueux de l’environnement ?

La réduction de notre empreinte carbone est un effort énorme à l’échelle mondiale – les pays et les individus s’unissent pour réduire les émissions de carbone. Compte tenu de la difficulté de la tâche, vous pourriez avoir l’impression que vos efforts quotidiens ne sont qu’une goutte d’eau dans l’océan. Au contraire, chaque effort compte – chaque article en plastique recyclé, chaque site web rendu plus vert, contribue à cette lutte mondiale.

Vous avez bien lu : un site web doit aussi être respectueux de l’environnement. On pourrait penser que les sites web étant des actifs numériques, ils ne laissent pas d’empreinte carbone. Cependant, les sites web consomment de grandes quantités d’énergie pour se charger pour les utilisateurs et pour apparaître dans les résultats de recherche.

Voici comment votre site web influe sur l’environnement et comment réduire son empreinte carbone.

Quel est l’impact d’un site web sur l’environnement ?

Selon les statistiques, un site web moyen produit 211 kg d’émissions de CO2 par an. Cela équivaut à 1055 km parcourus en voiture. Et cela pour un seul site web.

Selon StatsFind, il existe actuellement plus de 2 milliards de sites web dans le monde. Cela fait de l’internet le sixième plus grand consommateur d’électricité de la planète. Par conséquent, à l’échelle mondiale, il produit environ 2 % des émissions mondiales de CO2 par an, soit l’équivalent de l’industrie aéronautique.

4 façons de rendre votre site web plus écologique

Une fois que vous avez calculé l’empreinte carbone de votre site web, vous pouvez prendre des mesures pour la réduire encore davantage. Jetez un coup d’œil aux actions ci-dessous et réfléchissez à la possibilité de mettre en œuvre celles que vous n’avez pas encore prises.

Choisir un fournisseur d’hébergement écologique

Avoir un partenaire d’hébergement écologique pour votre site web est la première étape vers un site web respectueux de l’environnement. Si vous n’avez pas encore choisi votre hébergeur ou si vous souhaitez vérifier si le vôtre propose des services d’hébergement écologique, il vous suffit de visiter son site web et de rechercher les pratiques et initiatives écologiques, telles que l’utilisation de sources d’énergie renouvelables (par exemple, l’énergie éolienne et solaire) pour alimenter leurs serveurs, le recyclage ou la réduction des déchets, et d’autres engagements similaires en faveur de l’environnement.

Pourquoi est-ce si important ? Voici quelques statistiques qui montrent l’importance du rôle de votre hébergeur dans la création et le maintien d’un site web respectueux de l’environnement.
Un site web moyen produit 4,61 grammes de CO2 pour chaque page vue. Cependant, chez SiteGround, nous consacrons beaucoup de temps et d’efforts à l’hébergement de sites web plus écologiques. En conséquence, pour les sites web hébergés chez nous, chaque visite de site équivaut à environ 1,7 gramme d’émissions de CO2 – près de trois fois plus efficace en termes de carbone que la moyenne de l’industrie. Voici un aperçu de ce que nous faisons pour y parvenir :

  • 100 % de l’énergie compensée

L’infrastructure de notre centre de données est alimentée par la plateforme Google Cloud qui compense 100 % de l’électricité consommée par les serveurs avec de l’énergie provenant de sources renouvelables. Cette stratégie garantit une redondance élevée, une vitesse optimale du site et sa durabilité.

  • Data centers proches des utilisateurs finaux

SiteGround utilise plus de 10 data centers dans le monde entier pour héberger les sites web de nos clients. Plus le serveur est proche de la majorité des visiteurs du site, plus le chargement du site est rapide pour les utilisateurs et moins il consomme d’énergie.

  • Des serveurs fonctionnant avec des technologies de pointe

Nous optimisons constamment notre logiciel de serveur et développons des outils puissants pour maximiser l’efficacité et minimiser l’utilisation des ressources. Certains de ces outils sont notre CDN interne qui met en cache le contenu du site sur plusieurs serveurs sur différents continents, une configuration PHP personnalisée qui améliore le chargement des pages jusqu’à 30 %, et le SuperCacher qui permet la mise en cache de la page entière pour rendre les sites web jusqu’à 5 fois plus rapides.

Optimisez les performances de votre site web

Si vous avez déjà fait appel à un hébergeur écologique pour votre site web, c’est une base solide pour avoir un site web respectueux de l’environnement. La prochaine chose à laquelle vous devez penser est la vitesse de chargement de votre site web.

Un site web lent consomme plus d’énergie pour se charger. Si votre site est lent, il exigera beaucoup de puissance de traitement de la part du serveur, pour chaque visiteur qui viendra le charger. Votre site produit donc plus d’émissions de carbone.

L’amélioration des temps de chargement de votre site se traduira par une réduction de la consommation d’énergie, améliorera indéniablement l’expérience utilisateur des visiteurs de votre site web et, en fin de compte, vous aurez un site web plus respectueux de l’environnement. Voici quelques conseils pratiques pour améliorer la vitesse de chargement de votre site web :

  • Optimisez votre utilisation des images

Pour améliorer la vitesse de chargement de votre site web, vous devez optimiser la façon dont vous utilisez les images sur votre site. Avant tout, réfléchissez aux images que vous utilisez et réduisez-les en supprimant celles qui sont inutiles et/ou en les concentrant dans des fichiers uniques. Deuxièmement, donnez la priorité aux images critiques et chargez-les en premier – celles qui se trouvent au-dessus du pli doivent être chargées en premier, tandis que les images non critiques peuvent être chargées ultérieurement (lazy-loading), après les images critiques ou lorsqu’elles sont nécessaires. Ensuite, compressez la taille des images autant que possible, sans compromettre leur qualité. Enfin, tirez parti de la mise en cache pour les images statiques, afin de minimiser les demandes redondantes de l’utilisateur.

  • Exploitez la mise en cache du site web

Pour augmenter davantage la vitesse de votre site web, tirez parti de l’une des technologies les plus puissantes : la mise en cache. De plus, elle peut être appliquée à différents niveaux de votre site web : au niveau du serveur et au niveau du navigateur. La mise en cache côté serveur réduit les temps de chargement du site web en conservant une copie de la page web sur le serveur. Les clients de SiteGround profitent de trois niveaux de mise en cache côté serveur – Nginx Direct Delivery pour le contenu statique, Dynamic caching pour le contenu dynamique et Memcached (pour la mise en cache d’objets). La mise en cache du navigateur, quant à elle, peut également réduire de manière significative les temps de chargement de votre site – lorsqu’un utilisateur visite un site web plus d’une fois, son navigateur charge la version mise en cache de la page, stockée sur son appareil.

  • Utilisez un CDN

Pour augmenter davantage la vitesse de votre site web, utilisez un réseau de diffusion de contenu (Content Delivery Network – CDN). Un CDN distribue des copies de votre site web à des utilisateurs situés dans des lieux géographiques différents en chargeant votre site web à partir de serveurs situés plus près de l’utilisateur final. Les clients de SiteGround utilisent notre CDN gratuit, construit en interne, qui fournit à leurs sites web une vitesse de chargement extrêmement rapide, ne nécessite aucune configuration de leur part et est facile à gérer. Mais il existe certainement de nombreux produits et options CDN payants.

  • Débarrassez votre site web des poids superflus

Le désencombrement de votre site web devrait être aussi courant que le nettoyage de printemps de votre maison. Certaines pages, certains plugins, certains thèmes, certaines redirections, certains fichiers, certains contenus et bien d’autres choses encore ralentissent votre site web et augmentent son empreinte carbone. Voici quelques points à garder à l’esprit lorsque vous faites le ménage sur votre site web :

Tout d’abord, débarrassez-vous des plugins et des thèmes inutilisés, car la règle est simple : « moins il y a de code, plus votre site est rapide ». Ensuite, supprimez le contenu et les fichiers obsolètes de votre site. Ceux-ci prennent de la place sur votre site et le ralentissent davantage. Enfin, réduisez les redirections inutiles qui affectent la vitesse du site en ajoutant des étapes supplémentaires au processus de chargement de la page – gardez vos pages et votre contenu à portée de clic. Pour nettoyer davantage votre site, découvrez d’autres techniques dans notre article de blog.

Améliorer la visibilité de votre moteur de recherche (SEO)

Même si votre site web est hébergé chez un hébergeur écologique et qu’il est optimisé pour les performances, vous pouvez encore prendre d’autres mesures pour le rendre encore plus respectueux de l’environnement.

Lorsque les internautes recherchent votre site web sur les moteurs de recherche, cela nécessite beaucoup d’énergie. En termes de gaz à effet de serre, une recherche Google équivaut à environ 0,2 gramme de CO2. Pour vous donner un ordre d’idée, une voiture moyenne parcourant 1 km produit autant de gaz à effet de serre qu’un millier de recherches sur Google.

C’est pourquoi, si vous optimisez votre site web pour les moteurs de recherche, les utilisateurs finaux passeront moins de temps à le rechercher, ce qui se traduira par une réduction de l’énergie dépensée pour les requêtes du serveur et, en fin de compte, par un site web plus respectueux de l’environnement.

Examinons les trois principales pratiques de référencement que vous pouvez mettre en œuvre pour améliorer la visibilité de votre site web :

  • Optimisez la structure de votre site et la navigation

La structure de votre site web est la manière dont vous organisez vos pages et votre contenu en (sous-)catégories. La navigation, quant à elle, est la manière dont vous guidez vos utilisateurs vers ces pages et ce contenu. Pour optimiser la structure de votre site web et la navigation, vous devez avoir des URL descriptifs avec des mots clés pertinents, un menu de navigation logiquement structuré et facile à suivre, et utiliser des liens internes qui mènent à votre propre contenu et à vos propres pages. Toutes ces mesures vous aideront à créer une hiérarchie de site conviviale, ce qui améliorera la façon dont les moteurs de recherche explorent votre site et sa visibilité dans les pages de résultats des moteurs de recherche.

  • Ciblez des mots-clés pertinents 

Les mots clés sont ce que les utilisateurs mettent dans les moteurs de recherche pour trouver ce qu’ils cherchent, et en même temps les mots clés indiquent aux moteurs de recherche le contenu de votre site web. C’est pourquoi il est important d’utiliser les mots à bon escient. Créez un contenu clair et concis qui corresponde à ce que les utilisateurs recherchent et s’attendent à voir sur votre site. Recherchez et utilisez des mots clés que votre public recherche afin de répondre à leurs intentions de recherche. Utilisez également des synonymes et des variantes afin de couvrir un plus large éventail de recherches.

  • Contrôlez régulièrement votre site web

Analysez régulièrement les performances de votre site pour vous assurer qu’il est bien classé et qu’il offre une bonne expérience à l’utilisateur. À cette fin, vous pouvez utiliser différents outils, tels que Google Analytics ou divers outils de référencement, qui vous aideront à surveiller et à identifier les points à améliorer. Parmi les problèmes les plus courants, citons le contenu en double, les liens brisés ou la lenteur de chargement.

S’efforcer de concevoir des produits simples à utiliser

Enfin, la conception de votre site web doit également être conviviale afin de rendre votre site plus respectueux de l’environnement. Pourquoi le design est-il si important ? Lorsque les utilisateurs arrivent sur votre site et que celui-ci leur offre une expérience optimale, la consommation d’énergie et donc l’empreinte carbone s’en trouvent réduites. Examinons quelques stratégies de conception efficaces :

  • Design minimaliste

Lorsqu’il s’agit de la conception d’un site web, moins c’est plus. Veillez à fournir à vos utilisateurs ce qu’ils recherchent d’une manière conviviale. Évitez les éléments inutiles et les éléments visuels trop nombreux qui détournent l’attention des utilisateurs de ce qu’ils recherchent. N’incluez que des éléments visuels qui aideront vos utilisateurs à atteindre leur objectif final sur votre site. Veillez à la propreté de votre design afin de réduire la taille des pages, le rendu de votre site web et, par conséquent, les émissions de carbone. 

  • Navigation facile

Veillez à ce que la navigation sur votre site web et la recherche de ce que les utilisateurs recherchent soient faciles et puissent se faire en quelques clics. Aidez vos utilisateurs à trouver facilement votre contenu en structurant vos menus de navigation en fonction de leur expérience utilisateur. L’inclusion de liens internes vers vos produits et services permettra également aux utilisateurs et aux moteurs de recherche d’identifier facilement les informations clés. Une navigation intuitive permet aux visiteurs de passer moins de temps et de dépenser moins d’énergie pour trouver ce qu’ils cherchent, d’accomplir des tâches en réduisant le nombre d’étapes et, par conséquent, de réduire les émissions de carbone.

  • Adaptée aux mobiles et aux ordinateurs de bureau

Un autre aspect de l’expérience utilisateur consiste à s’assurer que vos visiteurs puissent faire tout ce qui précède aussi facilement et rapidement que sur n’importe quel appareil qu’ils utilisent. Qu’ils visitent votre site web à partir d’un appareil mobile ou d’un ordinateur de bureau, ils ne devraient pas avoir de difficulté à naviguer ou à atteindre ce qu’ils recherchent. De plus, les appareils mobiles consomment moins de puissance de traitement que les appareils de plus grande taille. Rendre votre site web entièrement réactif permet de réduire la consommation d’énergie, d’améliorer les performances et de créer une expérience utilisateur transparente.

Conclusion

Avoir un site web respectueux de l’environnement est tout aussi important que vos autres pratiques quotidiennes durables, telles que la réduction de l’utilisation du plastique, l’utilisation des transports en commun, le recyclage des déchets, etc.

Cependant, la création et la maintenance d’un site web écologique demandent du temps et des efforts. C’est pourquoi il est important d’avoir un partenaire d’hébergement écologique fiable comme SiteGround à vos côtés, afin de ne pas être seul dans le voyage vers un site web respectueux de l’environnement.

MIGRATION VERS GOOGLE ANALYTICS 4

Depuis le 1er juillet 2023, Google a définitivement retiré l’application qui nous accompagne dans nos web analytics depuis dix ans : Universal Analytics. Ce faisant, il conclut un processus de migration qui a commencé il y a trois ans, avec l’introduction de Google Analytics 4 en 2020. Bien qu’à l’époque, il ne s’appelait pas encore ainsi.

Ce changement a provoqué un véritable séisme dans l’écosystème numérique étant donné que les deux versions ne sont pas compatibles entre elles, et passer de l’une à l’autre implique un processus, mal nommé “migration”, qui peut parfois être complexe.

En effet, Google Analytics 4 ne permet pas l’importation de données historiques stockées dans Universal Analytics, ce qui peut être stratégiquement important pour ceux qui ont besoin d’effectuer une analyse comparative avec des périodes précédentes. Par exemple, le cas d’un e-commerce qui doit comparer les résultats de la campagne Black Friday de cette année avec celles des années précédentes.

Pour éviter ce problème, l’équipe de Google a insisté au cours des deux dernières années pour que nous installions le nouveau GA4 en parallèle à l’UA, chevauchant ainsi les deux mesures. Comme on pouvait s’y attendre, de nombreuses personnes n’ont procédé à l’intégration qu’au dernier moment. Certains ne l’ont même pas fait après le blackout.

Dans les lignes qui suivent, nous allons essayer de trouver une solution à cette situation.

Quels sont les changements engendrés par GA4 ?

GA4 représente un changement radical dans la manière dont les données de vos actifs numériques sont acquises et traitées. Il existe plusieurs différences très importantes par rapport aux versions précédentes.

Web + application

Google Analytics 4 permet le suivi et l’analyse des sites web et des applications mobiles. Cela signifie que vous pouvez obtenir des informations et des mesures sur les performances de votre site web ainsi que sur l’utilisation de votre application mobile, le tout depuis un seul et même endroit. Ceci est particulièrement utile dans un monde où de nombreuses entreprises sont présentes à la fois sur les plateformes web et mobiles.

Tout tourne autour des événements 

L’une des principales caractéristiques de GA4 est qu’il est basé sur un modèle centré sur les événements. Dans les versions précédentes de Google Analytics, l’accent était principalement porté sur les pages vues. Cependant, dans GA4, toutes les données sont collectées et organisées en événements. Un événement peut être toute action que les utilisateurs effectuent sur votre site web ou votre application, comme cliquer sur un bouton, lire une vidéo ou envoyer un formulaire. Cela permet un niveau plus élevé de flexibilité et de personnalisation dans l’analyse des données.

Machine learning

GA4 exploite la puissance de l’apprentissage automatique pour fournir des informations plus détaillées et plus précieuses. Il utilise des algorithmes d’apprentissage automatique pour effectuer une analyse avancée des données et découvrir des modèles et des tendances cachés. Cela permet d’identifier les opportunités et les défis pour votre entreprise, tels que les segments d’audience à forte valeur ajoutée, les prévisions de revenus et les comportements spécifiques des utilisateurs. L’intelligence artificielle et l’apprentissage automatique de GA4 permettent également la création de modèles personnalisés pour prédire le comportement futur des utilisateurs.

Suivi multi-plateformes et multi-appareils

GA4 a la capacité de distinguer efficacement les utilisateurs qui naviguent sur votre site à partir de différents appareils ou navigateurs. Il peut désormais savoir si le même utilisateur a accédé à votre site Web à partir de son navigateur mobile le matin, via son ordinateur l’après-midi et sur votre application professionnelle à partir de sa tablette la nuit. La comptabilisation des utilisateurs est ainsi plus précise, et nous pouvons retracer le parcours client dans son intégralité.

Attribution basée sur les données

GA4 offre une attribution basée sur les données plus précise et complète par rapport aux versions précédentes. Grâce à l’attribution basée sur les données, vous pouvez mieux comprendre comment les différents canaux marketing et les actions des utilisateurs contribuent à vos objectifs commerciaux. Vous pouvez voir quelles sources de trafic et quelles tactiques marketing génèrent plus de conversions et prendre des décisions éclairées sur l’allocation des ressources. L’attribution de la responsabilité de chaque action marketing est beaucoup plus précise et équitable car elle est répartie en fonction de son efficacité auprès de chaque type d’utilisateur, statistiquement parlant.

Faut-il installer GA4?

La réponse à cette question est toujours la même: “ça dépend”. Si vous avez utilisé Universal Analytics sur votre site Web, il semble raisonnable de changer et de collecter des données dans GA4. Cependant, cela a ses implications techniques et juridiques.

Vous le savez peut-être déjà, mais le Règlement général sur la protection des données, ou RGPD, requiert l’autorisation des utilisateurs pour effectuer un traitement analytique de leurs données. Cette seule raison justifie l’utilisation d’une bannière cookie pour tout site Web dont la cible potentielle n’est pas seulement l’Union européenne, mais également d’autres pays comme le Royaume-Uni, le Japon, l’Argentine, l’Uruguay, la Suisse, le Canada, certains états des États-Unis et de plus en plus plus de pays dans le monde.

Cependant, il est très probable que pour beaucoup de personnes lisant cet article, l’analyse du serveur soit suffisante, évitant ainsi ce petit dilemme juridique.

Statistiques sur SiteGround

Chez SiteGround, nous avons une section entière dans les Site Tools dédiée exclusivement aux statistiques, où vous trouverez des informations très intéressantes sur votre site web.

D’un autre côté, il est très probable que pour beaucoup de personnes lisant cet article, l’analyse du serveur soit suffisante, évitant ainsi ce petit dilemme juridique.

Vous pouvez accéder à des informations utiles telles que le volume de trafic reçu par votre site Web, les pays d’origine, la source des visites (moteurs de recherche, réseaux sociaux, autres sites), vos contenus ou pages les plus consultés et la technologie utilisée par vos visiteurs (navigateur et système d’exploitation).

Les informations collectées peuvent être visualisées à la fois sous forme de graphique linéaire pour mesurer l’évolution temporelle, ainsi que sous forme de graphiques à barres ou de tableaux pour consulter des valeurs absolues.

Les périodes d’analyse sont mensuelles, et les informations sont mises à jour avec une fréquence bien supérieure à celle de Google Analytics, qui peut mettre jusqu’à 24 heures pour consolider ses données.

Le principal aspect que vous devez prendre en compte avec ces rapports est qu’ils sont basés sur ce que l’on appelle les journaux de serveur, un type de données qui ne fait pas de distinction entre les “bots” et les utilisateurs humains. Par conséquent, il est possible que les volumes de données ne représentent pas avec précision le nombre de lecteurs ou de clients de votre site. Dans tous les cas, les informations évolutives du trafic, mois par mois, sont très utiles pour comprendre la croissance de votre site web et les contenus les plus demandés.

Alternatives à GA4

Si les informations procurées par les statistiques de SiteGround ne suffisent pas et que vous souhaitez continuer à éviter de gérer les aspects juridiques liés à la confidentialité des utilisateurs, il est recommandé d’installer une autre solution d’analyse générale comme Matomo, ou des solutions spécifiques pour WordPress comme Fathom, Koko Analytics ou Simple Analytics , Par exemple.

Mais si vous souhaitez effectuer une analyse approfondie du trafic et des performances de votre site, comprendre comment les utilisateurs interagissent avec votre contenu, identifier les canaux d’acquisition de trafic les plus efficaces ou découvrir les éléments présentant le plus grand potentiel d’amélioration sur votre site web, GA4 est le plus outil complet et la norme actuelle de l’industrie. De plus, il existe déjà une documentation officielle assez complète, des tonnes de guides sur les blogs d’utilisateurs et des milliers de vidéos montrant bon nombre de ses fonctionnalités avancées.

Comment installer GA4

Il existe plusieurs façons d’installer GA4. L’installation est très similaire à celle d’Universal Analytics. Si vous utilisiez déjà cet outil, le plus simple est de changer le code de suivi ou l’identifiant d’une version à l’autre.

Vous trouverez l’identifiant de mesure dans Admin > Flux de données > Détails du flux web, et vous le reconnaîtrez car il s’agit d’un « G » suivi d’un tiret et d’une série de caractères, par exemple, G-PSW1MY7HB4. Cet identifiant de l’exemple est l’identifiant de flux web du “Google Merchandise Store”, une propriété que Google partage à des fins démonstratives et que vous pouvez consulter chaque fois que vous avez déjà un utilisateur Google.

Dans ce même espace, un peu plus bas, dans la section “Google Tag”, vous trouverez la section “View Tag Instructions”, où Google propose quelques recommandations sur la façon d’installer le code de suivi sur votre site web, soit via l’identifiant de mesure que vous avez obtenu dans l’étape précédente, ou via le script complet pour une installation manuelle.

La formule la plus complète pour tous les utilisateurs de WordPress qui se soucient du respect de la vie privée de leurs visiteurs consiste à ajouter le script de suivi GA4 à leur site web via un plugin de cookie. Par exemple, GDPR Cookie Compliance a une section dans ses paramètres pour les cookies tiers où vous pouvez l’ajouter.

Dès que vous avez terminé et enregistré la configuration (suivez la documentation officielle du   plugin pour vous assurer de ne rien manquer), votre propriété GA4 suivra toutes les visites qui acceptent la politique de cookies de votre site web.

Le futur de GA4

D’ici quelques années, Google Analytics 4 sera présent sur des millions de sites web. Non seulement sur ceux où son code de suivi est installé, mais aussi dans des centaines de milliers de tutoriels, manuels, astuces et cours.

Soyez assuré que Google Analytics continuera d’être la norme et que son outil continuera de croître jour après jour. La version actuelle doit encore être peaufinée à bien des égards, mais des modifications et des mises à jour qui augmentent son potentiel sont publiées chaque semaine.

La fermeture d’Universal Analytics devrait signifier une réorientation vers GA4 des nombreuses ressources qu’il consommait, il semble donc logique de penser que les étapes qu’il franchira dans les temps à venir seront plus importantes et plus fermes.

Pour ceux d’entre nous qui l’utilisons quotidiennement depuis de nombreux mois, il s’agit déjà d’une ressource très utile, difficile à apprivoiser mais qui nous donne une vision beaucoup plus large et approfondie de nos actifs numériques. Nous savons que la courbe d’apprentissage est abrupte et qu’il est difficile de surmonter la résistance au changement, mais nous sommes certains que si vous donnez un peu d’amour à votre Google Analytics 4, vous en tirerez des résultats au bout de quelques heures seulement.

L’avez-vous déjà essayé? Qu’en pensez-vous? Avez-vous rencontré des problèmes ? Nous aimerions connaître votre expérience dans les commentaires.

On dit qu’un emoji vaut parfois mille mots. Pour célébrer la Journée mondiale des emojis, nous vous proposons ce défi amusant !

Décrivez votre site Web en utilisant uniquement des emojis  et voyez si nous pouvons deviner de quoi il s’agit.

Les technologies derrière notre nouvel espace client et nos nouveaux outils de site

Nous avons récemment annoncé le lancement de notre nouvel espace client et de nos nouveaux outils de site. Notre COO en a parlé d’un point de vue commercial et de l’importance de ce projet pour notre croissance future. Je voudrais vous donner la perspective technique et pourquoi nous considérons que ces nouvelles interfaces sont également une étape technique pour SiteGround. 

SiteGround a toujours été avant tout une entreprise de services. Cependant, depuis de nombreuses années, la croissance de notre activité est étroitement corrélée à notre évolution technique. Plus nous développons de logiciels en interne, plus la qualité de notre service augmente et plus notre réputation grandit. Non seulement cela, mais nous avons développé la confiance en soi d’une entreprise de haute technologie qui produit des solutions logicielles puissantes et intelligentes et qui est toujours parmi les premières à mettre en œuvre les technologies les plus innovantes. 

Ainsi, lorsque nous avons réalisé que bon nombre de nos idées commerciales étaient ralenties ou rendues impossibles par les limites de notre plate-forme sous-jacente actuellement utilisée, nous avons eu le courage de voir plus grand que ce qui est disponible sur le marché et avons osé tout recréer à partir de zéro

Le défi

D’un point de vue commercial, nous voulions gérer une plate-forme (frontend et backend) qui fonctionnerait sur n’importe quel appareil, aurait un look moderne, serait légère, rapide, sécurisée et facilement évolutive. En traduisant cela en termes techniques, nous avons défini les objectifs suivants :

1. Vitesse et UX avancée

Nous avons décidé d’utiliser des applications d’une seule page car c’est LA technologie incontournable pour une expérience Web plus rapide.  

2. Évolutivité et sécurité

Nous avons décidé d’adopter la philosophie des micro-services et de tout baser sur l’API afin que le système puisse évoluer plus facilement et en cas d’incidents, avoir une portée de dommages plus petite.

Cependant, lorsque vous avez de nombreux services, l’authentification et l’autorisation sont un gros problème. Nous avions donc besoin d’une solution sécurisée, rapide et simple pour le problème de partage de ressources cross-origin, où nous avons choisi d’utiliser des jetons web JSON.

Opérer à grande échelle lorsque vous avez des millions de sites hébergés sur des centaines de milliers de conteneurs nécessite également une orchestration, une découverte de services et une couche de messagerie fiable où nous introduisons Consul et NSQ.

Enfin, une bonne observabilité, surveillance et alerte sont cruciales compte tenu de la complexité du système. Nous avons donc mis Prometheus et Grafana en action.

Les solutions

1. Applications monopage avec React et Redux

Il y a trois ans, lorsque nous avons commencé à travailler sur le projet, nous savions que les applications d’une seule page devenaient de plus en plus populaires car elles permettaient une meilleure expérience utilisateur, des temps de chargement de page plus rapides, l’unification des principes de conception, la conception modulaire, etc. L’écosystème SPA évoluait également rapidement. Il existait de nombreux frameworks JavaScript tels que AngularJS, ReactJS et Vue.js. Il semblait naturel et évident que lorsqu’il s’agissait de quelque chose de léger, rapide et basé sur une API, l’application d’une seule page était la réponse. Après quelques tests avec différents frameworks, nous avons décidé d’utiliser ReactJS + Redux pour notre nouvel espace client et nos outils de site, car il a montré les meilleurs résultats de performance. 

Chargement rapide des pages

Nous avons deux applications principales d’une seule page. L’une est l’application Espace client et l’autre est notre application Outils du site. Ils sont tous deux utilisés toutes les heures par des milliers de personnes et leur nombre ne cesse d’augmenter. Déplacer une partie de la logique d’application vers les navigateurs des utilisateurs, où JS est exécuté localement, a rendu les choses plus rapides. Cela s’explique en partie par le fait que nous avons moins de manipulations de données effectuées dans le backend. L’autre partie vient du fait que nos applications vivent sur une solution de mise en cache d’objets avec CDN devant. Cela permet aux utilisateurs du monde entier de charger rapidement l’application et de commencer à l’utiliser.

Guide de style unifié 

Les applications d’une seule page vous permettent de travailler avec des composants prêts à l’emploi qui sont réutilisables et de faire en sorte que vos interfaces respectent certaines normes. Pour la nôtre, nous avons écrit un guide de style, qui rend nos interfaces homogènes et nous permet d’écrire du nouveau code plus facilement et plus rapidement. Le compromis est que seul le dépôt du guide de style avec tous les exemples représente environ 550 000 lignes de code !

Étant donné que notre développement est assez important et en croissance et que le code avec lequel nous travaillons est assez volumineux, nous devions nous assurer que nos normes seraient respectées et non régressées par les changements. C’est pourquoi nous avons couvert le code avec des tests visuels et e2e (Cypress). Si un changement de code modifie visuellement une certaine page de manière significative, nous avons un drapeau rouge et nous pouvons même arrêter automatiquement le déploiement de code et les builds.

2. API RESTful et microservices

Nous avons maintenant plus de 100 appels API qui peuvent être utilisés pour gérer un seul site hébergé sur nos serveurs. Des choses comme l’installation de WordPress, l’émission d’un certificat SSL privé, la création de comptes de messagerie, la création de nouvelles bases de données MySQL, l’ajout de clés SSH et même la migration de sites entre serveurs se font toutes via des appels API. Ces API nous offrent les avantages suivants :

Favorise l’utilisation de différentes langues

Nous avons des ingénieurs logiciels qui écrivent dans les langages/frameworks suivants pour notre plate-forme :

  • PHP (Symfony, ZendFramework)
  • Perle (danseuse)
  • Aller
  • Python
  • JavaScript (ReactJS, AngularJS), TypeScript 

Afin de nous assurer que toutes les pièces mobiles puissent communiquer nous avions besoin d’API RESTful pour relier la communication.

La conception de l’API RESTful est bien connue

Le côté positif des API RESTful est que pratiquement tous les développeurs de nos jours les comprennent et connaissent le concept. Cela signifie que lorsque nous devons ajouter de nouvelles fonctionnalités, nous n’avons pas besoin de former les développeurs ou de leur faire apprendre les entrées et les sorties de l’ensemble du système afin qu’ils puissent livrer. Ils peuvent simplement se concentrer sur le nouveau morceau de code nécessaire et l’intégrer dans le système.

Nos partenaires peuvent utiliser les API

Le fait que tout soit basé sur une API facilite l’accès aux partenaires et leur permet de créer des sites, d’installer un CMS ou d’effectuer d’autres fonctions sur notre plateforme. Cela nous rend flexibles et constitue une bonne base pour la croissance future de notre entreprise.

Personnalisation de l’accès utilisateur

Les API RESTful appliquent le principe CRUD selon lequel chaque objet manipulé par l’API doit prendre en charge les 4 fonctions suivantes : créer, lire, mettre à jour et supprimer. Couplé à la représentation unifiée REST des ressources, cela permet une séparation facile des actions et un accès personnalisé et un contrôle utilisateur.

Avec les jetons Web JSON, nous avons utilisé les API pour fournir des niveaux d’accès personnalisés dans nos nouvelles interfaces. Il est désormais possible d’autoriser un opérateur à créer des comptes de messagerie pour un nom de domaine, mais de ne pas avoir accès aux comptes de messagerie existants ou à tout autre outil. Pour commencer, nous n’avons introduit que 3 rôles d’utilisateur : propriétaire du site, collaborateur et client en marque blanche, mais nous avons posé les bases pour ajouter facilement de nombreuses options de personnalisation à l’avenir. Le contrôle d’accès basé sur les rôles nous permet de fournir un accès granulaire à des services et fonctionnalités spécifiques. 

Identifiez les problèmes plus facilement et mesurez plus efficacement

Plus la construction est granulaire, plus il est facile d’isoler une pièce non fonctionnelle et de la remplacer ou de la réparer. C’est l’un des principaux avantages que nous pouvons tirer de la philosophie des micro-services. Nous pouvons plus facilement suivre et résoudre les problèmes avec une fonction spécifique fournie par un service spécifique. Nous pouvons également mieux suivre les performances et l’utilisation des différents services afin de pouvoir faire évoluer les ressources de la plate-forme et prévenir les problèmes.

3. Jetons Web JSON

Au moment où nous avons commencé à travailler sur des applications d’une seule page, nous savions que nous devions faire évoluer notre configuration d’authentification et d’autorisation d’une manière ou d’une autre. Étant donné le nombre d’API qui communiquent entre elles et d’utilisateurs qui interagissent également avec ces API (qui étaient réparties sur différents domaines), l’autorisation effectuée à l’ancienne – via des cookies – n’était pas optimale et n’était pas évolutive. Les deux principaux problèmes rencontrés étaient les suivants :

  • La gestion des cookies de partage de ressources cross-origin et des en-têtes HTTP n’est pas simple, et nous voulions l’éviter. La combinaison des jetons Web JSON avec nos propres API nous permet de résoudre ce problème.
  • La mise à l’échelle d’un système backend qui vérifie chaque demande d’API a commencé à paraître terrible du point de vue des performances des sessions.

Après quelques recherches, nous avons décidé d’utiliser JSON Web Tokens pour cette partie de l’infrastructure. Nous avons configuré un système d’authentification et d’autorisation personnalisé de notre côté. Cela nous permet de bénéficier de choses telles que :

  • Mécanisme d’autorisation uniforme pour différentes API
  • Charge de serveur réduite et moins de hits DB
  • Capacité à utiliser cette solution dans différents domaines 
  • Plus facile d’atteindre l’évolutivité horizontale
  • Un niveau de sécurité supérieur pour nos utilisateurs
  • Authentification unique prête à l’emploi

4. Orchestration et messagerie

Plus nous grandissons, plus nous exploitons de serveurs (en tant qu’unité matérielle) et de conteneurs (en tant qu’unité virtuelle). Le conteneur Linux est l’unité principale de notre infrastructure, mais la façon dont nous gérons ces conteneurs évolue avec le temps. Commander de nouveaux serveurs, déployer un conteneur avec la pile logicielle nécessaire, ajouter ce nouveau conteneur à toutes les bases de données qui alimentent différents services et API, tout cela et bien plus nécessite une orchestration. Pour cette partie, nous avons écrit beaucoup de code, spécifique à notre plateforme et nos processus. Pourtant, nous dépendons fortement de projets logiciels bien établis pour atteindre nos objectifs. Nous utilisons HashiCorp Consul pour la découverte de services et l’automatisation des systèmes. Notre plate-forme de messagerie de choix est NSQ. Nous utilisons Ansible pour automatiser de nombreuses tâches de provisionnement de logiciels et de gestion de la configuration.

Deux bons exemples sont nos systèmes retravaillés Let’s Encrypt et WordPress Automatic Updates. Auparavant, ils s’exécutaient localement sur chaque serveur d’hébergement et sont maintenant basés sur une approche distribuée. Les serveurs sont automatiquement enregistrés dans le système. Les services utilisent la découverte automatique fournie par Consul. Ensuite, les API mentionnées ci-dessus sont utilisées et l’émission et le renouvellement SSL se produisent pour chaque nouveau nom de domaine que nous enregistrons dans le système. Il en va de même pour chaque application qui entre dans les systèmes de mises à jour automatiques de WordPress.

5. Prometheus/Grafana pour l’observabilité

La façon dont nous fournissons de nouveaux services a également beaucoup changé. Dans le monde natif du cloud, nous ne nous soucions plus de la défaillance des hôtes individuels. Aucun ingénieur du CNO n’est appelé lorsque cela se produit. Il n’y a pas d’administrateurs système artisanaux qui traitent les machines et les services avec une attention affectueuse. Maintenant, nous surveillons l’ensemble de l’infrastructure avec les objectifs suivants à l’esprit :

  • Nous devons savoir quand les choses tournent mal
  • Nous pouvons déboguer et avoir un aperçu du contexte spécifique
  • Nous devons être capables de voir les changements dans le temps et de faire des prédictions
  • Les données doivent être facilement consommées par d’autres systèmes et processus

Pour rendre ce qui précède plus précis, nous redéfinissons maintenant les scénarios « d’échec » et les alertes que nous recevons pour chacun. Par exemple, nous pouvons recevoir des alertes nécessitant une intervention humaine lorsqu’il y a un impact direct sur l’utilisateur, comme lorsqu’un service qui affecte directement les sites web des clients a été affecté. Mais, nous n’avons peut-être pas besoin d’intervention humaine lorsqu’un nœud spécifique a échoué car les données sont automatiquement redistribuées sur d’autres nœuds et il n’y a aucun impact sur l’utilisateur, donc aucune alerte n’est nécessaire dans ce cas. 

Lorsque nous travaillons sur ces alertes, nous cherchons à passer de l’alerte aux sous-systèmes problématiques. Afin que nos ingénieurs puissent faire une analyse rapide et proposer une résolution rapide, nous devons disposer de suffisamment de données. C’est ce qu’on appelle le traçage distribué, et cela nous permet de suivre les demandes d’utilisateurs spécifiques depuis les navigateurs de nos clients, via plusieurs API et différents services, jusqu’à ce qu’elles atteignent les bases de données et/ou les moteurs de stockage. Chaque enregistrement concernant une demande dans le système de traçage distribué nous donne des informations de profilage des performances et un moyen de corréler les problèmes avec d’autres événements. Nous utilisons le traçage distribué pour déboguer plus rapidement et optimiser notre code. Nous sommes en mesure d’atteindre une vitesse de fonctionnalité plus élevée à cause de cela. 

Pour atteindre tous les objectifs, nous avons choisi d’utiliser Prometheus et Grafana pour le profilage, la collecte de métriques, l’analyse des journaux et le traçage distribué des événements. Nous sommes maintenant en mesure de corréler les informations provenant de plusieurs sources et de révéler et de prévoir les lacunes.

Conclusion

Le logiciel que nous avons dû écrire pour relever le défi et fournir les solutions décrites ci-dessus est énorme mais assez gratifiant. Pour conclure, je vous laisse quelques chiffres directement issus des nouveaux référentiels de logiciels et de notre JIRA :

  • 2 539 604 lignes de code
  • Couverture des tests de code à 99 %
  • 9250 tâches JIRA
  • 199 560 mots dans les historiques JIRA

Nous sommes particulièrement fiers de la couverture des tests de code. Même si 2,5 millions de lignes de code sont impressionnantes, nous savons que ce n’est pas une très bonne mesure de succès. Le fait que tout notre code soit couvert par des tests est cependant une grande réussite. Dès le début, nous avons défini la couverture des tests de code comme l’un de nos principaux critères pour fournir des logiciels de qualité. Et si notre nouvel espace client et nos nouveaux outils de site ne peuvent pas fournir de garanties de qualité, nous ne pouvons pas fournir le service exceptionnel auquel nos clients sont habitués. Soyez assuré que nous nous engageons à fournir le même service d’hébergement de premier ordre, mais cette fois avec des outils de gestion de site et de collaboration encore meilleurs, basés sur les technologies Web les meilleures et les plus innovantes au monde.

Nous avons récemment annoncé le lancement de notre nouvel espace client et de nos nouveaux outils de site. Notre COO en a parlé d’un point de vue commercial et de l’importance de ce projet pour notre croissance future. Je voudrais vous donner la perspective technique et pourquoi nous considérons que ces nouvelles interfaces sont également une étape technique pour SiteGround. 

SiteGround a toujours été avant tout une entreprise de services. Cependant, depuis de nombreuses années, la croissance de notre activité est étroitement corrélée à notre évolution technique. Plus nous développons de logiciels en interne, plus la qualité de notre service augmente et plus notre réputation grandit. Non seulement cela, mais nous avons développé la confiance en soi d’une entreprise de haute technologie qui produit des solutions logicielles puissantes et intelligentes et qui est toujours parmi les premières à mettre en œuvre les technologies les plus innovantes. 

Ainsi, lorsque nous avons réalisé que bon nombre de nos idées commerciales étaient ralenties ou rendues impossibles par les limites de notre plate-forme sous-jacente actuellement utilisée, nous avons eu le courage de voir plus grand que ce qui est disponible sur le marché et avons osé tout recréer à partir de zéro

Le défi

D’un point de vue commercial, nous voulions gérer une plate-forme (frontend et backend) qui fonctionnerait sur n’importe quel appareil, aurait un look moderne, serait légère, rapide, sécurisée et facilement évolutive. En traduisant cela en termes techniques, nous avons défini les objectifs suivants :

1. Vitesse et UX avancée

Nous avons décidé d’utiliser des applications d’une seule page car c’est LA technologie incontournable pour une expérience Web plus rapide.  

2. Évolutivité et sécurité

Nous avons décidé d’adopter la philosophie des micro-services et de tout baser sur l’API afin que le système puisse évoluer plus facilement et en cas d’incidents, avoir une portée de dommages plus petite.

Cependant, lorsque vous avez de nombreux services, l’authentification et l’autorisation sont un gros problème. Nous avions donc besoin d’une solution sécurisée, rapide et simple pour le problème de partage de ressources cross-origin, où nous avons choisi d’utiliser des jetons web JSON.

Opérer à grande échelle lorsque vous avez des millions de sites hébergés sur des centaines de milliers de conteneurs nécessite également une orchestration, une découverte de services et une couche de messagerie fiable où nous introduisons Consul et NSQ.

Enfin, une bonne observabilité, surveillance et alerte sont cruciales compte tenu de la complexité du système. Nous avons donc mis Prometheus et Grafana en action.

Les solutions

1. Applications monopage avec React et Redux

Il y a trois ans, lorsque nous avons commencé à travailler sur le projet, nous savions que les applications d’une seule page devenaient de plus en plus populaires car elles permettaient une meilleure expérience utilisateur, des temps de chargement de page plus rapides, l’unification des principes de conception, la conception modulaire, etc. L’écosystème SPA évoluait également rapidement. Il existait de nombreux frameworks JavaScript tels que AngularJS, ReactJS et Vue.js. Il semblait naturel et évident que lorsqu’il s’agissait de quelque chose de léger, rapide et basé sur une API, l’application d’une seule page était la réponse. Après quelques tests avec différents frameworks, nous avons décidé d’utiliser ReactJS + Redux pour notre nouvel espace client et nos outils de site, car il a montré les meilleurs résultats de performance. 

Chargement rapide des pages

Nous avons deux applications principales d’une seule page. L’une est l’application Espace client et l’autre est notre application Outils du site. Ils sont tous deux utilisés toutes les heures par des milliers de personnes et leur nombre ne cesse d’augmenter. Déplacer une partie de la logique d’application vers les navigateurs des utilisateurs, où JS est exécuté localement, a rendu les choses plus rapides. Cela s’explique en partie par le fait que nous avons moins de manipulations de données effectuées dans le backend. L’autre partie vient du fait que nos applications vivent sur une solution de mise en cache d’objets avec CDN devant. Cela permet aux utilisateurs du monde entier de charger rapidement l’application et de commencer à l’utiliser.

Guide de style unifié 

Les applications d’une seule page vous permettent de travailler avec des composants prêts à l’emploi qui sont réutilisables et de faire en sorte que vos interfaces respectent certaines normes. Pour la nôtre, nous avons écrit un guide de style, qui rend nos interfaces homogènes et nous permet d’écrire du nouveau code plus facilement et plus rapidement. Le compromis est que seul le dépôt du guide de style avec tous les exemples représente environ 550 000 lignes de code !

Étant donné que notre développement est assez important et en croissance et que le code avec lequel nous travaillons est assez volumineux, nous devions nous assurer que nos normes seraient respectées et non régressées par les changements. C’est pourquoi nous avons couvert le code avec des tests visuels et e2e (Cypress). Si un changement de code modifie visuellement une certaine page de manière significative, nous avons un drapeau rouge et nous pouvons même arrêter automatiquement le déploiement de code et les builds.

2. API RESTful et microservices

Nous avons maintenant plus de 100 appels API qui peuvent être utilisés pour gérer un seul site hébergé sur nos serveurs. Des choses comme l’installation de WordPress, l’émission d’un certificat SSL privé, la création de comptes de messagerie, la création de nouvelles bases de données MySQL, l’ajout de clés SSH et même la migration de sites entre serveurs se font toutes via des appels API. Ces API nous offrent les avantages suivants :

Favorise l’utilisation de différentes langues

Nous avons des ingénieurs logiciels qui écrivent dans les langages/frameworks suivants pour notre plate-forme :

  • PHP (Symfony, ZendFramework)
  • Perle (danseuse)
  • Aller
  • Python
  • JavaScript (ReactJS, AngularJS), TypeScript 

Afin de nous assurer que toutes les pièces mobiles puissent communiquer nous avions besoin d’API RESTful pour relier la communication.

La conception de l’API RESTful est bien connue

Le côté positif des API RESTful est que pratiquement tous les développeurs de nos jours les comprennent et connaissent le concept. Cela signifie que lorsque nous devons ajouter de nouvelles fonctionnalités, nous n’avons pas besoin de former les développeurs ou de leur faire apprendre les entrées et les sorties de l’ensemble du système afin qu’ils puissent livrer. Ils peuvent simplement se concentrer sur le nouveau morceau de code nécessaire et l’intégrer dans le système.

Nos partenaires peuvent utiliser les API

Le fait que tout soit basé sur une API facilite l’accès aux partenaires et leur permet de créer des sites, d’installer un CMS ou d’effectuer d’autres fonctions sur notre plateforme. Cela nous rend flexibles et constitue une bonne base pour la croissance future de notre entreprise.

Personnalisation de l’accès utilisateur

Les API RESTful appliquent le principe CRUD selon lequel chaque objet manipulé par l’API doit prendre en charge les 4 fonctions suivantes : créer, lire, mettre à jour et supprimer. Couplé à la représentation unifiée REST des ressources, cela permet une séparation facile des actions et un accès personnalisé et un contrôle utilisateur.

Avec les jetons Web JSON, nous avons utilisé les API pour fournir des niveaux d’accès personnalisés dans nos nouvelles interfaces. Il est désormais possible d’autoriser un opérateur à créer des comptes de messagerie pour un nom de domaine, mais de ne pas avoir accès aux comptes de messagerie existants ou à tout autre outil. Pour commencer, nous n’avons introduit que 3 rôles d’utilisateur : propriétaire du site, collaborateur et client en marque blanche, mais nous avons posé les bases pour ajouter facilement de nombreuses options de personnalisation à l’avenir. Le contrôle d’accès basé sur les rôles nous permet de fournir un accès granulaire à des services et fonctionnalités spécifiques. 

Identifiez les problèmes plus facilement et mesurez plus efficacement

Plus la construction est granulaire, plus il est facile d’isoler une pièce non fonctionnelle et de la remplacer ou de la réparer. C’est l’un des principaux avantages que nous pouvons tirer de la philosophie des micro-services. Nous pouvons plus facilement suivre et résoudre les problèmes avec une fonction spécifique fournie par un service spécifique. Nous pouvons également mieux suivre les performances et l’utilisation des différents services afin de pouvoir faire évoluer les ressources de la plate-forme et prévenir les problèmes.

3. Jetons Web JSON

Au moment où nous avons commencé à travailler sur des applications d’une seule page, nous savions que nous devions faire évoluer notre configuration d’authentification et d’autorisation d’une manière ou d’une autre. Étant donné le nombre d’API qui communiquent entre elles et d’utilisateurs qui interagissent également avec ces API (qui étaient réparties sur différents domaines), l’autorisation effectuée à l’ancienne – via des cookies – n’était pas optimale et n’était pas évolutive. Les deux principaux problèmes rencontrés étaient les suivants :

  • La gestion des cookies de partage de ressources cross-origin et des en-têtes HTTP n’est pas simple, et nous voulions l’éviter. La combinaison des jetons Web JSON avec nos propres API nous permet de résoudre ce problème.
  • La mise à l’échelle d’un système backend qui vérifie chaque demande d’API a commencé à paraître terrible du point de vue des performances des sessions.

Après quelques recherches, nous avons décidé d’utiliser JSON Web Tokens pour cette partie de l’infrastructure. Nous avons configuré un système d’authentification et d’autorisation personnalisé de notre côté. Cela nous permet de bénéficier de choses telles que :

  • Mécanisme d’autorisation uniforme pour différentes API
  • Charge de serveur réduite et moins de hits DB
  • Capacité à utiliser cette solution dans différents domaines 
  • Plus facile d’atteindre l’évolutivité horizontale
  • Un niveau de sécurité supérieur pour nos utilisateurs
  • Authentification unique prête à l’emploi

4. Orchestration et messagerie

Plus nous grandissons, plus nous exploitons de serveurs (en tant qu’unité matérielle) et de conteneurs (en tant qu’unité virtuelle). Le conteneur Linux est l’unité principale de notre infrastructure, mais la façon dont nous gérons ces conteneurs évolue avec le temps. Commander de nouveaux serveurs, déployer un conteneur avec la pile logicielle nécessaire, ajouter ce nouveau conteneur à toutes les bases de données qui alimentent différents services et API, tout cela et bien plus nécessite une orchestration. Pour cette partie, nous avons écrit beaucoup de code, spécifique à notre plateforme et nos processus. Pourtant, nous dépendons fortement de projets logiciels bien établis pour atteindre nos objectifs. Nous utilisons HashiCorp Consul pour la découverte de services et l’automatisation des systèmes. Notre plate-forme de messagerie de choix est NSQ. Nous utilisons Ansible pour automatiser de nombreuses tâches de provisionnement de logiciels et de gestion de la configuration.

Deux bons exemples sont nos systèmes retravaillés Let’s Encrypt et WordPress Automatic Updates. Auparavant, ils s’exécutaient localement sur chaque serveur d’hébergement et sont maintenant basés sur une approche distribuée. Les serveurs sont automatiquement enregistrés dans le système. Les services utilisent la découverte automatique fournie par Consul. Ensuite, les API mentionnées ci-dessus sont utilisées et l’émission et le renouvellement SSL se produisent pour chaque nouveau nom de domaine que nous enregistrons dans le système. Il en va de même pour chaque application qui entre dans les systèmes de mises à jour automatiques de WordPress.

5. Prometheus/Grafana pour l’observabilité

La façon dont nous fournissons de nouveaux services a également beaucoup changé. Dans le monde natif du cloud, nous ne nous soucions plus de la défaillance des hôtes individuels. Aucun ingénieur du CNO n’est appelé lorsque cela se produit. Il n’y a pas d’administrateurs système artisanaux qui traitent les machines et les services avec une attention affectueuse. Maintenant, nous surveillons l’ensemble de l’infrastructure avec les objectifs suivants à l’esprit :

  • Nous devons savoir quand les choses tournent mal
  • Nous pouvons déboguer et avoir un aperçu du contexte spécifique
  • Nous devons être capables de voir les changements dans le temps et de faire des prédictions
  • Les données doivent être facilement consommées par d’autres systèmes et processus

Pour rendre ce qui précède plus précis, nous redéfinissons maintenant les scénarios « d’échec » et les alertes que nous recevons pour chacun. Par exemple, nous pouvons recevoir des alertes nécessitant une intervention humaine lorsqu’il y a un impact direct sur l’utilisateur, comme lorsqu’un service qui affecte directement les sites web des clients a été affecté. Mais, nous n’avons peut-être pas besoin d’intervention humaine lorsqu’un nœud spécifique a échoué car les données sont automatiquement redistribuées sur d’autres nœuds et il n’y a aucun impact sur l’utilisateur, donc aucune alerte n’est nécessaire dans ce cas. 

Lorsque nous travaillons sur ces alertes, nous cherchons à passer de l’alerte aux sous-systèmes problématiques. Afin que nos ingénieurs puissent faire une analyse rapide et proposer une résolution rapide, nous devons disposer de suffisamment de données. C’est ce qu’on appelle le traçage distribué, et cela nous permet de suivre les demandes d’utilisateurs spécifiques depuis les navigateurs de nos clients, via plusieurs API et différents services, jusqu’à ce qu’elles atteignent les bases de données et/ou les moteurs de stockage. Chaque enregistrement concernant une demande dans le système de traçage distribué nous donne des informations de profilage des performances et un moyen de corréler les problèmes avec d’autres événements. Nous utilisons le traçage distribué pour déboguer plus rapidement et optimiser notre code. Nous sommes en mesure d’atteindre une vitesse de fonctionnalité plus élevée à cause de cela. 

Pour atteindre tous les objectifs, nous avons choisi d’utiliser Prometheus et Grafana pour le profilage, la collecte de métriques, l’analyse des journaux et le traçage distribué des événements. Nous sommes maintenant en mesure de corréler les informations provenant de plusieurs sources et de révéler et de prévoir les lacunes.

Conclusion

Le logiciel que nous avons dû écrire pour relever le défi et fournir les solutions décrites ci-dessus est énorme mais assez gratifiant. Pour conclure, je vous laisse quelques chiffres directement issus des nouveaux référentiels de logiciels et de notre JIRA :

  • 2 539 604 lignes de code
  • Couverture des tests de code à 99 %
  • 9250 tâches JIRA
  • 199 560 mots dans les historiques JIRA

Nous sommes particulièrement fiers de la couverture des tests de code. Même si 2,5 millions de lignes de code sont impressionnantes, nous savons que ce n’est pas une très bonne mesure de succès. Le fait que tout notre code soit couvert par des tests est cependant une grande réussite. Dès le début, nous avons défini la couverture des tests de code comme l’un de nos principaux critères pour fournir des logiciels de qualité. Et si notre nouvel espace client et nos nouveaux outils de site ne peuvent pas fournir de garanties de qualité, nous ne pouvons pas fournir le service exceptionnel auquel nos clients sont habitués. Soyez assuré que nous nous engageons à fournir le même service d’hébergement de premier ordre, mais cette fois avec des outils de gestion de site et de collaboration encore meilleurs, basés sur les technologies Web les meilleures et les plus innovantes au monde.

Comment notre nouvelle IA anti-bot empêche des millions d’attaques par force brute

Depuis quelques jours, nous lançons progressivement sur nos serveurs un nouveau système de prévention des bots basé sur l’IA développé par nos propres spécialistes DevOps. Nous constatons déjà des résultats étonnants du fonctionnement du système. Chaque heure, il bloque entre 500 000 et 2 millions de tentatives de force brute sur tous nos serveurs. Ainsi, nous avons empêché un nombre inconnu de connexions non autorisées potentielles, mais ce qui est encore plus important, nous avons réussi à économiser une énorme quantité de ressources de serveur qui peuvent désormais être utilisées pour une activité significative et légitime par nos utilisateurs.

Pourquoi les robots sont-ils un problème ?

Le trafic malveillant est un énorme problème qui affecte probablement tous les sites Web en ligne. Ce trafic est généralement créé par des bots essayant d’accéder à votre site en forçant brutalement sa connexion. Les robots effectuent plusieurs tentatives de connexion en utilisant différentes combinaisons de noms d’utilisateur et de mots de passe. En fait, si vous avez un mot de passe fort, les chances de connexion réussie au bot sont minimes. Cependant, cette activité reste un problème sérieux. Dans leurs tentatives de connexion, les bots utilisent une énorme quantité de ressources serveur. Pour un blog personnel, par exemple, il peut dépasser plusieurs fois le trafic légitime créé par les vrais visiteurs humains. Même si l’activité des bots n’est pas massive et entraîne un déni de service, cela peut encore rendre votre hébergement plus coûteux en vous obligeant à dépasser les ressources de votre compte.

Comment fonctionne notre système ?

L’intelligence artificielle analyse les données de plusieurs serveurs

La principale difficulté dans la lutte contre l’activité des bots est que les bots sont très intelligents et insaisissables. Les attaques de bot utilisent différentes adresses IP et agents utilisateurs, et souvent les données des tentatives visant une connexion à un seul site, ou même un seul serveur, ne sont pas assez bonnes pour déterminer un bot de force brute. Nous avons depuis longtemps un système de prévention de la force brute sur chacun de nos serveurs, mais la nouvelle IA est beaucoup plus efficace car elle est capable de collecter et d’analyser simultanément les données de tous nos serveurs. Sur la base des résultats de l’analyse, il peut également appliquer automatiquement des actions pour arrêter les robots indésirables. Il existe de nombreux indicateurs que notre IA surveille afin de détecter les comportements malveillants et de bloquer le mauvais trafic. Certains d’entre eux sont:

  • Tentatives de connexion infructueuses dans la majorité des applications Web populaires – WordPress, Drupal, Joomla, Magento, etc.
  • Nombre de connexions simultanées à différentes URL
  • Différents types de requêtes et vulnérabilités DDoS connues dans les applications
  • Liste dynamique des mauvais agents utilisateurs qui est constamment mise à jour

Nous avons introduit la page captcha du défi

Une fois que notre système signale une certaine adresse IP ou un agent utilisateur comme malveillant, il est immédiatement bloqué et contesté avec une page Captcha. Le système apprend en permanence comment minimiser les faux positifs. Si un visiteur humain atteint la page captcha et la résout, l’adresse/l’agent lié à cette solution est mis sur liste blanche. Si la page captcha persiste (par exemple, vous la voyez plus d’une fois pendant 24 heures), veuillez contacter notre support.