{"id":77485,"date":"2024-04-30T08:16:59","date_gmt":"2024-04-30T07:16:59","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=77485&#038;preview=true&#038;preview_id=77485"},"modified":"2024-04-30T12:16:34","modified_gmt":"2024-04-30T11:16:34","slug":"app-web-wordpress","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/","title":{"rendered":"Come costruire applicazioni web per WordPress utilizzando un&#8217;architettura a microservizi"},"content":{"rendered":"<p>WordPress \u00e8 un potente <a href=\"https:\/\/kinsta.com\/content-management-systems\/\">sistema di gestione dei contenuti<\/a> (CMS) che pu\u00f2 gettare le basi per diversi tipi di siti e applicazioni. Utilizza una tipica &#8220;architettura monolitica&#8221;, ma con la crescita del sito questa potrebbe non essere la soluzione migliore. \u00c8 qui che un&#8217;architettura a microservizi potrebbe rivelarsi pi\u00f9 utile.<\/p>\n<p>In questo articolo analizzeremo come costruire applicazioni web per WordPress utilizzando un&#8217;architettura a microservizi. Inoltre, parleremo del plugin Create Block Theme e discuteremo di come questa interessante soluzione pu\u00f2 adattarsi a un workflow di sviluppo.<br \/>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc><\/p>\n<h2>Cosa sono i microservizi<\/h2>\n<p>Prima di costruire qualsiasi applicazione web, dobbiamo capire cosa sono i microservizi e come si differenziano dalle <a href=\"https:\/\/kinsta.com\/it\/blog\/function-as-a-service\/#how-does-faas-work\">architetture monolitiche<\/a>.<\/p>\n<p>Con l&#8217;architettura monolitica, c&#8217;\u00e8 uno stretto legame tra tutti i componenti di un&#8217;applicazione. In sostanza, viene eseguita come un unico servizio. \u00c8 un modo semplice di sviluppare un&#8217;applicazione, anche se la manutenzione e la scalabilit\u00e0 possono diventare una sfida man mano che la complessit\u00e0 aumenta.<\/p>\n<p>Al contrario, i microservizi aiutano a suddividere l&#8217;applicazione in un insieme di servizi pi\u00f9 piccoli. Ogni servizio \u00e8 indipendente dall&#8217;altro per quanto riguarda lo sviluppo, la <a href=\"https:\/\/docs.sevalla.com\/applications\/deployments\">distribuzione<\/a> e la scalabilit\u00e0.<\/p>\n<p>Ogni servizio gestisce un compito specifico e comunica con gli altri servizi attraverso un&#8217;<a href=\"https:\/\/kinsta.com\/it\/blog\/api-rest-vs-api-web\/\">interfaccia di programmazione dell&#8217;applicazione (API)<\/a>. Ad esempio, consideriamo un tipico sito di <a href=\"https:\/\/kinsta.com\/ecommerce\/\">e-commerce<\/a> con carrello, cassa, elaborazione dell&#8217;ordine, pagina del prodotto e altro ancora.<\/p>\n<figure id=\"attachment_178014\" aria-describedby=\"caption-attachment-178014\" style=\"width: 1000px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-178014\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/ecommerce-site.png\" alt=\"Il sito web di DARTDrones mostra un imminente percorso di formazione sui droni, con una panoramica di ci\u00f2 che \u00e8 incluso nel pacchetto. \u00c8 possibile selezionare una citt\u00e0 e iscriversi subito.\" width=\"1000\" height=\"625\"><figcaption id=\"caption-attachment-178014\" class=\"wp-caption-text\">Il sito web di DARTDrones mostra una delle sue pagine di e-commerce.<\/figcaption><\/figure>\n<p>In un&#8217;architettura monolitica, tutte queste funzionalit\u00e0 farebbero parte di un&#8217;unica grande applicazione. WordPress \u00e8 monolitico e l&#8217;utilizzo di <a href=\"https:\/\/kinsta.com\/it\/blog\/tutorial-woocommerce\/\">Woo come piattaforma ecommerce<\/a> ne \u00e8 un ottimo esempio.<\/p>\n<p>Tuttavia, l&#8217;implementazione di un&#8217;architettura a microservizi permette di utilizzare la tecnologia giusta per ogni compito. Ad esempio, potremmo utilizzare il CMS di WordPress, il migliore della categoria, per il content marketing. <a href=\"https:\/\/kinsta.com\/it\/blog\/magento-vs-woocommerce\/\">Adobe Commerce<\/a> potrebbe essere il nostro sistema di gestione dei prodotti, mentre una soluzione di checkout come <a href=\"https:\/\/bolt.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Bolt<\/a> potrebbe essere pi\u00f9 adatta alle nostre esigenze.<\/p>\n<figure id=\"attachment_178008\" aria-describedby=\"caption-attachment-178008\" style=\"width: 1000px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-178008\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/bolt-checkout.png\" alt=\"Una donna che indossa pantaloni verdi cammina tenendo in mano una grande borsa della spesa turchese, su uno sfondo giallo e bianco brillante con forme geometriche astratte e il testo \" Improve Conversion, Guaranteed\".\" width=\"1000\" height=\"625\"><figcaption id=\"caption-attachment-178008\" class=\"wp-caption-text\">Il sito web di Bolt.<\/figcaption><\/figure>\n<p>Mettere insieme questi elementi \u00e8 possibile con i microservizi. Vediamo quindi pi\u00f9 dettagliatamente perch\u00e9 dovreste prendere in considerazione i microservizi per il vostro prossimo progetto.<\/p>\n<h3>Cosa distingue i microservizi dalle architetture monolitiche<\/h3>\n<p>L&#8217;idea di base dei microservizi \u00e8 quella di combinare tecnologie e strumenti diversi per creare uno unico. Tuttavia, ci sono altre caratteristiche pi\u00f9 significative che vale la pena sottolineare:<\/p>\n<ul>\n<li><strong>Separazione<\/strong>: ogni servizio mantiene la propria indipendenza. Questo significa che \u00e8 possibile utilizzare la tecnologia migliore per ogni lavoro, piuttosto che dover gestire <a href=\"https:\/\/kinsta.com\/it\/blog\/framework-php\/\">strutture inadatte<\/a>.<\/li>\n<li><strong>Autonomia<\/strong>: per estensione, i servizi che vengono integrati non devono dipendere l&#8217;uno dall&#8217;altro per funzionare in modo performante.<\/li>\n<li><strong>Specializzazione<\/strong>: naturalmente, ogni servizio si concentrer\u00e0 sul proprio lavoro, il che influisce nuovamente sulle prestazioni.<\/li>\n<li><strong>Resilienza<\/strong>: una parte di questa risorsa intrinseca e performante \u00e8 che un guasto a un servizio non far\u00e0 crollare l&#8217;intero sito.<\/li>\n<\/ul>\n<p>Oltre a questi aspetti, l&#8217;uso dei microservizi offre altri vantaggi:<\/p>\n<ul>\n<li><strong>Scalabilit\u00e0<\/strong>: \u00e8 possibile scalare i singoli servizi in base alle singole esigenze senza impattare sul resto dell&#8217;applicazione.<\/li>\n<li><strong>Flessibilit\u00e0<\/strong>: abbiamo gi\u00e0 illustrato brevemente come i servizi possano utilizzare la tecnologia migliore per il loro lavoro. Questo si estende anche ai <a href=\"https:\/\/kinsta.com\/it\/blog\/miglior-linguaggio-di-programmazione\/\">linguaggi di programmazione<\/a> che <a href=\"https:\/\/kinsta.com\/it\/blog\/microservizi-python\/\">utilizziamo per crearli<\/a>.<\/li>\n<li><strong>Sviluppo pi\u00f9 veloce<\/strong>: possiamo sviluppare pi\u00f9 rapidamente servizi piccoli e mirati, comprendere meglio le funzionalit\u00e0 del nostro servizio e mantenere il sistema con maggiore facilit\u00e0.<\/li>\n<li><strong>Migliore isolamento dei guasti<\/strong>: grazie alla configurazione &#8220;modulare&#8221;, si pu\u00f2 isolare un servizio in caso di guasto senza influenzare gli altri servizi.<\/li>\n<\/ul>\n<p>D&#8217;altro canto, i microservizi possono introdurre complessit\u00e0 nella comunicazione, nella coerenza dei dati e nella gestione dei sistemi distribuiti. Per questo motivo, \u00e8 necessario valutare attentamente i requisiti dell&#8217;applicazione. In breve, \u00e8 bene considerare sia i benefici che i compromessi prima di decidere di utilizzare i microservizi.<\/p>\n<h3>I componenti di un&#8217;architettura a microservizi<\/h3>\n<p>Come \u00e8 facile intuire, un&#8217;architettura a microservizi pu\u00f2 essere costituita da diversi componenti. Questi &#8220;ingranaggi&#8221; lavorano insieme nell&#8217;intera &#8220;ruota&#8221; per fornire un&#8217;applicazione scalabile e manutenibile.<\/p>\n<p>Per questo motivo, ci sono alcuni componenti che sono fondamentali per un&#8217;implementazione senza problemi:<\/p>\n<ul>\n<li><strong>Gateway API:<\/strong> \u00e8 il punto di ingresso per le richieste dei client. <a href=\"https:\/\/kinsta.com\/it\/blog\/microservizi-vs-api\/\">Sposta le richieste<\/a> ai microservizi appropriati. Pu\u00f2 anche gestire attivit\u00e0 come la limitazione della velocit\u00e0 e l&#8217;autenticazione.<\/li>\n<li><strong>Individuazione dei servizi:<\/strong> sar\u00e0 necessario impiegare un metodo dinamico per permettere ai microservizi di <a href=\"https:\/\/www.nginx.com\/blog\/service-discovery-in-a-microservices-architecture\/\" target=\"_blank\" rel=\"noopener noreferrer\">eseguire la discovery e comunicare<\/a> tra loro. Strumenti come <a href=\"https:\/\/www.consul.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Consul<\/a> o Eureka possono aiutare in questo senso.<\/li>\n<li><strong>Containerizzazione:<\/strong> \u00e8 comune impacchettare e distribuire i microservizi come contenitori utilizzando strumenti come <a href=\"https:\/\/www.docker.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker<\/a>. In questo modo si garantisce l&#8217;isolamento di ogni servizio.<\/li>\n<li><strong>Orchestrazione:<\/strong> man mano che si aggiungono microservizi all&#8217;applicazione, la loro gestione diventa pi\u00f9 complessa. Uno strumento come <a href=\"https:\/\/kubernetes.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Kubernetes<\/a> pu\u00f2 aiutare ad automatizzare la gestione dei servizi.<\/li>\n<li><strong>Caching:<\/strong> i meccanismi di caching come <a href=\"https:\/\/kinsta.com\/it\/blog\/redis-docker\/\">Redis<\/a> o <a href=\"https:\/\/kinsta.com\/it\/blog\/memcached-vs-redis\/\">Memcached<\/a> spesso migliorano le prestazioni. Questo pu\u00f2 rivelarsi fondamentale, visto che i servizi di backend e i database sono pi\u00f9 sollecitati.<\/li>\n<li><strong>Messaggistica:<\/strong> ovviamente i servizi devono anche parlare tra loro. Questo \u00e8 il compito delle soluzioni di messaggistica &#8220;asincrona&#8221; come <a href=\"https:\/\/www.rabbitmq.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">RabbitMQ<\/a> o <a href=\"https:\/\/kafka.apache.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Apache Kafka<\/a>. Questi &#8220;message broker&#8221; consentono un accoppiamento lasco tra i microservizi.<\/li>\n<\/ul>\n<p>Gli strumenti, per\u00f2, sono solo un aspetto della configurazione. Ci sono altre considerazioni da fare, come ad esempio il modo in cui ogni microservizio sar\u00e0 progettato all&#8217;interno dell&#8217;architettura completa.<\/p>\n<h3>Modelli di progettazione per i microservizi<\/h3>\n<p>I <a href=\"https:\/\/kinsta.com\/it\/blog\/pattern-javascript-design\/\">modelli di progettazione<\/a> per i microservizi sono importanti sia in questo caso che in altre fasi del <a href=\"https:\/\/kinsta.com\/it\/blog\/workflow-wordpress\/\">flusso di sviluppo<\/a>. Data la potenziale complessit\u00e0 dell&#8217;applicazione, \u00e8 importante considerare quali modelli avranno il maggiore impatto. Ne possiamo indicare tre:<\/p>\n<ul>\n<li><strong>Database per servizio:<\/strong> ogni microservizio utilizza il proprio database dedicato, il che contribuisce all&#8217;isolamento e all&#8217;autonomia dei dati.<\/li>\n<li><strong>Composizione di API:<\/strong> si possono comporre i microservizi per creare servizi o API di livello superiore. Questa flessibilit\u00e0 e riutilizzabilit\u00e0 \u00e8 uno dei principali vantaggi.<\/li>\n<li><strong>Architettura guidata dagli eventi:<\/strong> in questo caso, i servizi comunicano attraverso gli eventi. Questo facilita un accoppiamento meno rigido e un&#8217;elaborazione asincrona.<\/li>\n<\/ul>\n<p>\u00c8 inoltre fondamentale tenere conto di modelli di progettazione specifici per gli strumenti che utilizzeremo per costruire la nostra architettura. Ad esempio, <a href=\"https:\/\/kinsta.com\/it\/blog\/kubernetes-vs-docker\/\">Docker e Kubernetes<\/a> hanno entrambi dei modelli tipici da tenere in considerazione insieme al design globale dell&#8217;architettura.<\/p>\n<p>Tuttavia, non \u00e8 necessario che ogni componente sia un microservizio. L&#8217;idea giusta \u00e8 quella di iniziare con i servizi chiave e far evolvere l&#8217;architettura nel tempo. Pi\u00f9 avanti ne parleremo in modo pi\u00f9 dettagliato. Per prima cosa, dobbiamo vedere come sviluppare il frontend.<\/p>\n<h2>Introduzione del plugin Create Block Theme<\/h2>\n<p>Probabilmente WordPress sar\u00e0 presente da qualche parte nell&#8217;architettura, dato che \u00e8 eccellente sotto molti punti di vista. Uno di questi \u00e8 la sua facilit\u00e0 d&#8217;uso nel frontend. I <a href=\"https:\/\/kinsta.com\/it\/blog\/temi-wordpress-veloci\/\">temi<\/a> sono una parte fondamentale della piattaforma e crearne di propri \u00e8 molto pi\u00f9 semplice grazie a plugin come <a href=\"https:\/\/wordpress.org\/plugins\/create-block-theme\/\" target=\"_blank\" rel=\"noopener noreferrer\">Create Block Theme<\/a>.<\/p>\n<figure id=\"attachment_178011\" aria-describedby=\"caption-attachment-178011\" style=\"width: 1000px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-178011\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/create-block-theme.png\" width=\"1000\" height=\"322\"><figcaption id=\"caption-attachment-178011\" class=\"wp-caption-text\">L&#8217;immagine dell&#8217;intestazione di Create Block Theme da WordPress.org<\/figcaption><\/figure>\n<p>Questo plugin \u00e8 il successore spirituale del <a href=\"https:\/\/underscores.me\/\" target=\"_blank\" rel=\"noopener noreferrer\">tema starter Underscores<\/a>, ma \u00e8 completamente compatibile con il full site editing (FSE). Possiamo creare velocemente un tema iniziale, sfruttare tutta la potenza dell&#8217;editor e sfruttare tutte le opzioni di personalizzazione. Funziona come un tipico plugin di WordPress, con la possibilit\u00e0 di esportarlo come tema indipendente in un secondo momento.<\/p>\n<p>L&#8217;uso del plugin Create Block Theme insieme a un&#8217;architettura a microservizi pu\u00f2 &#8220;incollare&#8221; tutto insieme. Ad esempio, possiamo utilizzare i <a href=\"https:\/\/kinsta.com\/it\/blog\/block-pattern-wordpress\/\">Block Pattern<\/a> e i blocchi riutilizzabili in diversi siti WordPress. In questo modo si favorisce il riutilizzo del codice e la coerenza, ma si pu\u00f2 anche dare un aspetto unificato a tutti i singoli servizi che si utilizzano.<\/p>\n<p>Esploreremo i dettagli dell&#8217;uso di Create Block Theme pi\u00f9 avanti in questo post. Per ora, parliamo di WordPress headless e di come i microservizi possono influenzarlo.<\/p>\n<h2>L&#8217;intersezione tra WordPress headless e un&#8217;architettura a microservizi<\/h2>\n<p>Se vogliamo <a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-headless\/\">separare<\/a> il front-end e il back-end di <a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-headless\/\">WordPress<\/a>, i microservizi possono rappresentare un passo avanti &#8220;naturale&#8221;. Nel caso del tipico WordPress headless, la piattaforma serve solo per la gestione dei contenuti. Potrebbe essere utilizzata come API.<\/p>\n<p>Combinando WordPress headless con un&#8217;architettura a microservizi, potremo:<\/p>\n<ul>\n<li>Sfruttare l&#8217;<a href=\"https:\/\/kinsta.com\/it\/blog\/rest-api-wordpress\/\">API REST di WordPress<\/a>. WordPress fornisce un&#8217;API REST integrata che permette di recuperare e manipolare i contenuti in modo programmatico. Possiamo utilizzare questa API per integrare i nostri microservizi con WordPress.<\/li>\n<li>Avere una scalabilit\u00e0 indipendente del frontend e del backend. Con due parti indipendenti del sito, potremo scalare entrambe e ottenere prestazioni migliori. Nonostante la complessit\u00e0, <strong>si ottiene<\/strong> una grande flessibilit\u00e0.<\/li>\n<\/ul>\n<p>Successivamente, vogliamo concentrarci un po&#8217; di pi\u00f9 sull&#8217;API REST. \u00c8 il modo in cui useremo i microservizi, quindi \u00e8 una parte fondamentale dell&#8217;intera catena.<\/p>\n<h2>Microservizi e API REST di WordPress<\/h2>\n<p>L&#8217;API REST di WordPress svolge un ruolo fondamentale nel consentire l&#8217;integrazione tra il nostro sito e i microservizi. I suoi <a href=\"https:\/\/kinsta.com\/it\/blog\/api-endpoint\/\">endpoint<\/a> permettono di recuperare e manipolare i post, le pagine, gli utenti, le <a href=\"https:\/\/kinsta.com\/it\/blog\/cosa-e-una-tassonomia\/\">tassonomie<\/a> e altro ancora di WordPress utilizzando l&#8217;output in JSON.<\/p>\n<pre><code class=\"language-json\">[\n  {\n    \"id\": 1,\n    \"date\": \"2020-04-01T10:30:00\",\n    \"date_gmt\": \"2020-04-01T14:30:00\",\n    \"guid\": {\n      \"rendered\": \"https:\/\/example.com\/?p=1\"\n    },\n    \"modified\": \"2020-04-01T10:30:00\",\n    \"modified_gmt\": \"2020-04-01T14:30:00\",\n    \"slug\": \"hello-world\",\n    \"status\": \"publish\",\n    \"type\": \"post\",\n    \"link\": \"https:\/\/example.com\/hello-world\/\",\n    \"title\": {\n      \"rendered\": \"Hello World\"\n    },\n    \u2026<\/code><\/pre>\n<p>In quanto tale, l&#8217;API REST \u00e8 il fulcro di tutti gli altri servizi dell&#8217;architettura. Questo significa che dovremo scegliere quali servizi del sito attuale estrarre come microservizi. Vedremo questo aspetto in modo pi\u00f9 dettagliato pi\u00f9 avanti nel post.<\/p>\n<p>In poche parole, la chiave \u00e8 identificare le diverse funzionalit\u00e0 e responsabilit\u00e0 all&#8217;interno dell&#8217;applicazione web. Da l\u00ec, potremo dividerle in microservizi indipendenti, mirati e distribuibili.<\/p>\n<h2>Costruire un&#8217;applicazione web con Create Block Theme e i microservizi<\/h2>\n<p>Il resto di questo articolo tratter\u00e0 le basi dei microservizi e di WordPress headless. Ne parleremo in termini olistici, poich\u00e9 il processo effettivo sar\u00e0 specifico per le proprie esigenze.<\/p>\n<p>Ad ogni modo, addentriamoci nel processo di costruzione di un&#8217;applicazione web utilizzando i microservizi e il plugin Create Block Theme. Il primo passo \u00e8 quello di configurare l&#8217;ambiente di sviluppo.<\/p>\n<h3>1. Creare un ambiente di sviluppo<\/h3>\n<p>Ogni app inizia con uno spazio per crearla. Per questo motivo, avremo bisogno di un ambiente di sviluppo. Ci sono due luoghi per lo spazio di sviluppo: il nostro computer locale e il nostro server.<\/p>\n<p>Ci sono molti modi per configurare un <a href=\"https:\/\/kinsta.com\/it\/blog\/installare-wordpress-in-locale\/\">ambiente di sviluppo locale<\/a>, anche se noi (naturalmente) consigliamo <a href=\"https:\/\/kinsta.com\/it\/devkinsta\/\">DevKinsta<\/a>:<\/p>\n<figure id=\"attachment_178013\" aria-describedby=\"caption-attachment-178013\" style=\"width: 1000px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-178013\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/devkinsta-logo.png\" alt=\"Il logo DevKinsta \u00e8 un'illustrazione di mani che digitano su una tastiera di computer con un grande tasto \"K\" al centro, su uno sfondo blu scuro con forme geometriche astratte..\" width=\"1000\" height=\"486\"><figcaption id=\"caption-attachment-178013\" class=\"wp-caption-text\">Il logo DevKinsta.<\/figcaption><\/figure>\n<p>Raccomandiamo anche un <a href=\"https:\/\/kinsta.com\/it\/blog\/ambienti-di-staging-di-kinsta\/\">ambiente di staging<\/a>, in quanto \u00e8 necessario un modo per testare le modifiche prima di distribuirle. Se sceglierete DevKinsta e siete <a href=\"https:\/\/kinsta.com\/it\/prezzi\/\">clienti Kinsta<\/a>, otterrete una maggiore connettivit\u00e0 al server:<\/p>\n<figure id=\"attachment_178012\" aria-describedby=\"caption-attachment-178012\" style=\"width: 1000px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-178012\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/devkinsta-dashboard.png\" alt=\"La pagina Informazioni sito di DevKinsta mostra i dettagli principali del sito locale. Include la versione corrente di WordPress, ha un nome di sito \"Kinsta Help Testing\", utilizza un server web NGINX e la versione 8.0 di PHP e un database MariaDB.\" width=\"1000\" height=\"333\"><figcaption id=\"caption-attachment-178012\" class=\"wp-caption-text\">La schermata Informazioni sito di DevKinsta.<\/figcaption><\/figure>\n<p>DevKinsta <a href=\"https:\/\/kinsta.com\/it\/blog\/installare-docker-ubuntu\/\">installer\u00e0 Docker<\/a> per noi, eliminando un elemento dalla nostra lista di cose da fare. Nel caso avessimo deciso di utilizzare Kubernetes per l&#8217;orchestrazione, dovremo installarlo adesso. Kinsta lo utilizza per le <a href=\"https:\/\/docs.sevalla.com\/databases\/overview\">applicazioni di hosting di database<\/a> e per altre attivit\u00e0; si pu\u00f2 scaricare da Docker Desktop:<\/p>\n<figure id=\"attachment_178015\" aria-describedby=\"caption-attachment-178015\" style=\"width: 1000px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-178015\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/kubernetes-dashboard.png\" alt=\"La pagina delle impostazioni di Kubernetes in un'applicazione Docker dashboard, che mostra le opzioni per abilitare Kubernetes ad avviare un cluster a singolo nodo all'avvio di Docker Desktop, mostrare i container di sistema e resettare il cluster Kubernetes, che canceller\u00e0 tutti gli stack e le risorse.\" width=\"1000\" height=\"508\"><figcaption id=\"caption-attachment-178015\" class=\"wp-caption-text\">Le impostazioni di Kubernetes all&#8217;interno di Docker Dashboard.<\/figcaption><\/figure>\n<p>Da qui, dovremo anche configurare tutti gli altri framework di cui abbiamo bisogno per sviluppare il nostro tema. Tuttavia, non saremo in grado di fare nulla senza il plugin Create Block Theme, quindi vediamo subito come funziona.<\/p>\n<h3>2. Configurare il plugin Create Block Theme<\/h3>\n<p>Una volta configurato l&#8217;ambiente di sviluppo, possiamo iniziare a lavorare con il plugin Create Block Theme per creare il nostro tema personalizzato a blocchi. Avremo bisogno anche di quanto segue:<\/p>\n<ul>\n<li>Un sito web WordPress con cui lavorare.<\/li>\n<li>L&#8217;<a href=\"https:\/\/kinsta.com\/it\/blog\/editor-php\/\">editor di codice<\/a> che preferiamo.<\/li>\n<li>Il plugin Create Block Theme.<\/li>\n<\/ul>\n<p>Possiamo <a href=\"https:\/\/kinsta.com\/it\/blog\/come-installare-i-plugin-di-wordpress\/\">installare il plugin<\/a> nel modo tipico di WordPress. Da l\u00ec, andiamo al link <strong>Aspetto &gt; Create Block Theme<\/strong> di WordPress:<\/p>\n<figure id=\"attachment_178009\" aria-describedby=\"caption-attachment-178009\" style=\"width: 1000px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-178009\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/cbt-dashboard-link.png\" alt=\"La bacheca di WordPress mostra il link Aspetto &gt; Create Block Theme. Il menu della barra laterale sinistra offre opzioni di navigazione per gestire Post, Media, Pagine, Commenti, Aspetto, Plugin, Utenti, Strumenti e Impostazioni.\" width=\"1000\" height=\"711\"><figcaption id=\"caption-attachment-178009\" class=\"wp-caption-text\">La bacheca di WordPress mostra il link Create Block Theme.<\/figcaption><\/figure>\n<p>A parte questo, se controlliamo la scheda <strong>Aspetto<\/strong>, potremo notare l&#8217;opzione <strong>Gestisci i font del tema<\/strong>. Creare un tema a blocchi d\u00e0 accesso anche a questa opzione, che \u00e8 essenzialmente la funzione della <a href=\"https:\/\/make.wordpress.org\/core\/2024\/03\/14\/new-feature-font-library\/\" target=\"_blank\" rel=\"noopener noreferrer\">libreria di font di WordPress 6.5<\/a>.<\/p>\n<p>Nella schermata di Create Block Theme dovremmo vedere un elenco di opzioni per generare un nuovo tema. Non le esamineremo tutte, ma sceglieremo di clonare <a href=\"https:\/\/kinsta.com\/it\/blog\/twenty-twenty-four\/\">Twenty Twenty-Four<\/a>. In ogni caso, verranno visualizzati una serie di opzioni e campi:<\/p>\n<figure id=\"attachment_178010\" aria-describedby=\"caption-attachment-178010\" style=\"width: 1000px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-178010\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/create-blank-theme-options.png\" alt=\"La bacheca di WordPress mostra la pagina delle impostazioni del tema Crea blocco, con le opzioni per esportare il tema Twenty Twenty-Four corrente con le modifiche dell'utente, creare un tema figlio, clonare il tema Twenty Twenty-Four o creare un tema vuoto. La pagina presenta anche campi per specificare il nome del tema, la descrizione, l'autore, l'URL dell'autore e la schermata.\" width=\"1000\" height=\"586\"><figcaption id=\"caption-attachment-178010\" class=\"wp-caption-text\">La schermata delle impostazioni di Create Block Theme.<\/figcaption><\/figure>\n<p>Questi campi diventeranno i campi di identit\u00e0 del tema all&#8217;interno del nostro file <code>style.css<\/code>. Sono semplici e consistono nella scelta di un nome, di uno screenshot, di un URL e di alcuni tag per la <a href=\"https:\/\/wordpress.org\/themes\" target=\"_blank\" rel=\"noopener noreferrer\">directory del tema di WordPress<\/a>.<\/p>\n<p>Dopo aver cliccato per confermare, andiamo di nuovo alla schermata <strong>Aspetto &gt; Temi<\/strong> e vedremo il nuovo tema pronto e in attesa:<\/p>\n<figure id=\"attachment_178016\" aria-describedby=\"caption-attachment-178016\" style=\"width: 1000px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-178016\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/new-theme-activated.png\" alt=\"La bacheca di amministrazione di WordPress mostra una panoramica dei temi, con in evidenza i temi Twenty Twenty-Four e Twenty Twenty-Three, oltre a un'anteprima del tema KinstaPress, caratterizzato da un design minimalista di colore blu.\" width=\"1000\" height=\"506\"><figcaption id=\"caption-attachment-178016\" class=\"wp-caption-text\">La schermata dei temi di WordPress.<\/figcaption><\/figure>\n<p>In alcuni casi, dovremo scaricare un file ZIP del tema che dovremo <a href=\"https:\/\/kinsta.com\/it\/blog\/come-installare-un-tema-wordpress\/\">caricare su WordPress<\/a>. \u00c8 possibile anche esportare il tema, ma per il nostro caso d&#8217;uso non lo faremo in questo momento.<\/p>\n<h4>Suggerimenti per la configurazione e l&#8217;utilizzo di Create Block Theme<\/h4>\n<p>Non ci addentreremo troppo nella personalizzazione del nuovo tema a blocchi, perch\u00e9 questo esula dallo scopo dell&#8217;articolo. Tuttavia, ecco alcuni suggerimenti per l&#8217;utilizzo di Create Block Theme:<\/p>\n<ul>\n<li>Le modifiche possono essere effettuate in due modi. Si pu\u00f2 utilizzare l&#8217;opzione <a href=\"https:\/\/learn.wordpress.org\/lesson-plan\/how-to-style-your-site-with-global-styles\/\" target=\"_blank\" rel=\"noopener noreferrer\">Stili globali<\/a> nell&#8217;<a href=\"https:\/\/kinsta.com\/it\/blog\/gutenberg-editor-wordpress\/\">Editor del sito<\/a> oppure personalizzare il file <a href=\"https:\/\/developer.wordpress.org\/themes\/global-settings-and-styles\/introduction-to-theme-json\/\" target=\"_blank\" rel=\"noopener noreferrer\">theme.json<\/a>.<\/li>\n<li>\u00c8 una buona idea <a href=\"https:\/\/kinsta.com\/it\/blog\/blocchi-gutenberg\/\">creare un blocco<\/a> per il microservizio scelto. Ne parleremo pi\u00f9 avanti.<\/li>\n<li>Create Block Theme permette di generare un <a href=\"https:\/\/kinsta.com\/it\/blog\/child-theme-wordpress\/\">tema child<\/a> basato sul tema attivo corrente. Tuttavia, la scelta dipender\u00e0 dai propri obiettivi.<\/li>\n<\/ul>\n<p>Parliamo un po&#8217; di pi\u00f9 dell&#8217;ultimo punto. Se si tratta di un tema da creare e distribuire, vorremo lavorare all&#8217;interno del tema genitore. Per uso personale, <em>potrebbe<\/em> essere utile personalizzare solo il tema child. Come regola generale, meno un tema \u00e8 &#8220;popolato&#8221; all&#8217;inizio, pi\u00f9 dovremmo lavorare all&#8217;interno del tema principale.<\/p>\n<h3>3. Estrarre i microservizi scelti<\/h3>\n<p>Quando il tema a blocchi \u00e8 pronto, \u00e8 il momento di esaminare pi\u00f9 da vicino i microservizi. Una decisione chiave che dovremo prendere \u00e8 quali servizi diventeranno &#8220;micro&#8221;.<\/p>\n<p>Questa pu\u00f2 essere una domanda complessa e soggettiva a cui bisogner\u00e0 rispondere secondo le esigenze di ogni caso specifico. Ci sono per\u00f2 alcuni fattori da tenere in considerazione:<\/p>\n<ul>\n<li><strong>Le funzionalit\u00e0 del sito:<\/strong> esaminiamo tutte le funzionalit\u00e0 distinte che il sito offre e consideriamo la possibilit\u00e0 di suddividerle in un microservizio separato, come ad esempio le funzionalit\u00e0 di pagamento.<\/li>\n<li><strong>Scalabilit\u00e0 indipendente:<\/strong> un servizio esistente che si basa sulla scalabilit\u00e0 indipendente sar\u00e0 un buon candidato per i microservizi. Il caching potrebbe esserne un esempio.<\/li>\n<li><strong>Diversit\u00e0 tecnologica:<\/strong> se abbiamo bisogno di allontanarci dall&#8217;<a href=\"https:\/\/kinsta.com\/it\/blog\/tutorial-php\/\">architettura PHP di WordPress<\/a>, questo \u00e8 un altro candidato per i microservizi. Potrebbe essere il caso di specifiche piattaforme di ecommerce o di componenti backend.<\/li>\n<li><strong>Isolamento dei dati:<\/strong> i servizi con requisiti di archiviazione dei dati personalizzati potrebbero essere dei microservizi. Questo vale anche se questi servizi non hanno bisogno di condividere i dati con altri.<\/li>\n<\/ul>\n<p>A nostro avviso, \u00e8 una buona idea creare microservizi che forniscano funzionalit\u00e0 API specifiche. Potrebbe trattarsi di ricerca, elaborazione dei pagamenti o autenticazione. Se questi servizi sono in grado di reagire con altre API di primo livello e di terze parti, diventano pi\u00f9 flessibili e preziosi.<\/p>\n<h3>Sviluppare e distribuire i microservizi<\/h3>\n<p>Per lavorare e infine distribuire i nostri microservizi, dovremo affidarci ad altri strumenti. Ecco alcune considerazioni e strumenti chiave da utilizzare:<\/p>\n<ul>\n<li><a href=\"https:\/\/kinsta.com\/it\/blog\/cosa-e-docker\/\">Docker<\/a> sar\u00e0 spesso il modo per containerizzare i microservizi. Il microservizio e le sue dipendenze vengono impacchettati insieme, rendendo pi\u00f9 facile la distribuzione e la scalabilit\u00e0.<\/li>\n<li>Ogni microservizio avr\u00e0 bisogno di un <a href=\"https:\/\/docs.sevalla.com\/applications\/build-options\/dockerfile\">Dockerfile<\/a>. Deve specificare le dipendenze, le configurazioni e l&#8217;ambiente di runtime necessari.<\/li>\n<li>L&#8217;uso di <a href=\"https:\/\/kinsta.com\/it\/blog\/kubernetes-vs-docker\/\">Kubernetes<\/a> per l&#8217;orchestrazione e la gestione dei container. Kinsta offre una potente piattaforma con supporto integrato per Kubernetes.<\/li>\n<li>Le pipeline di integrazione e distribuzione continua (CI\/CD) possono essere il modo per automatizzare creazione, test e distribuzione. Strumenti come <a href=\"https:\/\/kinsta.com\/it\/blog\/gitlab-vs-github\/\">GitLab<\/a> e <a href=\"https:\/\/kinsta.com\/it\/blog\/test-automatizzati\/\">Travis CI<\/a> possono aiutarci a ottimizzare i processi CI\/CD.<\/li>\n<li>Le <a href=\"https:\/\/kinsta.com\/it\/blog\/php-serverless\/\">funzioni serverless<\/a> non necessitano di un server completo, quindi sono ideali per i microservizi. Piattaforme come <a href=\"https:\/\/kinsta.com\/it\/blog\/function-as-a-service\/#aws-lambda\">AWS Lambda<\/a>, Google Cloud Functions o Azure Functions permettono di eseguire il codice senza dover fornire o gestire i server.<\/li>\n<li>I gateway API forniscono un unico punto di ingresso per i microservizi. Strumenti come <a href=\"https:\/\/konghq.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Kong<\/a> o <a href=\"https:\/\/aws.amazon.com\/api-gateway\/\" target=\"_blank\" rel=\"noopener noreferrer\">Amazon API Gateway<\/a> possono aiutare a gestire e proteggere le nostre API. Inoltre, possono gestire attivit\u00e0 come l&#8217;autenticazione, il rate limiting e il routing delle richieste.<\/li>\n<\/ul>\n<p>A questo punto, avremo un sito web WordPress e un microservizio indipendenti l&#8217;uno dall&#8217;altro. Il passo finale \u00e8 quello di integrarli.<\/p>\n<h3>4. Integrare i microservizi con WordPress<\/h3>\n<p>Una volta sviluppati e distribuiti i microservizi, dovremo integrarli con WordPress. Per farlo, dovremo effettuare delle chiamate API da WordPress agli endpoint che il microservizio espone. Per questo motivo, \u00e8 necessario conoscere a fondo le API REST.<\/p>\n<p>Il <a href=\"https:\/\/developer.wordpress.org\/apis\/making-http-requests\/getting-data-from-an-external-service\/\" target=\"_blank\" rel=\"noopener noreferrer\">modo tipico<\/a> per farlo in WordPress \u00e8 con <code>wp_remote_get()<\/code> o <code>wp_remote_post()<\/code>. Questo permetter\u00e0 di inviare richieste HTTP e di gestire le risposte. Ecco un esempio di codice che illustra come tutto questo possa essere integrato:<\/p>\n<pre><code class=\"language-php\">\/\/ API endpoint URL\n\n$api_url = 'https:\/\/api.example.com\/endpoint';\n\n\/\/ API request parameters\n\n$params = array(\n    'param1' =&gt; 'value1',\n    'param2' =&gt; 'value2',\n);\n\n\n\/\/ Make the API request using wp_remote_get\n$response = wp_remote_get(add_query_arg($params, $api_url));\n\n\/\/ Check if the request was successful\nif (is_wp_error($response)) {\n    \/\/ Handle the error\n    $error_message = $response-&gt;get_error_message();\n\n    \/\/ Log or display the error message\n} else {\n    \/\/ Process the API response\n    $response_body = wp_remote_retrieve_body($response);\n\n    $data = json_decode($response_body, true);\n\n    \/\/ Use the retrieved data as needed\n\n    \/\/ ...\n}\n<\/code><\/pre>\n<p>I microservizi spesso traggono vantaggio dal recupero asincrono dei dati per evitare di bloccare il thread principale. WordPress pu\u00f2 combinare due elementi per ottenere questo risultato. Possiamo utilizzare il <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/packages\/packages-api-fetch\/\" target=\"_blank\" rel=\"noopener noreferrer\">pacchetto API Fetch<\/a>, insieme al supporto per <code>async<\/code> e <code>defer<\/code> <a href=\"https:\/\/make.wordpress.org\/core\/2023\/07\/14\/registering-scripts-with-async-and-defer-attributes-in-wordpress-6-3\/\" target=\"_blank\" rel=\"noopener noreferrer\">introdotto in WordPress 6.3<\/a>. Il codice potrebbe assomigliare a questo:<\/p>\n<pre><code class=\"language-php\">import apiFetch from '@wordpress\/api-fetch';\n\n\/\/ Microservice API endpoint URL\nconst microserviceUrl = 'https:\/\/api.example.com\/microservice';\n...\n\n\n\/\/ Make the API request to the microservice\napiFetch({\n  path: microserviceUrl,\n  method: 'GET',\n  data: params,\n})\n\n  .then((response) =&gt; {\n    \/\/ Process the response\n    console.log(response);\n\n    \/\/ Use the retrieved data from the microservice\n\n    \/\/ ...\n  })\n...\n<\/code><\/pre>\n<p>Potremmo anche <a href=\"https:\/\/kinsta.com\/it\/blog\/admin-ajax-php\/\">prendere in considerazione AJAX<\/a> per effettuare aggiornamenti dinamici dell&#8217;interfaccia utente (UI).<\/p>\n<p>Naturalmente, anche l&#8217;<a href=\"https:\/\/developer.wordpress.org\/rest-api\/using-the-rest-api\/authentication\/\" target=\"_blank\" rel=\"noopener noreferrer\">autenticazione<\/a> e le misure di sicurezza sono fondamentali. L&#8217;API REST di WordPress prevede alcuni modi per autenticare le sessioni, come l&#8217;utilizzo di cookie, JSON Web Tokens (JWT) o <a href=\"https:\/\/make.wordpress.org\/core\/2020\/11\/05\/application-passwords-integration-guide\/\" target=\"_blank\" rel=\"noopener noreferrer\">Application Passwords<\/a>. Dato che ci si affida a soluzioni esterne, \u00e8 fondamentale mantenere sicuri i microservizi e il sito.<\/p>\n<p>Dato che stiamo usando un tema personalizzato a blocchi, ha senso sfruttare questa funzionalit\u00e0. Aggiungere il microservizio a un blocco significa poterlo includere praticamente ovunque nel sito. Per fare un ulteriore passo avanti, potremmo anche includere questa funzionalit\u00e0 in un plugin.<\/p>\n<p>Il processo prevede tre componenti: la <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-registration\/\" target=\"_blank\" rel=\"noopener noreferrer\">registrazione del blocco<\/a>, il <a href=\"https:\/\/make.wordpress.org\/core\/2021\/02\/18\/wordpress-5-7-a-new-dynamic-hook-to-filter-the-content-of-a-single-block\/\" target=\"_blank\" rel=\"noopener noreferrer\">rendering del contenuto<\/a> e l&#8217;elaborazione dei dati. Il linguaggio scelto \u00e8 <a href=\"https:\/\/kinsta.com\/javascript\/\">JavaScript<\/a> e la funzione <code>registerBlockType<\/code> si occuper\u00e0 della <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-registration\/#registerblocktype\" target=\"_blank\" rel=\"noopener noreferrer\">registrazione e del rendering<\/a>:<\/p>\n<pre><code class=\"language-js\">\/\/ JavaScript function that builds the Block to enable access within the Block Editor.\n( function( blocks, element ) {\n    var el = element.createElement;\n\n    blocks.registerBlockType( 'my-micro\/stripe-api', {\n        title: 'Stripe Payment Gateway',\n        icon: 'dashicons-cart',\n        category: 'embed',\n\n        edit: function() {\n            return el(\n                'div',\n                {},\n                '' \/\/ Create the visual elements of the microservice to display within the Block Editor.\n            );\n        },\n\u2026\n<\/code><\/pre>\n<p>Questo \u00e8 un esempio molto elementare di registrazione di un blocco e qualsiasi cosa in pi\u00f9 va oltre lo scopo del post. Tuttavia, possiamo vedere che \u00e8 semplice combinare il plugin Create Block Theme, i microservizi e WordPress. Se utilizziamo il giusto provider di hosting, avremo un altro modo per aggiungere valore alla nostra architettura di microservizi.<\/p>\n<h2>Utilizzare Kinsta per gestire e scalare sito WordPress e microservizi<\/h2>\n<p>L&#8217;intero ecosistema di <a href=\"https:\/\/kinsta.com\/it\/\">Kinsta<\/a> \u00e8 adatto alla gestione di siti WordPress con un&#8217;architettura a microservizi. L&#8217;elemento centrale \u00e8 l&#8217;<a href=\"https:\/\/sevalla.com\/application-hosting\/\">Hosting di Applicazioni<\/a>. Questo pu\u00f2 rendere semplice l&#8217;implementazione di microservizi containerizzati e l&#8217;utilizzo delle altre offerte di Kinsta per la loro manutenzione.<\/p>\n<p>Ad esempio, lo <a href=\"https:\/\/kinsta.com\/it\/changelog\/scaling-automatico\/\">scaling automatico<\/a> tiene sotto controllo le risorse per gestire i picchi di traffico. In questo modo i microservizi possono aumentare o diminuire in base alla domanda, e otterremo vantaggi in termini di prestazioni, mantenendo bassi i costi.<\/p>\n<p>Kinsta offre hosting gestito per una serie di tipi di database:<\/p>\n<ul>\n<li><a href=\"https:\/\/kinsta.com\/it\/blog\/cosa-e-mysql\/\">MySQL<\/a><\/li>\n<li><a href=\"https:\/\/sevalla.com\/database-hosting\/\">PostgreSQL<\/a><\/li>\n<li><a href=\"https:\/\/kinsta.com\/it\/blog\/mysql-a-mariadb\/\">MariaDB<\/a><\/li>\n<li><a href=\"https:\/\/kinsta.com\/it\/docs\/hosting-wordpress\/cache\/cache-redis\/\">Redis<\/a><\/li>\n<\/ul>\n<p>Quest&#8217;ultimo ha diversi utilizzi, come ad esempio una cache in-memory, un broker di messaggi, un database di vettori e documenti e molto altro ancora, il tutto senza la necessit\u00e0 di utilizzare SQL.<\/p>\n<figure id=\"attachment_178017\" aria-describedby=\"caption-attachment-178017\" style=\"width: 1000px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-178017\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/redis-logo.png\" alt=\"Il logo di Redis \u00e8 costituito da una pila di scatole rosse in 3D con un'icona a forma di stella bianca sulla scatola superiore, su uno sfondo blu scuro con il nome Redis in testo bianco.\" width=\"1000\" height=\"266\"><figcaption id=\"caption-attachment-178017\" class=\"wp-caption-text\">Il logo di Redis.<\/figcaption><\/figure>\n<p>Grazie a questa variet\u00e0, Kinsta \u00e8 in grado di gestire sia i database di WordPress che quelli dei microservizi, senza sforzo. Oltre al <a href=\"https:\/\/kinsta.com\/it\/edge-caching\/\">caching di prim&#8217;ordine<\/a>, al supporto di Docker e Kubernetes, all&#8217;elegante <a href=\"https:\/\/my.kinsta.com\/?lang=it\">dashboard MyKinsta<\/a> e ad altro ancora, avrete il pacchetto completo per ospitare i vostri microservizi insieme a WordPress.<\/p>\n<h2>Riepilogo<\/h2>\n<p>WordPress \u00e8 monolitico, ma ci\u00f2 non gli impedisce di incorporare microservizi. Questo pu\u00f2 avere molti vantaggi, come una migliore scalabilit\u00e0, flessibilit\u00e0 e uno sviluppo pi\u00f9 rapido.<\/p>\n<p>Il plugin Create Block Theme permette di creare una base di codice pulita e sicura per il resto del proprio progetto. I microservizi possono introdurre complessit\u00e0 nel vostro sito. L&#8217;utilizzo di un tema a blocchi personalizzato permette di implementare questi servizi nel modo migliore per le vostre esigenze. Se combinate questo con strumenti di sviluppo come <a href=\"https:\/\/kinsta.com\/it\/devkinsta\/\">DevKinsta<\/a> e l&#8217;<a href=\"https:\/\/sevalla.com\/application-hosting\/\">Hosting di Applicazioni<\/a> di Kinsta, avrete la base ideale per creare applicazioni web potenti e moderne.<\/p>\n<p>L&#8217;architettura a microservizi vi sembra perfetta per il plugin Create Block Theme? Condividete con noi le vostre opinioni ed esperienze nella sezione commenti qui sotto!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress \u00e8 un potente sistema di gestione dei contenuti (CMS) che pu\u00f2 gettare le basi per diversi tipi di siti e applicazioni. Utilizza una tipica &#8220;architettura &#8230;<\/p>\n","protected":false},"author":199,"featured_media":77486,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[25900,25873],"class_list":["post-77485","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-plugin-wordpress","topic-sviluppo-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Come costruire applicazioni web per WordPress utilizzando un&#039;architettura a microservizi - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Costruire app web con WordPress e microservizi \u00e8 un modo moderno di sviluppare. Qui analizziamo l&#039;uso del plugin Create Block Theme per farlo!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Come costruire applicazioni web per WordPress utilizzando un&#039;architettura a microservizi\" \/>\n<meta property=\"og:description\" content=\"Costruire app web con WordPress e microservizi \u00e8 un modo moderno di sviluppare. Qui analizziamo l&#039;uso del plugin Create Block Theme per farlo!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-30T07:16:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-30T11:16:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-build-wordpress-web-apps-using-a-microservices-architecture.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeremy Holcombe\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Costruire app web con WordPress e microservizi \u00e8 un modo moderno di sviluppare. Qui analizziamo l&#039;uso del plugin Create Block Theme per farlo!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-build-wordpress-web-apps-using-a-microservices-architecture-1024x512.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"21 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"Come costruire applicazioni web per WordPress utilizzando un&#8217;architettura a microservizi\",\"datePublished\":\"2024-04-30T07:16:59+00:00\",\"dateModified\":\"2024-04-30T11:16:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/\"},\"wordCount\":3392,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-build-wordpress-web-apps-using-a-microservices-architecture.jpg\",\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/\",\"name\":\"Come costruire applicazioni web per WordPress utilizzando un'architettura a microservizi - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-build-wordpress-web-apps-using-a-microservices-architecture.jpg\",\"datePublished\":\"2024-04-30T07:16:59+00:00\",\"dateModified\":\"2024-04-30T11:16:34+00:00\",\"description\":\"Costruire app web con WordPress e microservizi \u00e8 un modo moderno di sviluppare. Qui analizziamo l'uso del plugin Create Block Theme per farlo!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-build-wordpress-web-apps-using-a-microservices-architecture.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-build-wordpress-web-apps-using-a-microservices-architecture.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sviluppo di WordPress\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/sviluppo-wordpress\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Come costruire applicazioni web per WordPress utilizzando un&#8217;architettura a microservizi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"caption\":\"Jeremy Holcombe\"},\"description\":\"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeremyholcombe\/\"],\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Come costruire applicazioni web per WordPress utilizzando un'architettura a microservizi - Kinsta\u00ae","description":"Costruire app web con WordPress e microservizi \u00e8 un modo moderno di sviluppare. Qui analizziamo l'uso del plugin Create Block Theme per farlo!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/","og_locale":"it_IT","og_type":"article","og_title":"Come costruire applicazioni web per WordPress utilizzando un'architettura a microservizi","og_description":"Costruire app web con WordPress e microservizi \u00e8 un modo moderno di sviluppare. Qui analizziamo l'uso del plugin Create Block Theme per farlo!","og_url":"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2024-04-30T07:16:59+00:00","article_modified_time":"2024-04-30T11:16:34+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-build-wordpress-web-apps-using-a-microservices-architecture.jpg","type":"image\/jpeg"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"Costruire app web con WordPress e microservizi \u00e8 un modo moderno di sviluppare. Qui analizziamo l'uso del plugin Create Block Theme per farlo!","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-build-wordpress-web-apps-using-a-microservices-architecture-1024x512.jpg","twitter_creator":"@Kinsta_IT","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Jeremy Holcombe","Tempo di lettura stimato":"21 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"Come costruire applicazioni web per WordPress utilizzando un&#8217;architettura a microservizi","datePublished":"2024-04-30T07:16:59+00:00","dateModified":"2024-04-30T11:16:34+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/"},"wordCount":3392,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-build-wordpress-web-apps-using-a-microservices-architecture.jpg","inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/","url":"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/","name":"Come costruire applicazioni web per WordPress utilizzando un'architettura a microservizi - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-build-wordpress-web-apps-using-a-microservices-architecture.jpg","datePublished":"2024-04-30T07:16:59+00:00","dateModified":"2024-04-30T11:16:34+00:00","description":"Costruire app web con WordPress e microservizi \u00e8 un modo moderno di sviluppare. Qui analizziamo l'uso del plugin Create Block Theme per farlo!","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-build-wordpress-web-apps-using-a-microservices-architecture.jpg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/04\/wp-how-to-build-wordpress-web-apps-using-a-microservices-architecture.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/app-web-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Sviluppo di WordPress","item":"https:\/\/kinsta.com\/it\/argomenti\/sviluppo-wordpress\/"},{"@type":"ListItem","position":3,"name":"Come costruire applicazioni web per WordPress utilizzando un&#8217;architettura a microservizi"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","caption":"Jeremy Holcombe"},"description":"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.","sameAs":["https:\/\/www.linkedin.com\/in\/jeremyholcombe\/"],"url":"https:\/\/kinsta.com\/it\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/77485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=77485"}],"version-history":[{"count":4,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/77485\/revisions"}],"predecessor-version":[{"id":77493,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/77485\/revisions\/77493"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77485\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77485\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77485\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77485\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77485\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77485\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77485\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77485\/translations\/es"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/77485\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/77486"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=77485"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=77485"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=77485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}