Il tuo sito Web WordPress è scalabile?
Pubblicato: 2017-05-16Il tuo sito WordPress è scalabile? Ci sono molti esempi di installazioni WordPress su larga scala in natura. WordPress.com, ad esempio, è un'enorme installazione multisito che ottiene decine di milioni di visualizzazioni di pagina ogni mese. Serve anche migliaia di utenti in un dato momento.
Altri esempi includono Time, TechCrunch e CNN. Non ci sono dubbi al riguardo. Puoi sicuramente creare un sito Web scalabile con WordPress che sia abbastanza potente da gestire qualsiasi quantità di traffico, purché crei l'ambiente giusto. La configurazione dell'installazione su scala può essere complessa, ma è un investimento utile per qualsiasi proprietario di un sito. In questo post, esaminiamo alcune aree su cui puoi concentrarti per garantire la scalabilità e offriamo suggerimenti su come configurare un ambiente scalabile.
Cosa intendiamo per scalabile?
Cosa rende scalabile un sito Web WordPress? Un sito Web WordPress scalabile ha la capacità di aumentare la capacità aumentando o diminuendo.
- Scale up: aumenta la potenza dell'hardware (più RAM, una CPU più potente).
- Scalabilità orizzontale: aumenta la capacità aggiungendo più nodi (avendo copie identiche del tuo sito distribuite su più macchine).
In questo modo avrai la flessibilità necessaria per favorire la crescita. Fondamentalmente, vuoi essere in grado di estendere il tuo sito senza problemi. Con WordPress, non dovrai preoccuparti del software. Il core di WordPress implementa convenzioni di architettura software a più livelli, come la separazione del markup (HTML e CSS) dai dati (database MySQL). Di seguito esploreremo alcuni modi per garantire la massima scalabilità.
Sviluppo dell'ambiente

Immagine di Sentavio / shutterstock.com
Una delle parti più difficili del ridimensionamento di un sito WordPress è la creazione di un ambiente di sviluppo. Un buon ambiente di sviluppo rispecchierà l'ambiente di produzione senza problemi. Se hai un sito piccolo, puoi farla franca sviluppando dal vivo, anche se sicuramente non sarà scalabile.
Avrai bisogno di una sorta di controllo della versione per assicurarti che gli sviluppatori non si calpestino a vicenda. Il software di controllo della versione registra le modifiche ai tuoi file nel tempo in modo che possano essere richiamati in seguito. Inoltre è un modo molto più efficiente e professionale per sviluppare un sito Web WordPress scalabile.
Ci sono molte soluzioni eleganti disponibili grazie al duro lavoro della comunità open source. Git è un software di controllo della versione distribuito che consente a più sviluppatori di lavorare in remoto su repository separati. È affidabile, veloce e in grado di gestire progetti incredibilmente grandi. Dopotutto, Git è stato creato da Linus Torvalds per lo sviluppo di Linux.
Puoi creare un ambiente di sviluppo killer con VVV (Varying Vagrant Vagrants). Questo software open source gratuito è ideale per creare ambienti di sviluppo distribuiti con WordPress. Dai un'occhiata alla nostra guida definitiva alla configurazione del tuo ambiente di sviluppo WordPress per un tutorial approfondito su questo. WordPress.org ha anche un utile tutorial sull'installazione di VVV.
Scalabilità orizzontale
Lo scaling out, o ridimensionamento orizzontale, è uno dei concetti più importanti della creazione di un ambiente scalabile. Ciò ti consente di eseguire il tuo sito Web su molte macchine (server) diverse. Alcune persone chiamano l'infrastruttura "architettura elastica", perché la quantità di risorse di cui disponi può espandersi o diminuire in base a quanto è necessario.
Questo viene fatto attraverso metodi di cloud computing come clustering, bilanciamento del carico e virtualizzazione. In informatica, il clustering è il processo di organizzazione di oggetti simili in gruppi. Quindi, un singolo cluster conterrà i file, il database e il software del tuo sito web. Il clustering garantisce che il tuo sito Web abbia un'elevata disponibilità eliminando i problemi dovuti a guasti hardware e software. Come funziona?
Se il tuo sito riceve un picco di traffico, un bilanciatore del carico determinerà come allocare in modo appropriato più risorse per recuperare il gioco ridimensionando: questo accade in modo dinamico e i tuoi visitatori non noteranno mai nulla. L'idea è che tu abbia copie identiche del tuo sito web distribuite su più macchine e tutte si conoscono. Quindi c'è sempre un computer nel cluster in standby se c'è un aumento del traffico o un componente dello stack si guasta.
I servizi di cloud hosting come Amazon Web Services (AWS) o RackSpace sono due famosi provider di cloud hosting che consentono la scalabilità orizzontale. Dai un'occhiata a questo tutorial sulla distribuzione di un sito Web WordPress ad alta disponibilità con AWS per un esempio di una tipica infrastruttura server con architettura elastica.
memorizzazione nella cache
Una cache è uno spazio di archiviazione temporaneo per la memoria. La memorizzazione nella cache può aiutarti a distribuire i contenuti più velocemente ed evitare problemi di concorrenza. Ogni CMS ha bisogno di una sorta di memorizzazione nella cache, WordPress non è diverso. La cattiva notizia è che la memorizzazione nella cache può essere ridicolmente complessa. La buona notizia è che la comunità open source ha escogitato molte soluzioni diverse al riguardo. Ci sono molti strumenti per aiutarti, inclusi WP Super Cache e Batcache.

Memorizzazione nella cache del proxy inverso (memorizzazione nella cache delle pagine)
La memorizzazione nella cache del proxy inverso è un modo efficiente per caricare pagine Web dinamiche. Il proxy inverso è un servizio che funge da intermediario tra WordPress e il browser. Questo può aiutare a ridurre il carico sul tuo server principale e diminuire il tempo di caricamento della pagina percepito.
Il problema è che i server PHP sono pesanti in termini di risorse. Eseguono un gran numero di attività complesse, che possono impantanare il tuo server. Puoi alleggerire il carico sul tuo server implementando un proxy inverso.
Ad esempio, supponiamo che tu riceva un visitatore sulla home page del tuo sito web. È la prima visita della giornata. A questo punto, non esiste ancora una versione cache della home page.
- L'utente inserisce l'URL nella barra degli indirizzi, richiedendo una pagina dal server.
- La richiesta passa attraverso il proxy, che non ha ancora una versione cache della pagina, a WordPress.
- WordPress genera la home page e restituisce la risposta al proxy inverso.
- Il proxy quindi invia la risposta al browser e salva una copia cache di quella pagina.
- Finché la cache è presente, qualsiasi utente che richiede quella pagina riceverà la versione cache della pagina.
Cache degli oggetti
Il concetto alla base della memorizzazione nella cache degli oggetti è simile alla memorizzazione nella cache delle pagine, tranne per il fatto che funziona su singoli oggetti. Molti problemi di concorrenza possono apparire quando ci sono molti utenti che hanno effettuato l'accesso al tuo sito. La memorizzazione nella cache degli oggetti salva un oggetto dell'applicazione (come un video, un'immagine, un documento) in un archivio dati. Mettendo nella cache gli oggetti dell'applicazione, sei meno dipendente dal database, liberando molta memoria.
Ci sono molte opzioni per la memorizzazione nella cache. Le reti di distribuzione dei contenuti come Cloudflare, Akamai, EdgeCast e KeyCDN possono agire come enormi proxy inversi. Varnish e WP Super Cache sono due opzioni popolari per implementare la memorizzazione nella cache con WordPress.
Prestazioni di query

Immagine di Oleg Erin / shutterstock.com
Il database può spesso essere la causa dei peggiori colli di bottiglia. Le query lente possono bloccare l'applicazione PHP sul tuo server e bloccare tutte le attività, anche se hai un'architettura elastica. Come ho detto prima, i server PHP possono rallentare notevolmente il server. Se la memorizzazione nella cache non funziona, puoi trovare modi per migliorare le prestazioni delle query identificando le query lente.
Le query lente sono dovute a problemi con il database SQL, la rete che esegue il tuo sito o il server. Ci sono una serie di ragioni per cui questo può accadere. Non c'è sicuramente una soluzione unica per tutti. Il primo passaggio per migliorare le prestazioni delle query è identificare le query lente.
Una volta identificato il problema, puoi agire. A volte la risposta può essere semplice come acquistare più larghezza di banda, altre volte potrebbe essere necessario modificare il codice, il che può diventare complicato.
Dai un'occhiata al plugin WordPress Query Monitor se stai cercando uno strumento per monitorare le query.
Miglioramento della ricerca
Se hai una grande quantità di post, diciamo 1 milione, dovrai fare attenzione a come sono impostati i tuoi database. La maggior parte dei siti più grandi ha un indice di ricerca ottimizzato. Che è un motore di ricerca personalizzato aggiunto a WordPress.
La query di ricerca dei contenuti in WordPress non funziona bene se hai un numero elevato di post sul tuo sito. Lascia anche a desiderare in termini di velocità. Una soluzione comune per questo problema consiste nel creare un indice di ricerca dedicato. In questo modo le query escono dal database, offrendo agli utenti una migliore esperienza di navigazione e aumentando le prestazioni del database.
I motori di ricerca più diffusi per i siti WordPress su larga scala includono ElasticSearch e ApacheSolr.
Avvolgendo
Anche partire dalla giusta scala è importante. Inizia in modo semplice, quindi ottimizza in seguito. Per citare Donald Knuth, "l'ottimizzazione prematura è la radice di tutti i mali". Accomodati per la crescita, ma non cercare di spremere un enorme sito di e-commerce su una base minuscola o viceversa. Potrebbe non essere necessario creare un sito scalabile se è per qualcosa di semplice come una pagina di evento.
In genere, l'architettura elastica è lo standard per i siti Web di e-commerce. Sebbene alcune di queste cose possano sembrare incredibilmente complesse, non è necessario capirle tutte. Se hai una conoscenza delle nozioni di base, puoi creare un ambiente robusto per un sito su larga scala. Tutto quello che devi fare è trovare i servizi cloud giusti e collegarti al CDN giusto.
Sentiti libero di condividere le tue esperienze nella sezione commenti. Quali passaggi hai seguito per rendere scalabile il tuo sito Web WordPress?
Immagine in miniatura dell'articolo di turbodesign / shutterstock.com
