Hébergement haute performance pour WordPress LearnDash

Publié: 2018-12-21

WordPress LearnDash est sans doute l'une des plateformes d'apprentissage en ligne les plus performantes du monde WordPress LMS. Il offre des fonctionnalités avancées pour la création de cours, la monétisation via l'intégration de la passerelle de paiement et l'administration des profils d'utilisateurs, des groupes et des affectations de cours. Cela fonctionne aussi sur mobile.

Bien que LearnDash soit un acteur de premier plan, il est très gourmand en ressources. Par nature, les applications qui doivent restituer dynamiquement du contenu personnalisé en temps réel, comme un LMS (Learning Management System), nécessiteront que le contenu soit en grande partie non mis en cache et que les utilisateurs soient connectés au backend. LearnDash ne fait pas exception à ce problème inhérent.

Dans cet article, nous verrons pourquoi les fournisseurs d'hébergement WordPress ne peuvent pas faire grand-chose, en plus de faire correspondre la puissance du processeur nécessaire au bon fonctionnement de LearnDash, et comment Pressidium résout ces problèmes de performances générales.

Comment WordPress LearnDash consomme-t-il beaucoup de ressources ?

Peu importe si vous avez un site d'apprentissage en ligne à faible ou à fort trafic, vous rencontrerez des problèmes techniques une fois que vous commencerez à lui imposer des demandes. Cela peut se faire par le nombre d'utilisateurs enregistrés, le nombre de cours, le nombre d'utilisateurs actifs simultanément ou toute combinaison de ceux-ci. Ces problèmes peuvent aller de l'utilisation complète du matériel et de la limitation, des problèmes d'écriture de base de données aux utilisateurs confrontés à de graves ralentissements, voire des interruptions pendant le temps de cours.

Limitation de la base de données et conflits de transaction

LearnDash exécute de longs ensembles de requêtes SQL. Par exemple, si vous avez un grand nombre d'utilisateurs, disons 20 000, LearnDash les récupérera tous même si vous ne souhaitez sélectionner qu'un seul profil à modifier.

Les solutions de base de clustering de serveurs sont également peu utiles dans ce cas. Presque chaque action effectuée dans LearnDash met à jour la base de données. Lorsque le cluster de serveurs qui dessert votre site d'apprentissage en ligne LearnDash est soumis à une charge importante, les nœuds du serveur du cluster écrivent constamment dans la base de données. Cela peut entraîner des conflits de transaction .

Dans les situations de trafic élevé, cela peut souvent entraîner des verrous de table de base de données ou un verrouillage complet de la base de données, interdisant l'accès en écriture à tout le monde. Ceci bien sûr, est désastreux.

Utilisation maximale du processeur

WordPress LearnDash est par nature une application dynamique qui ne coopère pas bien avec les stratégies de mise en cache. Ce n'est pas la faute de LearnDash comme nous l'avons dit au début, mais cela signifie que vous ne pouvez pas simplement accélérer ses performances, simplement en mettant en cache les réponses HTTP.

En effet, il y a des utilisateurs connectés, qui sont au milieu de tests à choix multiples, avec des minuteries et du contenu qui doivent être rendus de manière unique pour eux, et il y a simplement très peu de choses qui peuvent être mises en cache.

Donc, avoir presque tout le contenu non mis en cache signifie que chaque utilisateur LearnDash qui passe un test générera au moins 1 processus PHP backend. Imaginez ce qui se passera si 50 utilisateurs se connectent presque simultanément !

En général, pour qu'un utilisateur profite d'une session LearnDash fluide, il aura besoin de ressources CPU dédiées. Cependant, la demande de CPU n'est pas constante, car chaque utilisateur peut passer un certain temps d'inactivité en ligne, tout en faisant le test. Si le nombre total de processus PHP backend en attente de traitement est un multiple des ressources totales de votre pool de processeurs et que vous ne faites rien de drastique pour réduire la charge (par exemple, arrêtez certains d'entre eux), une avalanche commencera et vous perdrez tout le serveur.

Pour résumer, les configurations VPS simples et les plans d'hébergement WordPress qui ne sont pas Enterprise ne pourront gérer au mieux que quelques dizaines d'utilisateurs connectés. Dans les cas où tous les utilisateurs effectuent une action presque simultanément, vous atteindrez un pic et tout commencera à échouer.

Architecture d'entreprise pour WordPress LearnDash

Maintenant que nous avons brièvement abordé certains des défis de performance de LearnDash et brossé un tableau légèrement déconcertant, nous aimerions vous montrer comment nous les abordons chez Pressidium et pourquoi notre architecture d'entreprise est considérée par la communauté LearnDash comme l'une des meilleures. , sinon les meilleures plates-formes sur lesquelles exécuter LearnDash.

La vérité est que la majorité de nos concurrents découragent simplement les grands sites LMS car ils ne peuvent pas faire face aux exigences que cela impose à leur infrastructure. Comme nous l'avons mentionné précédemment, les configurations VPS simples, ou même les systèmes de clustering de base, ne peuvent tout simplement pas gérer un trafic élevé ou un grand nombre d'utilisateurs simultanés. C'est pourquoi nous ne recommandons ni n'encourageons son utilisation sur nos plans standards dans ces cas. La seule exception étant pour le développement ou les très petites configurations.

Nous recommandons généralement Pressidium Enterprise comme la meilleure option pour les grands sites de production exécutant LearnDash. Nous gérons et exploitons avec succès les installations Enterprise LearnDash avec des milliers d'utilisateurs simultanés .

Pour résoudre le problème de limitation de la base de données, nous avons développé certaines techniques d'optimisation de base de données qui accélèrent LearnDash tout en maintenant la haute disponibilité (LearnDash est malheureusement incompatible par nature avec les bases de données multi-maîtres à haute disponibilité). Nous les appelons affectueusement « notre sauce secrète » car ces techniques sont hautement personnalisées et adaptées exactement à notre architecture d'entreprise unique.

Gardez cependant à l'esprit que ces personnalisations ne peuvent être appliquées qu'aux plans d'entreprise car ils offrent un cluster de serveurs d'entreprise dédié à votre disposition. Ils peuvent également être appliqués à d'autres plugins LMS, au cas où vous n'utiliseriez pas LearnDash dans votre classe.

Notre solution au problème de pointe du processeur, en revanche, est beaucoup plus simple : ajoutez plus de puissance brute au processeur. C'est la raison pour laquelle nous n'avons pas utilisé de fournisseurs de cloud computing à usage général tels que Google Cloud ou AWS, mais avons construit notre plate-forme à partir de zéro par nous-mêmes. Le résultat est une rentabilité qui se traduit par beaucoup plus de ressources pour nos clients à des niveaux de prix similaires ou même inférieurs à ceux de nos concurrents :

Configuration haute disponibilité 2N+1 dans un cluster de serveurs dédiés à 5 nœuds à charge équilibrée avec des facteurs d'isolation et de redondance plus élevés. Ceux-ci permettent à votre site WordPress LearnDash de se mettre à l'échelle automatiquement pendant les pics de trafic et les effets de slashdot, et d'être hautement disponible et tolérant aux pannes.

Nous sommes fiers des capacités de performance LearnDash de notre plateforme, car elles atténuent complètement le stress des propriétaires de sites LearnDash, qui doivent faire face à des problèmes techniques au milieu d'une session. Mais nous sommes encore plus fiers parce que notre architecture d'entreprise prend en charge les rêves et les besoins d'apprentissage des utilisateurs de LearnDash, du monde entier.

Rejoignez Pressidium et transformez votre site LearnDash en un centre d'apprentissage en ligne performant. Partagez vos défis LearnDash avec nos ingénieurs et demandez un devis d'entreprise en cliquant sur le bouton ci-dessous !