Hosting ad alte prestazioni per WordPress LearnDash

Pubblicato: 2018-12-21

WordPress LearnDash è probabilmente una delle piattaforme di e-learning di maggior successo nel mondo LMS di WordPress. Offre funzionalità avanzate per la creazione di corsi, la monetizzazione tramite l'integrazione del gateway di pagamento e l'amministrazione di profili utente, gruppi e assegnazioni di corsi. Funziona anche su cellulare.

Sebbene LearnDash sia un attore di primo piano, è molto dispendioso in termini di risorse. Per natura, le applicazioni che devono eseguire il rendering dinamico di contenuti personalizzati in tempo reale come un LMS (Learning Management System) richiederanno che il contenuto sia in gran parte non memorizzato nella cache e che gli utenti accedano al back-end. LearnDash non fa eccezione a questo problema intrinseco.

In questo post, vedremo perché non c'è molto che i provider di hosting di WordPress possono fare, oltre a abbinare la potenza della CPU necessaria per il corretto funzionamento di LearnDash e come Pressidium risolve questi problemi di prestazioni generali.

In che modo WordPress LearnDash richiede molte risorse?

Non importa se hai un sito di e-learning a basso o alto traffico, incontrerai problemi tecnici una volta che inizierai a richiederlo. Ciò potrebbe essere dovuto al numero di utenti registrati, al numero di corsi, al numero di utenti attivi contemporaneamente o a qualsiasi combinazione di questi. Questi problemi possono variare da pieno utilizzo e limitazione dell'hardware, problemi di scrittura del database a utenti che subiscono gravi rallentamenti, persino interruzioni durante il corso.

Limitazione del database e conflitti di transazione

LearnDash esegue alcuni lunghi set di query SQL. Ad esempio, se hai un numero elevato di utenti, diciamo 20.000, LearnDash li recupererà tutti anche se desideri selezionare solo un profilo da modificare.

Anche le soluzioni di base per il clustering dei server sono di scarso aiuto in questo caso. Quasi ogni azione eseguita in LearnDash aggiorna il database. Quando il cluster di server che serve il tuo sito di e-learning LearnDash è sottoposto a un carico elevato, i nodi del server del cluster scrivono costantemente nel database. Questo può portare a conflitti di transazione .

In situazioni di traffico elevato, questi possono spesso comportare blocchi di tabelle del database o un blocco completo del database, impedendo l'accesso in scrittura a tutti. Questo ovviamente è disastroso.

Utilizzo massimo della CPU

WordPress LearnDash per sua natura è un'applicazione dinamica che non collabora bene con le strategie di memorizzazione nella cache. Questa non è colpa di LearnDash come abbiamo detto all'inizio, ma significa che non puoi semplicemente accelerarne le prestazioni, semplicemente memorizzando nella cache le risposte HTTP.

Questo perché ci sono utenti che hanno effettuato l'accesso, che sono nel mezzo di test a scelta multipla, con timer e contenuti che devono essere visualizzati in modo univoco per loro, e semplicemente c'è molto poco che può essere memorizzato nella cache.

Quindi avere quasi tutti i contenuti non memorizzati nella cache significa che ogni utente LearnDash che sta effettuando un test genererà almeno 1 processo PHP di back-end. Immagina cosa accadrà se 50 utenti accedono quasi contemporaneamente!

In generale, affinché un utente possa sperimentare una sessione di LearnDash fluida, avrà bisogno di risorse CPU dedicate. Tuttavia, la richiesta di CPU non è costante, poiché ogni utente può trascorrere del tempo inattivo online durante l'esecuzione del test. Se la quantità totale dei processi PHP di back-end in attesa di essere serviti è un multiplo delle risorse totali del pool di CPU e non si fa qualcosa di drastico per ridurre il carico (ad esempio, spegnerne alcuni), inizierà una valanga e perderai l'intero server.

Per riassumere, semplici configurazioni VPS e piani di hosting WordPress che non sono Enterprise saranno in grado di gestire al meglio solo poche dozzine di utenti che hanno effettuato l'accesso. Nei casi in cui tutti gli utenti eseguono alcune azioni quasi contemporaneamente, raggiungerai un picco e tutto inizierà a fallire.

Architettura aziendale per WordPress LearnDash

Ora che abbiamo brevemente accennato ad alcune delle sfide prestazionali di LearnDash e abbiamo dipinto un quadro leggermente sconcertante, vorremmo mostrarti come le affrontiamo in Pressidium e perché la nostra Enterprise Architecture è considerata dalla community di LearnDash come una delle migliori , se non le migliori, piattaforme su cui eseguire LearnDash.

La verità è che la maggior parte dei nostri concorrenti scoraggia semplicemente i grandi siti LMS in quanto non possono far fronte alle richieste che impongono alla propria infrastruttura. Come accennato in precedenza, le semplici configurazioni VPS o anche i sistemi di clustering di base semplicemente non possono gestire un traffico elevato o un numero elevato di utenti simultanei. Questo è il motivo per cui in questi casi non ne consigliamo né incoraggiamo l'uso sui nostri piani standard. L'unica eccezione riguarda lo sviluppo o le configurazioni molto piccole.

In genere consigliamo Pressidium Enterprise come l'opzione migliore per i grandi siti di produzione che eseguono LearnDash. Gestiamo e gestiamo con successo installazioni di Enterprise LearnDash con migliaia di utenti simultanei .

Per risolvere il problema della limitazione del database, abbiamo sviluppato alcune tecniche di ottimizzazione del database che accelerano LearnDash mantenendo l'alta disponibilità (LearnDash purtroppo è intrinsecamente incompatibile con i database ad alta disponibilità multi-master). Li chiamiamo affettuosamente "la nostra salsa segreta" poiché queste tecniche sono altamente personalizzate e adattate esattamente alla nostra esclusiva Enterprise Architecture.

Tieni presente, tuttavia, che queste personalizzazioni possono essere applicate solo ai piani Enterprise poiché offrono un cluster di server aziendali dedicato a tua disposizione. Possono essere applicati anche ad altri plug-in LMS, nel caso in cui non utilizzi LearnDash nella tua classe.

La nostra soluzione al problema del picco della CPU, d'altra parte, è molto più semplice: aggiungere più potenza della CPU grezza. Questo è il motivo per cui non abbiamo utilizzato provider di cloud computing generici come Google Cloud o AWS, ma abbiamo costruito la nostra piattaforma da zero da soli. Il risultato sono efficienze in termini di costi che si traducono in risorse significativamente maggiori per i nostri clienti a livelli di prezzo simili o addirittura inferiori a quelli dei nostri concorrenti:

Configurazione 2N+1 High Availability in un cluster di server dedicato a 5 nodi con bilanciamento del carico con fattori di isolamento e ridondanza più elevati. Questi consentono al tuo sito WordPress LearnDash di ridimensionarsi automaticamente durante i picchi di traffico e gli effetti slashdot, ed essere altamente disponibile e tollerante ai guasti.

Siamo orgogliosi delle capacità prestazionali di LearnDash della nostra piattaforma, poiché allevia completamente lo stress dei proprietari di siti LearnDash, che devono affrontare problemi tecnici nel mezzo di una sessione. Ma siamo ancora più orgogliosi perché la nostra Enterprise Architecture supporta i sogni e le esigenze di apprendimento degli utenti LearnDash, da tutto il mondo.

Unisciti a Pressidium e trasforma il tuo sito LearnDash in un centro di e-learning ad alte prestazioni. Condividi le tue sfide LearnDash con i nostri ingegneri e richiedi un preventivo aziendale facendo clic sul pulsante qui sotto!