Votre site WordPress est-il évolutif ?
Publié: 2017-05-16Votre site WordPress est-il évolutif ? Il existe de nombreux exemples d'installations WordPress à grande échelle dans la nature. WordPress.com, par exemple, est une énorme installation multisite qui enregistre des dizaines de millions de pages vues chaque mois. Il sert également des milliers d'utilisateurs à tout moment.
D'autres exemples incluent Time, TechCrunch et CNN. Il n'y a aucun doute là-dessus. Vous pouvez certainement créer un site Web évolutif avec WordPress suffisamment puissant pour gérer n'importe quelle quantité de trafic, à condition de créer le bon environnement. La configuration de votre installation à l'échelle peut être complexe, mais c'est un investissement rentable pour tout propriétaire de site. Dans cet article, nous passons en revue quelques domaines sur lesquels vous pouvez vous concentrer pour garantir l'évolutivité et vous proposons des conseils sur la façon de configurer un environnement évolutif.
Qu'entendons-nous par évolutif ?
Qu'est-ce qui rend un site WordPress évolutif ? Un site Web WordPress évolutif a la capacité d'augmenter la capacité en augmentant ou en augmentant.
- Mise à l'échelle – augmentez la puissance du matériel (plus de RAM, un processeur plus puissant).
- Évolutivité – augmentez la capacité en ajoutant plus de nœuds (en ayant des copies identiques de votre site réparties sur plusieurs machines).
Cela vous donne la flexibilité nécessaire pour vous adapter à la croissance. Fondamentalement, vous voulez pouvoir étendre votre site sans aucun problème. Avec WordPress, vous n'aurez pas à vous soucier du logiciel. Le noyau WordPress implémente des conventions d'architecture logicielle en couches, comme la séparation du balisage (HTML et CSS) des données (base de données MySQL). Ci-dessous, nous explorerons quelques moyens de garantir une évolutivité maximale.
Environnement de développement

Image de Sentavio / shutterstock.com
L'une des parties les plus difficiles de la mise à l'échelle d'un site WordPress est la mise en place d'un environnement de développement. Un bon environnement de développement reflétera l'environnement de production sans aucun problème. Si vous avez un petit site, vous pouvez vous en sortir avec le développement en direct, même s'il ne sera certainement pas à l'échelle.
Vous aurez besoin d'une sorte de contrôle de version pour vous assurer que les développeurs ne se marchent pas sur les pieds. Le logiciel de contrôle de version enregistre les modifications apportées à vos fichiers au fil du temps afin qu'ils puissent être rappelés ultérieurement. De plus, c'est un moyen beaucoup plus efficace et professionnel de développer un site Web WordPress évolutif.
Il existe de nombreuses solutions élégantes disponibles grâce au travail acharné de la communauté open source. Git est un logiciel de contrôle de version distribué qui permet à plusieurs développeurs de travailler à distance sur des référentiels distincts. Il est fiable, rapide et capable de gérer des projets incroyablement importants. Après tout, Git a été créé par Linus Torvalds pour le développement Linux.
Vous pouvez créer un environnement de développement qui tue avec VVV (Varying Vagrant Vagrants). Ce logiciel open source gratuit est idéal pour créer des environnements de développement distribués avec WordPress. Consultez notre guide ultime pour configurer votre environnement de développement WordPress pour un didacticiel détaillé à ce sujet. WordPress.org propose également un didacticiel utile sur l'installation de VVV.
Évolutivité horizontale
La mise à l'échelle, ou mise à l'échelle horizontale, est l'un des concepts les plus importants de la création d'un environnement évolutif. Cela vous permet d'exécuter votre site Web sur de nombreuses machines différentes (serveurs). Certaines personnes appellent l'infrastructure « architecture élastique » - parce que la quantité de ressources dont vous disposez peut augmenter ou diminuer en fonction de la quantité nécessaire.
Cela se fait grâce à des méthodes de cloud computing telles que le clustering, l'équilibrage de charge et la virtualisation. En informatique, le clustering est le processus d'organisation d'objets similaires en groupes. Ainsi, un seul cluster contiendra les fichiers, la base de données et les logiciels de votre site Web. Le clustering garantit la haute disponibilité de votre site Web en éliminant les problèmes dus aux pannes matérielles et logicielles. Comment ça marche?
Si votre site connaît un pic de trafic, un équilibreur de charge déterminera comment allouer de manière appropriée plus de ressources pour prendre le relais en évoluant - cela se produit de manière dynamique et vos visiteurs ne remarquent jamais rien. L'idée est que vous ayez des copies identiques de votre site Web réparties sur plusieurs machines, et qu'elles se connaissent toutes. Il y a donc toujours un ordinateur dans le cluster en veille s'il y a une augmentation du trafic ou qu'un composant de la pile tombe en panne.
Les services d'hébergement cloud comme Amazon Web Services (AWS) ou RackSpace sont deux fournisseurs d'hébergement cloud populaires qui permettent une évolutivité horizontale. Consultez ce didacticiel sur le déploiement d'un site Web WordPress hautement disponible avec AWS pour un exemple d'infrastructure de serveur typique avec une architecture élastique.
Mise en cache
Un cache est un espace de stockage temporaire pour la mémoire. La mise en cache peut vous aider à diffuser du contenu plus rapidement et à éviter les problèmes de simultanéité. Chaque CMS a besoin d'une sorte de mise en cache, WordPress n'est pas différent. La mauvaise nouvelle est que la mise en cache peut être ridiculement complexe. La bonne nouvelle est que la communauté open source a proposé de nombreuses solutions différentes sur le sujet. Il existe de nombreux outils pour vous aider, notamment WP Super Cache et Batcache.

Mise en cache par proxy inverse (mise en cache des pages)
La mise en cache par proxy inverse est un moyen efficace de charger des pages Web dynamiques. Le proxy inverse est un service qui agit comme intermédiaire entre WordPress et le navigateur. Cela peut aider à réduire la charge sur votre serveur principal et à diminuer le temps de chargement perçu des pages.
Le problème est que les serveurs PHP sont lourds en ressources. Ils exécutent un grand nombre de tâches complexes, ce qui peut enliser votre serveur. Vous pouvez alléger la charge sur votre serveur en implémentant un proxy inverse.
Par exemple, supposons que vous ayez un visiteur sur la page d'accueil de votre site Web. C'est la première visite de la journée. À ce stade, il n'y a pas encore de version mise en cache de la page d'accueil.
- L'utilisateur entre l'URL dans la barre d'adresse, demandant une page au serveur.
- La demande passe par le proxy, qui n'a pas encore de version mise en cache de la page, vers WordPress.
- WordPress génère la page d'accueil et renvoie la réponse au proxy inverse.
- Le proxy envoie ensuite la réponse au navigateur et enregistre une copie en cache de cette page.
- Tant que le cache est là, tout utilisateur demandant cette page recevra la version mise en cache de la page.
Mise en cache d'objets
Le concept derrière la mise en cache d'objets est similaire à la mise en cache de pages, sauf qu'il fonctionne sur des objets individuels. De nombreux problèmes de simultanéité peuvent apparaître lorsque de nombreux utilisateurs sont connectés à votre site. La mise en cache d'objets enregistre un objet d'application (tel qu'une vidéo, une image, un document) dans un magasin de données. En mettant en cache les objets d'application, vous êtes moins dépendant de la base de données, libérant ainsi beaucoup de mémoire.
Il existe de nombreuses options pour la mise en cache. Les réseaux de diffusion de contenu tels que Cloudflare, Akamai, EdgeCast et KeyCDN peuvent agir comme des proxy inverses massifs. Varnish et WP Super Cache sont deux options populaires pour implémenter la mise en cache avec WordPress.
Performances des requêtes

Image d'Oleg Erin / shutterstock.com
La base de données peut souvent être la cause des pires goulots d'étranglement. Les requêtes lentes peuvent bloquer l'application PHP sur votre serveur et arrêter toute activité, même si vous avez une architecture élastique. Comme je l'ai mentionné précédemment, les serveurs PHP peuvent ralentir considérablement le serveur. Si la mise en cache ne fait pas le travail, vous pouvez trouver des moyens d'améliorer les performances de vos requêtes en identifiant les requêtes lentes.
Les requêtes lentes sont dues à des problèmes avec la base de données SQL, le réseau exécutant votre site ou le serveur. Il existe diverses raisons pour lesquelles cela peut se produire. Il n'y a certainement pas de solution unique. La première étape pour améliorer les performances des requêtes consiste à identifier les requêtes lentes.
Une fois que vous avez identifié le problème, vous pouvez prendre des mesures. Parfois, la réponse peut être aussi simple que d'acheter plus de bande passante, d'autres fois, vous devrez peut-être modifier le code, ce qui peut devenir délicat.
Consultez le plugin WordPress Query Monitor si vous recherchez un outil pour surveiller les requêtes.
Améliorer la recherche
Si vous avez un grand nombre de publications, disons 1 million, vous devrez être attentif à la configuration de vos bases de données. La plupart des grands sites ont un index de recherche optimisé. Qui est un moteur de recherche personnalisé ajouté à WordPress.
La requête de recherche de contenu dans WordPress ne fonctionne pas bien si vous avez un grand nombre de publications sur votre site. Il laisse également à désirer en termes de vitesse. Une solution courante à ce problème consiste à créer un index de recherche dédié. Cela permet de garder ces requêtes hors de la base de données, offrant aux utilisateurs une meilleure expérience de navigation, tout en augmentant les performances de votre base de données.
Les moteurs de recherche populaires pour les sites WordPress à grande échelle incluent ElasticSearch et ApacheSolr.
Emballer
Il est également important de commencer à la bonne échelle. Commencez simplement, puis optimisez plus tard. Pour citer Donald Knuth, "l'optimisation prématurée est la racine de tous les maux". Adaptez-vous à la croissance, mais n'essayez pas de serrer un énorme site de commerce électronique sur une base minuscule ou vice versa. Vous n'aurez peut-être pas besoin de créer un site évolutif s'il s'agit de quelque chose de simple comme une page d'événement.
En règle générale, l'architecture élastique est la norme pour les sites Web de commerce électronique. Bien que certaines de ces choses puissent sembler incroyablement complexes, vous n'avez pas vraiment besoin de tout comprendre. Tant que vous maîtrisez les bases, vous pouvez créer un environnement robuste pour un site à grande échelle. Tout ce que vous avez à faire est de trouver les bons services cloud et de vous connecter au bon CDN.
N'hésitez pas à partager vos expériences dans la section commentaires. Quelles mesures avez-vous prises pour rendre votre site WordPress évolutif ?
Image miniature de l'article par turbodesign / shutterstock.com
