WordPress nel servizio App

Frontdoor di Azure
Azure Load Balancer
Rete virtuale di Azure
Servizio app di Azure
Database di Azure per MySQL

Questo articolo descrive un'architettura per le installazioni WordPress di piccole e medie dimensioni in Azure. L'architettura usa Servizio app di Azure per ospitare WordPress e i servizi di Azure gestiti per i livelli di distribuzione di database, rete e contenuto. Per installazioni più grandi o a elevato utilizzo di archiviazione, vedere opzioni di hosting WordPress in Azure.

Architettura

diagramma architettura di WordPress nel servizio app. Frontdoor di Azure instrada il traffico alle app Web. Database di Azure per MySQL archivia contenuto dinamico.

Scaricare un file di Visio di questa architettura.

Nota

È possibile estendere questa soluzione implementando suggerimenti e raccomandazioni che non sono specifici di alcun metodo di hosting WordPress. Per altre informazioni su come distribuire un'installazione di WordPress, vedere WordPress in Azure.

Flusso di dati

Questo scenario illustra un'installazione scalabile di WordPress eseguita nel servizio app.

Il flusso di dati seguente corrisponde al diagramma precedente:

Il flusso di dati seguente corrisponde al diagramma precedente:

  • Gli utenti accedono al sito Web front-end tramite Frontdoor di Azure con Web application firewall di Azure abilitato.

  • Frontdoor di Azure distribuisce le richieste tra le app Web del servizio app che eseguono WordPress. Se il contenuto richiesto non viene memorizzato nella cache, Frontdoor di Azure lo recupera dalle applicazioni web.

  • L'applicazione WordPress si connette a Database di Azure per MySQL server flessibile tramite un endpoint privato e recupera il contenuto dinamico dal database.

  • Database di Azure per MySQL supporta la disponibilità elevata tramite un server di standby.

  • Tutto il contenuto statico è ospitato in Archiviazione BLOB di Azure.

Componenti

  • App Service è un'offerta PaaS (Platform as a Service) per la creazione, la distribuzione e il ridimensionamento delle app Web. In questa architettura il servizio app ospita l'applicazione WordPress.

  • Database di Azure per MySQL Flexible Server è un servizio di database relazionale gestito basato sul motore di database MySQL open source. In questa architettura archivia i dati di WordPress.

  • Protezione DDoS di Azure è un servizio di sicurezza di rete che fornisce funzionalità avanzate di mitigazione DDoS (Distributed Denial of Service). In questa architettura Protezione DDoS consente di difendere l'indirizzo IP pubblico dagli attacchi DDoS.

  • Frontdoor di Azure è una rete per la distribuzione di contenuti e un servizio di bilanciamento del carico globale. In questa architettura, Frontdoor di Azure funge da punto di ingresso dell'applicazione per gli utenti Web.

  • Rete virtuale di Azure è un servizio di rete che consente alle risorse di Azure di comunicare tra loro, Internet e reti locali, fornendo al tempo stesso segmentazione e isolamento. In questa architettura, il servizio app e i componenti back-end sono raggiungibili solo tramite connessioni private nella rete virtuale.

  • gestione rete virtuale di Azure è un servizio di archiviazione oggetti ottimizzato per grandi quantità di dati non strutturati. In questa architettura l'archiviazione BLOB ospita tutto il contenuto statico per l'applicazione WordPress.

  • I gruppi di sicurezza di rete (NSG) usano regole di sicurezza per consentire o negare il traffico di rete in base all'indirizzo IP di origine o di destinazione, alla porta e al protocollo. In questa architettura le regole del gruppo di sicurezza di rete limitano il flusso del traffico tra subnet.

  • Il modello wordPress nel servizio app è un modello di soluzione gestito per l'hosting di WordPress nel servizio app. In questa architettura, il modello fornisce una distribuzione WordPress preconfigurata che include il servizio app e gli altri servizi di Azure descritti in questa sezione.

Alternative

Usare Azure Managed Redis per ospitare una cache chiave-valore per i plug-in di ottimizzazione delle prestazioni di WordPress. La cache può essere condivisa tra le app Web di App Service.

Dettagli dello scenario

Questo scenario di esempio si applica alle installazioni WordPress di piccole e medie dimensioni.

Potenziali casi d'uso

  • Eventi multimediali che causano picchi di traffico
  • Blog che usano WordPress come sistema di gestione dei contenuti
  • Siti Web aziendali o di e-commerce che usano WordPress
  • Siti Web creati usando altri sistemi di gestione dei contenuti

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Well-Architected Framework.

Affidabilità

L'affidabilità garantisce che l'applicazione possa soddisfare gli impegni assunti dai clienti. Per maggiori informazioni, consultare la sezione Elenco di controllo per la revisione della progettazione per l'affidabilità.

Quando si distribuisce questa soluzione, prendere in considerazione i consigli seguenti:

  • Configurare i backup automatici per Azure Database per MySQL. Definire un periodo di conservazione allineato agli obiettivi del punto di ripristino (RPO). Testare periodicamente il processo di ripristino per verificare l'affidabilità del backup.

  • App Service fornisce bilanciamento del carico e controlli di integrità integrati. Queste funzionalità consentono di mantenere la disponibilità quando un'app Web di App Service presenta un problema.

  • Frontdoor di Azure può servire risposte memorizzate nella cache quando l'origine non è temporaneamente disponibile. Questa funzionalità limita la perdita di disponibilità, ma non sostituisce una soluzione di disponibilità completa.

  • È possibile replicare gestione rete virtuale di Azure in una regione associata per ottenere la ridondanza dei dati tra più regioni. Per altre informazioni, vedere Ridondanza di Archiviazione di Azure.

  • Per aumentare la disponibilità Database di Azure per MySQL, abilitare la disponibilità elevata. La disponibilità elevata della stessa zona crea un server standby nella stessa zona di disponibilità del server primario. Per un isolamento dei guasti più forte, usare la disponibilità elevata con ridondanza di zona, che inserisce il server di standby in una zona di disponibilità diversa. Usare il livello di calcolo Generico o Business Critical per assicurarne l'alta disponibilità. Per altre informazioni, vedere le opzioni di disponibilità elevata che soddisfano le proprie esigenze.

Sicurezza

La sicurezza offre garanzie contro attacchi intenzionali e l'uso improprio dei dati e dei sistemi preziosi. Per maggiori informazioni, consultare la sezione Elenco di controllo per la revisione della progettazione per la sicurezza.

Quando si distribuisce questa soluzione, prendere in considerazione i consigli seguenti:

  • Usare Web application firewall di Azure in Frontdoor di Azure per proteggere il traffico di rete virtuale che passa al livello applicazione front-end. Per altre informazioni, vedere Firewall per applicazioni Web di Azure su Frontdoor di Azure.

  • Usare endpoint privati per tutti i servizi back-end, inclusi Database di Azure per MySQL e gestione rete virtuale di Azure. Gli endpoint privati mantengono il traffico all'interno della rete virtuale e impediscono l'esposizione a Internet pubblico. Per altre informazioni, vedere collegamento privato di Azure.

  • Bloccare il traffico Internet in uscita dal livello di database.

  • Bloccare l'accesso pubblico all'archiviazione privata.

  • Mantenere i core, i temi e i plug-in wordPress aggiornati alle versioni più recenti per risolvere le vulnerabilità di sicurezza note. Disinstallare plug-in e temi non più necessari.

  • Limitare l'accesso al pannello di amministrazione di WordPress (/wp-admin) creando Web application firewall di Azure regole personalizzate in Frontdoor di Azure. Usare la condizione di corrispondenza RequestUri per abbinare i percorsi /wp-admin, in combinazione con una condizione di indirizzo IP per consentire l'accesso solo da intervalli IP noti. Le restrizioni di accesso al servizio app si applicano all'intero sito, non ai singoli percorsi URL, quindi non soddisfano i controlli specifici del percorso.

Per altre informazioni sulla sicurezza di WordPress, vedere Suggerimenti generali sulla sicurezza e sulle prestazioni di WordPress e documentazione sulla sicurezza di Azure.

Ottimizzazione dei costi

L'ottimizzazione dei costi è incentrata sui modi per ridurre le spese non necessarie e migliorare l'efficienza operativa. Per altre informazioni, vedere Elenco di controllo per la revisione della progettazione per l'ottimizzazione dei costi.

Quando si distribuisce questa soluzione, esaminare le considerazioni sui costi seguenti:

  • Aspettative del traffico in GB al mese: Il volume del traffico influisce maggiormente sui costi. Il traffico ricevuto determina il numero di istanze del servizio app necessarie e il prezzo per il trasferimento dei dati in uscita. La gestione del contenuto tramite Frontdoor di Azure può ridurre i costi di trasferimento dei dati in uscita.

  • Hosted data: Considera i dati ospitati nello gestione rete virtuale di Azure. I prezzi dell'archiviazione dipendono dalla capacità usata.

  • Percentuale di scrittura: Considera la quantità di nuovi dati scritti nel tuo sito web e nell'host su Archiviazione. Determinare se sono necessari nuovi dati. Per le distribuzioni con più aree, i nuovi dati scritti nel sito Web sono correlati ai dati replicati tra le aree.

  • Contenuto statico e dinamico: Monitorare le prestazioni e la capacità di archiviazione del database per determinare se uno SKU con costi inferiori supporta il sito. Il database archivia il contenuto dinamico e Frontdoor di Azure memorizza nella cache il contenuto statico.

  • Ottimizzazione del servizio app: Per altre informazioni su come ottimizzare i costi del servizio app, vedere Ottimizzazione costi.

Eccellenza operativa

L'eccellenza operativa copre i processi operativi che distribuiscono un'applicazione e la mantengono in esecuzione nell'ambiente di produzione. Per ulteriori informazioni, vedere Lista di controllo per la revisione del design per l'Eccellenza Operativa.

Quando si distribuisce questa soluzione, prendere in considerazione i consigli seguenti:

  • Abilitare Application Insights per monitorare le prestazioni, la disponibilità e i modelli di utilizzo dell'applicazione. Usare i dati di monitoraggio per identificare e risolvere i problemi prima che influiscano sugli utenti.

  • Usare gli slot di distribuzione in App Service per predisporre gli aggiornamenti del core di WordPress. Distribuire la nuova versione in uno slot di staging e convalidare la compatibilità del tema e del plug-in prima di passare all'ambiente di produzione. Eseguire il backup dell'istanza di Database di Azure per MySQL prima dello scambio perché WordPress applica automaticamente le migrazioni dello schema al database condiviso quando un amministratore accede dopo un aggiornamento.

  • Automatizza le distribuzioni della tua infrastruttura con Bicep o Terraform. L'infrastruttura come codice (IaC) consente di mantenere la coerenza tra ambienti e ricompilare gli ambienti in modo affidabile.

  • Configurare gli avvisi Monitoraggio di Azure per le metriche chiave, ad esempio l'utilizzo della CPU del servizio app, i conteggi delle connessioni al database e i tempi di risposta. Usare gli avvisi per rispondere ai problemi operativi prima che influiscano sugli utenti.

Efficienza delle prestazioni

L'efficienza delle prestazioni si riferisce alla capacità del carico di lavoro di ridimensionarsi per soddisfare in modo efficiente le esigenze degli utenti. Per maggiori informazioni, consultare la sezione Elenco di controllo per la revisione della progettazione per l'efficienza delle prestazioni.

Quando si distribuisce questa soluzione, prendere in considerazione i consigli seguenti:

  • Abilitare la funzionalità di scalabilità automatica nel servizio app per ridimensionare automaticamente il numero di istanze. È possibile impostare un trigger di scalabilità automatica per rispondere alla domanda dei clienti o in base a una pianificazione. Per altre informazioni, vedere Introduzione alla scalabilità automatica in Azure.

  • Usare Azure Redis gestito per memorizzare nella cache i dati di sessione di Hypertext Preprocessor (PHP) e gli oggetti WordPress a cui si accede di frequente. Eseguire l'offload di questi elementi dal database per ridurre il carico delle query e migliorare i tempi di caricamento delle pagine.

  • Configurare le regole di memorizzazione nella cache di Frontdoor di Azure per distribuire gli asset statici dalle posizioni periferiche. Memorizzare nella cache ai bordi per ridurre la latenza per gli utenti geograficamente distanti dalla regione del servizio applicativo.

  • Usare la versione php supportata più recente nel servizio app per migliorare le prestazioni e la sicurezza. Verificare che la versione di WordPress e i plug-in siano compatibili prima dell'aggiornamento.

Collaboratori

Microsoft gestisce questo articolo. I seguenti collaboratori hanno scritto questo articolo.

Autore principale:

Altri contributori:

  • Adrian Calinescu - Italia | Architetto senior di soluzioni cloud
  • Andrew Cardy | Senior Software Engineer

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi

Documentazione sui prodotti:

Moduli di formazione Microsoft: