Migra il tuo sito Web WordPress sulla piattaforma cloud
Pubblicato: 2020-06-05Fondamentalmente basato su PHP e MySQL, il CMS WordPress famoso in tutto il mondo ha alimentato di tutto, dai blog personali ai siti Web ad alto traffico per oltre due decenni. Tuttavia, dal suo inizio e dalla prima versione nel 2003, i suoi creatori non l'hanno costruito pensando alle moderne infrastrutture basate su cloud elastiche e scalabili. Chi avrebbe potuto prevedere il modo in cui la tecnologia si è evoluta finora?
Fortunatamente, con l'espansione della community di WordPress e il successivo rilascio di versioni più mature di WordPress, le sue capacità si sono notevolmente ampliate. In definitiva, ora abbiamo scenari in cui è possibile costruire un'infrastruttura WordPress che sfrutti adeguatamente i server cloud e le infrastrutture.
In questo blog esploreremo la relazione tra WordPress e Cloud Server e quando dovrebbero essere usati in combinazione. Ai fini del contesto, ci assicureremo di esaminare in dettaglio i concetti relativi a questo argomento. Quindi, senza ulteriori indugi, approfondiamo!
Cos'è la nuvola?
In breve, e in parole povere, il cloud è un mezzo onnipresente per fornire servizi e risorse IT tramite Internet, quindi è possibile accedervi su richiesta o in modalità pay-as-you-go. Quindi, fondamentalmente, i server cloud agiscono come comode "unità di archiviazione" su Internet, da qui il termine "cloud". Questa potrebbe essere la risposta più semplicistica che abbia mai fornito per quanto riguarda il cloud, comunque, andando avanti!
Detto questo, ci sono numerosi fornitori di servizi Cloud, anche se i più importanti sono Amazon Web Services (con la quota di mercato maggiore) seguito da Microsoft Azure e Google Cloud. Questi tre sono occasionalmente indicati come "hyperscaler", sebbene esistano altri provider di cloud pubblico come AlibabaCloud, DigitalOcean, IBM Cloud e Linode. In tutta franchezza, vale la pena ricordare che alcuni provider di cloud pubblico offrono anche servizi di hosting standard (es. WordPress hosting condiviso), mentre altri no. Ma ne approfondiremo più tardi.
Il bello del cloud è che livella notevolmente il campo di gioco per le piccole imprese. Ciò consente loro di accedere a risorse online all'avanguardia che in precedenza erano disponibili solo per i giocatori più grandi. Il tutto senza la necessità di ingenti investimenti di capitale che includono l'acquisto di hardware, la creazione di costosi data center e l'assunzione di un reparto IT di manutenzione a tempo pieno.
Per la maggior parte, la maggior parte dei fornitori di cloud offre anche un modello con pagamento in base al consumo con servizi gestiti come servizi di ridimensionamento automatico e gestione del database, ecc. Quindi, questo è molto interessante per molte aziende che non intendono o non possono permettersi di investire in una vera e propria infrastruttura IT. In sostanza, consentendo loro di concentrarsi sul proprio core business e lasciare che un fornitore cloud si occupi degli aspetti tecnici.
Il cloud offre l'accesso a una miriade di vantaggi; tuttavia, i vantaggi notevoli sono:
- Offre un'architettura onnipresente e orientata ai servizi, disponibile ovunque nel mondo.
- Fornisce un'elaborazione comoda e flessibile
- Offre diversi livelli di servizi su richiesta
- Fornisce un costo totale di proprietà ridotto
- Offre una riduzione delle spese generali della tecnologia dell'informazione

Tipi di servizi cloud
In genere, i provider di cloud pubblico offrono i propri servizi in tre verticali, vale a dire: Infrastructure as a Service (IaaS), Platform as a Service (PaaS) e Software as a Service (SaaS). Per motivi di contesto, riassumiamo le differenze tra tutti questi tipi di servizi e ciò che ciascuno di essi comporta, vero?
- IaaS: Infrastructure as a Service offre agli utenti diverse infrastrutture cloud come virtual computing, sistemi operativi, code, storage, VLAN, load balancer, tra gli altri. Questo tipo di verticale cloud richiede conoscenze tecniche approfondite per distribuire e gestire un'applicazione. Ad esempio, ogni componente richiede la gestione tecnica per avviare la scalabilità verso l'alto o verso il basso o per eseguire il bilanciamento del carico.
- PaaS: D'altra parte, il modello Platform as a Service offre più servizi gestiti. Ciò significa sostanzialmente che la responsabilità degli aggiornamenti software e delle patch appartiene principalmente al fornitore del cloud. Inoltre, con PaaS, le operazioni specifiche dell'infrastruttura orchestrate dal Cloud stesso come il ridimensionamento, il backup, la replica dei dati, avvengono in modo trasparente.
- SaaS: Probabilmente il più noto di tutti questi verticali è il modello Software as a Service che fornisce software completamente funzionale gestito nel cloud. Il modello SaaS può avvolgere sia i componenti IaaS che le applicazioni PaaS, oppure utilizzare una delle due verticali separatamente.

In definitiva, nonostante tutti i modelli evidenziati sopra, i confini tra le piattaforme Cloud stanno rapidamente diventando più sottili poiché un numero maggiore di fornitori impiega servizi più misti che possono rientrare in IaaS o PaaS. Ad esempio, Amazon Web Services ha iniziato con le offerte IaaS (EC2, SQS e S3), per poi aggiungere componenti PaaS lungo il percorso (database relazionali e non relazionali). Comparativamente, Microsoft Azure estende sia i componenti PaaS (siti Web di Azure e database SQL) che IaaS (macchine virtuali e storage).

Quando è il momento giusto per migrare al cloud?
Nonostante e senza dubbio, la maggior parte delle applicazioni software può essere ospitata su "hyperscaler" in un modo o nell'altro. Tuttavia, la domanda è sempre stata : è giustificabile, sarà ridondante, forse eccessivo o porterà a un sottoutilizzo delle risorse in alcuni casi.
Detto questo, vale la pena notare che le applicazioni specifiche si adattano perfettamente al cloud a causa del loro disperato bisogno di determinate funzionalità cloud. Ad esempio, potrebbero richiedere una combinazione di codificatori, CDN, database relazionali o la capacità di ridimensionare automaticamente le risorse. Comunque sia, ci sono casi in cui altre applicazioni vengono semplicemente trasferite sul cloud per il bene e non riescono a sfruttare appieno tutte le sue risorse. Che non è un crimine, in ogni caso.
Quali tipi di applicazioni WordPress sono ideali per la migrazione al cloud?
Dal momento che abbiamo stabilito che il cloud può gestire qualsiasi applicazione di elaborazione fuori sede, a prescindere dalla capacità in cui si trova. Il nostro avvertimento è ancora valido, poiché abbiamo evidenziato che, tuttavia, non tutte le applicazioni sono adatte al cloud. Quindi, quali tipi di applicazioni WordPress sono sufficienti per il cloud?

1. Domande con esigenze di elaborazione periodiche e impegnative
In generale, tali applicazioni eseguono in genere operazioni ad alta intensità di calcolo come funzioni di analisi batch su vari moduli di dati. Tali funzioni di analisi batch possono assumere forme diverse, tra cui: conversione di file da un formato all'altro, analisi semantica del testo, classificazione dei dati, reportistica, indicizzazione del testo, clustering dei dati o persino addestramento della rete neurale per l'apprendimento automatico, ecc.
Quindi, poiché queste operazioni tendono a essere prevedibili nel tempo nel loro verificarsi, finiscono per richiedere una potenza di calcolo significativa offerta dai provider di cloud iperscalabili. Questo perché i provider di cloud pubblico dispongono sempre di hardware all'avanguardia per soddisfare esigenze così grandi. Quindi, in sostanza, per le piccole imprese con tali applicazioni, il cloud le aiuta a eludere investimenti hardware così pesanti e non necessari (che a volte possono essere investimenti reazionari)
Inoltre, un'organizzazione può scegliere di accelerare ulteriormente le proprie capacità di elaborazione batch con il cloud , per terminare più rapidamente, ad esempio in meno di un'ora anziché in 3 o 4 ore. Questo è abbastanza gestibile in un ambiente Cloud poiché gli amministratori possono semplicemente far girare alcune unità di elaborazione in più. Considerando che, nell'hosting standard di WordPress una tale attuazione sarebbe piuttosto impegnativa a causa delle limitazioni hardware.
2. Applicazioni che richiedono alta disponibilità (HA) e scalabilità.
Abbiamo essenzialmente due categorie da considerare. La prima categoria riguarda le applicazioni che desiderano fornire un servizio HA (alta disponibilità) ai propri utenti finali. Poi abbiamo applicazioni che prevedono un aumento del loro utilizzo o pianificano di estendere i loro servizi a una base di utenti più ampia.
Una configurazione ad alta disponibilità significa che l'applicazione non ha un singolo punto di errore (SPOF). Ciò si ottiene normalmente aggiungendo una ridondanza a ciascun endpoint, componente o servizio dell'applicazione. Inoltre, questa configurazione presuppone naturalmente che siano necessari più hardware e meccanismi per ottenere un'elevata disponibilità, come processi di failover automatici, bilanciamento del carico e monitoraggio.
La seconda categoria riguarda le applicazioni che intendono ampliare la propria base utenti (e hanno una scalabilità flessibile). Ad esempio, potrebbero avere in programma di estendere la loro offerta di prodotti/servizi; o aspettarsi di espandersi in seguito in nuovi mercati. Quindi, questo implica la necessità di un significativo aggiornamento del cloud e di un livello di gestione adeguato su di esso per farlo funzionare.
3. Applicazioni con picchi di utilizzo imprevedibili
Tali applicazioni normalmente interagiscono frequentemente con gli utenti tramite negozi online, siti di prodotti, blog popolari, ecc. Pertanto, tali servizi Web in genere hanno una base di utenti prevedibile e stabile, tuttavia, in alcuni casi, possono finire per attirare un numero molto elevato di utenti in modo casuale . Ad esempio, possono verificarsi picchi se vengono referenziati su una pagina Web popolare o se un video ad essi correlato diventa virale. O forse dopo che una campagna di marketing ha avuto più successo di quanto inizialmente previsto grazie a coupon e codici promozionali.

Quindi, in sostanza, una migrazione cloud può essere l'ideale quando non puoi prevedere il tuo potenziale volume di traffico in entrata o il periodo di tempo esatto in cui si verificherà. Tali proprietari di siti Web tendono ad anticipare con precisione un aumento del traffico, ma non sanno quanto sarà, né come verrà distribuito.
Leggi di più: 11 modi efficaci per aumentare il tuo sito Web WordPress per un traffico elevato
Quindi, per tali scenari, l'acquisizione di hardware reazionario o di emergenza non vale il costo a causa dell'utilizzo frammentato che può portare a una quantità di hardware inutilizzata stagionalmente. In tali scenari, qualsiasi cosa diversa da un'implementazione cloud sarebbe avventata.
4. Applicazioni con la necessità di vari ambienti di test
Non molto conosciuti da molti, gli utenti possono sfruttare il Cloud per eseguire un ambiente di test. Tali ambienti di test possono essere permanenti o temporanei quando è necessario eseguire una serie specifica di test, come test di sicurezza o test di carico
Quindi, fondamentalmente, sarà necessario hardware di fascia alta per realizzare tali ambienti di test e l'implicazione sui costi per l'acquisizione dell'hardware per eseguire test di sicurezza e test di carico può essere piuttosto pesante. Ciò è principalmente dovuto al fatto che questi test devono essere eseguiti alcune volte all'anno e richiedono una configurazione di produzione in piena regola per raggiungere il loro obiettivo. Questo è il motivo per cui l'acquisto di hardware nuovo di zecca per tali test può rivelarsi un'azione inefficiente o ridondante dal punto di vista dei costi. È qui che il cloud diventa un'opzione.
Quindi, per riassumere i nostri punti, i principali fattori che influenzano l'adozione del cloud sono: base di utenti, modello di utilizzo, richieste di tolleranza agli errori e requisiti di test. Naturalmente, più fattori giustificano la candidatura per l'applicazione per il Cloud, ma questi quattro fattori normalmente si distinguono.
Utilizzo di piattaforme cloud con WordPress
La maggior parte delle applicazioni WordPress utilizza l'hosting standard, tuttavia, c'è un aumento degli utenti di WordPress che scelgono di eseguire i loro siti Web su piattaforme come AWS Cloud e Google Cloud.
Ciò dimostra che più proprietari di siti Web sono interessati a come creare un sito Web che si adatti correttamente. Ad esempio, dovrebbe essere in grado di servire un numero fluttuante di visitatori e sufficientemente flessibile da consentire un rapido e facile aggiornamento dei contenuti pur rimanendo tollerante agli errori. Quest'ultimo punto è importante in quanto offre ai proprietari la tranquillità che quando qualcosa si rompe, il sito Web sarà comunque in grado di svolgere le sue funzioni in modo adeguato.
Quindi, per aggiungere un contesto, il tipico hosting di WordPress è un servizio gestito, essenzialmente un Software as a Service (SaaS). Mentre la migrazione al cloud pubblico costituisce l'esecuzione di un'installazione Platform as a Service (PaaS). In sostanza, un'installazione di WordPress che utilizza PaaS scarica la manutenzione dell'infrastruttura, i backup, le repliche e la disponibilità al fornitore del cloud.
Gestire un Cloud Server può essere Difficile
La configurazione o il provisioning dell'ambiente server non è facilmente deducibile, a meno che tu non sia un esperto o un esperto. Implica sapere come gestire le tue istanze cloud, istituendo un livello di protocolli di sicurezza che garantisca la protezione delle tue istanze cloud.
Da un certo punto di vista, tali installazioni potrebbero richiedere competenze con i comandi Linux poiché i server AWS predefiniti non sono dotati di alcuna interfaccia utente grafica con cui lavorare. Quindi la capacità di utilizzare la CLI è fondamentale, il che può essere una sfida per chi ha una conoscenza limitata del lato server.
Tuttavia, alcuni provider di servizi cloud forniscono risorse per alleviare i problemi di gestione dei server per consentirti di concentrarti sui tuoi siti Web WordPress. Questi stessi strumenti tengono d'occhio la sicurezza del tuo server per proteggere il tuo sito dagli attacchi informatici. Tali soluzioni possono offrire agli utenti la possibilità di integrare SSL, creare siti di staging, eseguire la clonazione di siti Web e gestire cron-job con pochi clic.
Pianificazione di una migrazione al cloud di WordPress
Dopo aver scelto di migrare la tua applicazione WordPress al cloud, è importante determinare un progetto architettonico applicabile, scegliere un fornitore cloud affidabile, perfezionare l'architettura dell'applicazione, testare la configurazione e quindi rilasciare.
Determinare il progetto della tua architettura ti consente di identificare principalmente le parti indipendenti e scalabili della tua applicazione WordPress. In secondo luogo, quando si sceglie un fornitore di cloud assicurarsi di scegliere la soluzione migliore tenendo conto di fattori come le capacità del database. Ad esempio, un database SQL Server può essere adatto per il database SQL di Azure o AWS RDS, mentre un database MySQL potrebbe essere adatto anche per AWS RDS.
Inoltre, un fornitore di servizi cloud può influire sull'architettura finale della tua applicazione. Inoltre, durante il test di una configurazione, considerare sempre i dati di dimensioni reali, quindi mirare a istituire un clone completo dei dati di produzione, che includa principalmente i dati del database e il contenuto generato dagli utenti.
Costo
Anche il costo complessivo iniziale per ciascun fornitore di cloud deve essere calcolato con attenzione. Poiché la maggior parte dei fornitori di cloud dispone di calcolatori dei prezzi online, puoi utilizzarli. Inoltre, presta attenzione ad aspetti come le ore di calcolo, la larghezza di banda e lo spazio di archiviazione, nonché metriche come il numero di richieste GET per l'accesso a determinati oggetti di archiviazione e ore di bilanciamento del carico, ecc.
Migliori Pratiche per Installazioni WordPress su Server Cloud
1. Assicurati di sfruttare una rete di distribuzione dei contenuti (CDN)
Ricorda che la maggior parte delle applicazioni WordPress offre un mix di contenuti statici e dinamici. Il contenuto statico è costituito da immagini, file JavaScript o fogli di stile. Mentre il contenuto dinamico è tutto ciò che viene generato sul lato server che sfrutta il codice PHP di WordPress. Ad esempio, elementi generati dal database o personalizzati per ciascun visualizzatore.
Poiché la latenza di rete è importante per l'esperienza dell'utente finale, è imperativo utilizzare le CDN, poiché aiutano ad affrontare la latenza di rete consentendo di fornire contenuti in modo coerente agli utenti di tutto il mondo.
Pertanto, poiché gli utenti sono generalmente distribuiti geograficamente in tutto il mondo, le CDN aiutano essenzialmente ad accelerare la distribuzione di contenuti con bassa latenza e velocità di trasferimento dati elevate in tutto il mondo.
Leggi di più: Suggerimenti per migliorare la velocità del sito Web WordPress
2. Memorizzazione nella cache del database
La memorizzazione nella cache del database può ridurre drasticamente la latenza e aumentare il throughput di applicazioni come WordPress. Raggiunge questo obiettivo archiviando in memoria i dati a cui si accede di frequente per l'accesso a bassa latenza, ad esempio i risultati di query di database ad alta intensità di I/O. Pertanto, ciò significa che quando una grande percentuale delle query viene servita dalla cache, il numero di query che devono raggiungere il database viene ridotto. Di conseguenza, con conseguente riduzione dei costi associati all'esecuzione del database.
3. Livello Web senza stato
Fondamentalmente, un'applicazione stateless non tiene conto delle interazioni precedenti e non memorizza informazioni sulla sessione. E per WordPress, questo implica che tutti gli utenti finali ricevano la stessa risposta, indipendentemente dal server web che ha elaborato la loro richiesta.
Pertanto, per sfruttare più server Web in una configurazione di ridimensionamento automatico, il livello Web deve essere stateless. Inoltre, le applicazioni stateless possono essere ridimensionate orizzontalmente poiché qualsiasi richiesta può essere soddisfatta da qualsiasi risorsa di calcolo disponibile (quelle che chiamiamo "istanze del server web").
Tuttavia, per impostazione predefinita, WordPress memorizza i caricamenti degli utenti sul file system locale e quindi non è apolide. Pertanto, è importante spostare l'installazione di WordPress e tutta la configurazione utente, i plug-in, i temi e i caricamenti generati dagli utenti in una piattaforma cloud di dati condivisa per ridurre il carico sui server Web e rendere il livello Web senza stato.
Leggi di più: i plugin di WordPress sono sicuri da usare?
Per ottenere ciò, puoi utilizzare l'archiviazione di terze parti per archiviare le sessioni PHP. Potrebbe trattarsi di un semplice archivio di valori-chiave o del database stesso. Tutti i principali fornitori di cloud offrono archivi chiave-valore come tabelle di Azure o AWS DynamoDB e dovrebbero essere altamente disponibili e raggiungibili da tutti i componenti dell'applicazione che interagiscono con i dati della sessione.
Pensieri finali.
In conclusione, il cloud computing è diventato la forma più diffusa di gestione dei dati con la sua impareggiabile capacità di fornire maggiori economie di scala, sicurezza dei dati, interoperabilità, facile accessibilità ed efficienza energetica. Sta essenzialmente alterando il modo in cui gestiamo, allochiamo e consumiamo risorse di elaborazione, storage e rete a livello globale.
Pertanto, i server WordPress e Cloud possono essere combinati principalmente in modo efficiente se prevedi picchi di traffico elevati, se hai bisogno di un'elevata disponibilità, se hai requisiti di scalabilità imprevisti, hai esigenze di elaborazione dinamica e se hai bisogno di un ambiente di test unico.