Nouveau serveur, CloudFlare et optimisation : Le site TeraGeek s’envole !

Encore un upgrade pour le site TeraGeek, décidément « on n’arrête pas le progrès » ! Entre le serveur en lui-même, le passage à CloudFlare, les optimisations faites sur le site et celles faites sur le serveur, on est au top ! Voici comment nous en sommes arrivés à un tel niveau d’excellence…

Hardware : Upgrade et changement de datacenter

Comme vous le savez peut-être, je travaille depuis Avril 2017 en tant que technicien support chez HaiSoft. Il s’agit d’un hébergeur Orléanais qui propose donc de l’hébergement infogéré de très haute qualité avec un contact vraiment humain et personnalisé avec les clients.

Quoi de plus naturel que de souhaiter héberger son site chez un tel employeur en qui on a la plus totale confiance ?

Déjà heureux de ma VM (machine virtuelle) hébergée dans notre datacenter à Paris, un collègue et moi avons saisi l’opportunité de passer sur un serveur à nous que nous avons séparé en deux VM.

J’ai donc eu le plaisir de mettre personnellement en rack un serveur Dell, avec Xeon 1225 v5 (4C) RAID 1 de SSD de 500Go, 16Go RAM et une petite grappe de HDD de 500Go au cas où.

Nous avons choisi de mettre ce serveur dans notre datacenter à Tours, ce qui permet de goûter d’autres fraîcheurs (refroidissement par évaporation en l’occurrence dans ce DC !). Cela aura valu un changement d’IP qui n’est pas une tâche à négliger dans une telle opération de migration de VM, car non-seulement cela nécessite des modifications sur le serveur, mais j’ai également dû ajuster les zones DNS de tous mes autres domaines pour pointer sur ces bonnes IP.

Il s’agit donc d’un serveur Dell relativement simple sur papier. Et pourtant, sa vitesse est incroyable ! Nous n’avons jamais connu une telle vitesse, pas même sur le serveur OVH hors de prix (200€/mois) dont les specs faisaient quasiment pleurer les plus jeunes de nos membres (avec un hexacore 128Go de RAM avec RAID 5 hard de HDD). Comme quoi, la taille peut compter, mais elle ne fait pas tout.
D’une part Plesk, configuré aux petits oignons de base grâce à l’expertise HaiSoft permet de tirer le meilleur de ce hardware, mais aussi, comme dans un PC, le SSD fait vraiment la différence, en particulier sur un serveur car il est constamment amené à faire du multitâche.

En somme, nous (TeraGeek) n’aurions désormais aucun intérêt à avoir un serveur web plus puissant actuellement : cela n’améliorerait pas les temps de chargement et nous sommes très loin de saturer les différentes limites (RAM, CPU, I/O, bandwidth). Pour vous donner une idée, j’ai fait un test de performances, avec une simulation de 25 users qui chargent les pages plusieurs fois par seconde, on peak à 60% de CPU avec une moyenne de 35%, or… Cela n’arrive jamais en conditions réelles. Pour ceux qui parlent le langage Linux, le serveur tourne désormais la plupart du temps à moins de 0.1 de load. Les pages chargent si vite par rapport à notre traffic que ça n’a pas le temps d’augmenter. Bref, c’est une situation plus qu’idéale.

J’adresse et compte également sur vous pour adresser un grand merci à HaiSoft pour cette opportunité !

HaiSoft Logo

Optimisation Software

Pour rappel, le serveur virtualisé qui héberge TeraGeek tourne sous Plesk. Il s’agit de THE outil ultime utilisé par HaiSoft qui m’a fait changer d’avis sur les interfaces de gestion de serveur : Simple, intuitif et complet, très sécurisé, au final le top de ce qui se fait sous Linux, un gain de temps absolu et un résultat bien plus propre que tout ce qu’on peut bidouiller à la main.
Plesk a notamment l’avantage de supporter rapidement le software le plus important, par exemple les dernières versions de PHP qui peuvent être choisies indépendamment par domaine.

Dès la sortie de PHP 7.2 il y a quelques mois, notre site était parfaitement à jour (merci les mises à jour automatiques de WordPress avec Plesk) et donc 100% compatible PHP 7.2, je l’y ai donc passé directement ! Cela permet ainsi la meilleure sécurité et les meilleures performances possibles à l’heure actuelle. Pour rappel/info, PHP 7 divise par 2 l’utilisation CPU par rapport à PHP 5 et peut diviser jusqu’à 10 l’utilisation de mémoire PHP dans certains cas.

Mais ce n’est pas tout ! Plesk propose le module PageSpeed de Google que j’ai testé et aussitôt adopté. Il optimise les images à la volée pour s’assurer qu’elles consomment le moins de bande passante possible et donc qu’elles se chargent rapidement même chez les personnes ayant une connexion lente (ou sur smartphone). Cela permet aussi la concaténation des scripts, réduisant drastiquement le nombre de fichiers envoyés aux visiteurs et le tout améliore le référencement du site par Google.

Mais ce n’est encore pas tout ! Plesk propose également un « reverse Proxy Nginx », nom barbare pour dire que c’est un second serveur web qui passe les fichiers aux utilisateurs. Quel intérêt me direz-vous ? Il y en a deux majeurs:
– Cela permet de profiter de HTTP/2 (qui réutilise notamment les sockets de connexion pour envoyer d’autres fichiers, faisant gagner en temps de chargement)
– Cela permet d’activer la compression des fichiers avant de les envoyer aux visiteurs, économisant ainsi de la bande passante et faisant donc gagner en temps de chargement pour les visiteurs à connexion lente

Mais aussi et surtout, je voulais le faire depuis longtemps, je l’ai fait il y a quelques mois : la base de données est passée de MySQL à MariaDB 10 pour là encore grappiller un peu de performance.

Optimisation du site

Le site aussi pouvait être optimisé. Je me suis séparé de quelques modules qui ne sont plus nécessaires grâce à Plesk :
– Les statistiques… Ça prend de la place dans la base de données, ça ralenti drastiquement le site alors que Plesk fournit d’excellentes statistiques
– Un plugin de sécurité overkill qui ralentissait le site, tout ça pour empêcher les logins de robots et prévenir des updates : Plesk fait déjà ça aussi, sans pertes de performances.
– Quelques autres plugins qui n’ont pas d’utilité directe pour le front-office, que je désactive désormais et n’active qu’en cas de besoin.

J’ai fait le choix de remettre malgré leur gourmandise en CPU les modules BuddyPress et BBPress que j’avais supprimés récemment à cause de leur non optimisation, car désormais leur présence a beaucoup moins d’impact sur le serveur. Ils apportent quand même d’intéressantes fonctionnalités notamment au niveau du login et de l’inscription.

J’ai aussi passé un certain temps à m’assurer que les images étaient optimisées et qu’il y avait le moins de scripts externes au site de chargés. Goodbye le widget de Discord qui n’est pas assez optimisé. Cela a fait gagner pas mal de points sur GTmetrix qui permet d’évaluer l’optimisation d’un site.

La prochaine étape majeure sera de faire un multisite WordPress pour déporter la boutique WooCommerce sur shop.terageek.org et ainsi alléger grandement le site; car WooCommerce est désormais le plugin le plus gourmand présent sur le site, il y a tout de même plus de 30% de performances à récupérer. De plus, la boutique n’est pas au coeur de notre activité, c’est un complément qui permet de financer notre serveur de jeu, c’est donc dommage qu’elle ralentisse le site. Ce n’est qu’une question de temps pour que je comprenne comment bien faire ça, de sorte à linker les users du site et de la boutique, pour qu’il n’y aie pas besoin de se loguer 2x ou de se réinscrire. Si quelqu’un a de l’expérience en multisite et veut me filer un coup de main, il est évidemment bienvenu.

Au final, le site est passé de plus d’1s de génération de page il y a 1 an, à 0,65s avec une première salve d’optimisation il y a 6 mois, puis à 0,40s sur le nouveau serveur et désormais à moins de 0,29s de temps de génération de page. En virant WooCommerce, on pourra passer sous la barre symbolique plébiscitée par Google des 0,2s de chargement.

Et les emails, ça tombe toujours en spams ?

Et bien non ! Là encore, merci HaiSoft, nous utilisons désormais un relai de mails MailChannels, qui permet, conjointement à une configuration parfaite de la zone DNS de terageek.org et du serveur de mails, d’assurer une délivrabilité exceptionnelle vers tous les destinataires, y-compris les capricieux Yahoo et Microsoft. Les mails seront donc reçus et les inscriptions facilitées.

 

Et vous me mettrez un petit CDN là dessus ?

Enfin, j’ai passé le site sous CloudFlare. Je songeais principalement à le faire car c’est recommandé par GTmetrix pour améliorer les temps de chargement à l’étranger. Non seulement la version gratuite nous suffit, mais ça protège aussi des attaques de bots qu’aucun autre filtre ne peut contrer sur un serveur web : DoS et DDoS, c’est donc toujours bon à avoir. Cela a pris 24h (il faut patienter un peu pour bien faire) mais s’est parfaitement déroulé, avec en prime l’activation de DNSSEC qui protège la zone DNS et donc l’authenticité du site : Pourquoi pas ? Quoi qu’il en est, le score GTmetrix a encore grimpé.

Le résultat

Notre site est donc sur un serveur qui répond parfaitement en toutes conditions. Même avec un backup en cours qui est sûrement la tâche la plus lourde, il n’y a absolument aucun ralentissement.
Je ne croyais pas pouvoir dire ça un jour, mais le résultat est quasi parfait. Nous allons pouvoir nous atteler à développer tranquillement et sereinement l’activité de TeraGeek pour votre plaisir à tous !

Je vous laisse sur une image qui traduit toute la satisfaction du monde pour un Webmaster :

Optimisation : Difficile de faire mieux avec un site WordPress !

Laissez un commentaire

6 commentaires sur “Nouveau serveur, CloudFlare et optimisation : Le site TeraGeek s’envole !”