diff --git a/content/it/application-programming-interface.md b/content/it/application-programming-interface.md index 0f154460ed..af12ad0923 100644 --- a/content/it/application-programming-interface.md +++ b/content/it/application-programming-interface.md @@ -23,4 +23,4 @@ Senza un framework condiviso, per le applicazioni è difficile implementare la [ Le API permettono ai programmi o alle applicazioni di interagire e condividere informazioni in modo definito e comprensibile. Sono gli elementi costitutivi delle moderne applicazioni e forniscono agli sviluppatori un modo per integrarle tra loro. -Ogni volta che si dice che i [microservizi](/it/microservices/) lavorano insieme, si può assumere che interagiscano tramite un'API. +Ogni volta che si dice che i [microservizi](/it/microservices-architecture/) lavorano insieme, si può assumere che interagiscano tramite un'API. diff --git a/content/it/chaos_engineering.md b/content/it/chaos_engineering.md index 809244cc51..ed078bfd1a 100644 --- a/content/it/chaos_engineering.md +++ b/content/it/chaos_engineering.md @@ -8,7 +8,7 @@ category: Concetto Con _Chaos Engineering_ (CE) si intende la disciplina che consiste nel condurre esperimenti su un [sistema distribuito](/it/distributed_systems/) nell'ambiente di produzione, per creare confidenza nella capacità del sistema di tollerare condizioni turbolente e inaspettate. ## Quali problematiche affronta -Le pratiche [SRE](/it/site_reliability_engineering/) e [DevOps](/it/devops/) si concentrano sulle tecniche per aumentare la resilienza e l'[affidabilità](/it/reliability/) dei prodotti digitali. La capacità di un sistema di tollerare i guasti, garantendo al contempo un'adeguata qualità del servizio, è tipicamente un requisito dello sviluppo del software. Sono diversi gli aspetti che possono portare ad anomalie di un'applicazione, come l'infrastruttura, la piattaforma o altre parti dinamiche di un'applicazione basata su ([microservizi](/it/microservices/)). L'elevata frequenza di aggiunta di nuove funzionalità in ambiente di produzione comporta un alto rischio di disservizio e di incidenti critici, con conseguenze considerevoli per l'azienda. +Le pratiche [SRE](/it/site_reliability_engineering/) e [DevOps](/it/devops/) si concentrano sulle tecniche per aumentare la resilienza e l'[affidabilità](/it/reliability/) dei prodotti digitali. La capacità di un sistema di tollerare i guasti, garantendo al contempo un'adeguata qualità del servizio, è tipicamente un requisito dello sviluppo del software. Sono diversi gli aspetti che possono portare ad anomalie di un'applicazione, come l'infrastruttura, la piattaforma o altre parti dinamiche di un'applicazione basata su ([microservizi](/it/microservices-architecture/)). L'elevata frequenza di aggiunta di nuove funzionalità in ambiente di produzione comporta un alto rischio di disservizio e di incidenti critici, con conseguenze considerevoli per l'azienda. ## In che modo aiuta Il Chaos Engineering è una tecnica per soddisfare i requisiti di resilienza. Viene utilizzata per realizzare la resilienza contro i disservizi di infrastrutture, piattaforme e applicazioni. I Chaos Engineers utilizzano esperimenti di caos per iniettare in modo proattivo errori casuali; quindi verificano che un'applicazione, un'infrastruttura o una piattaforma siano in grado di auto-ripararsi e che l'errore non possa avere un impatto significativo sui clienti. Gli esperimenti di caos mirano a scoprire i punti nascosti (ad esempio, le tecniche di monitoraggio o di [autoscaling]([it/autoscaling/)) e a migliorare le comunicazioni tra i team durante gli incidenti critici. Questo approccio contribuisce ad aumentare notevolmente la resilienza e la confidenza del team ai sistemi complessi, in particolare quello di produzione. diff --git a/content/it/cloud-native-tech.md b/content/it/cloud-native-tech.md index 1fa7bae206..625a8ffae7 100644 --- a/content/it/cloud-native-tech.md +++ b/content/it/cloud-native-tech.md @@ -6,7 +6,7 @@ category: Concetto ## Cos'è -Le tecnologie _cloud native_, a cui ci si riferisce anche con il termine _cloud native stack_, sono le tecnologie utilizzate per la creazione di [applicazioni _cloud native_](/it/cloud-native-apps/). Consentendo alle organizzazioni di implementare e gestire applicazioni scalabili in contesti moderni e dinamici quali le piattaforme cloud (pubbliche, private o ibride), mantengono la "promessa del cloud" e sfruttano al massimo i benefici del [_cloud computing_](/it/cloud-computing/). Sono progettate da zero con l'intento di impiegare le funzionalità di cloud computing e [container](/it/container/). Il [mesh di servizi](/it/service-mesh/), i [microservizi](/it/microservices/) e le [infrastrutture immutabili](/it/immutable-infrastructure/) sono esempi di questo approccio. +Le tecnologie _cloud native_, a cui ci si riferisce anche con il termine _cloud native stack_, sono le tecnologie utilizzate per la creazione di [applicazioni _cloud native_](/it/cloud-native-apps/). Consentendo alle organizzazioni di implementare e gestire applicazioni scalabili in contesti moderni e dinamici quali le piattaforme cloud (pubbliche, private o ibride), mantengono la "promessa del cloud" e sfruttano al massimo i benefici del [_cloud computing_](/it/cloud-computing/). Sono progettate da zero con l'intento di impiegare le funzionalità di cloud computing e [container](/it/container/). Il [mesh di servizi](/it/service-mesh/), i [microservizi](/it/microservices-architecture/) e le [infrastrutture immutabili](/it/immutable-infrastructure/) sono esempi di questo approccio. ## Quali problematiche affronta diff --git a/content/it/container-orchestration.md b/content/it/container-orchestration.md index 6a9a7e55e4..90e97ca464 100644 --- a/content/it/container-orchestration.md +++ b/content/it/container-orchestration.md @@ -13,7 +13,7 @@ lo strumento di orchestrazione dirige i container come un direttore d'orchestra ## Quali problematiche affronta -Gestire manualmente i [microservizi](/it/microservices), la sicurezza e la comunicazione di rete su larga scala - e i [sistemi distribuiti](/it/distributed-systems) in generale - è difficile, se non impossibile. +Gestire manualmente i [microservizi](/it/microservices-architecture), la sicurezza e la comunicazione di rete su larga scala - e i [sistemi distribuiti](/it/distributed-systems) in generale - è difficile, se non impossibile. L'orchestrazione dei container consente agli utenti di automatizzare tutte queste attività di gestione. ## In che modo aiuta diff --git a/content/it/distributed-apps.md b/content/it/distributed-apps.md index 95ea2b7976..5175568098 100644 --- a/content/it/distributed-apps.md +++ b/content/it/distributed-apps.md @@ -6,7 +6,7 @@ category: concetto ## Cos'è -Un'applicazione distribuita è un'applicazione la cui funzionalità è suddivisa in parti più piccole e indipendenti. Le applicazioni distribuite sono generalmente composte da [microservizi](/it/microservices/) che gestiscono diversi aspetti all'interno dell'applicazione più ampia. In un ambiente cloud native i singoli componenti sono tipicamente eseguiti come container all'interno di un [cluster](/it/cluster/). +Un'applicazione distribuita è un'applicazione la cui funzionalità è suddivisa in parti più piccole e indipendenti. Le applicazioni distribuite sono generalmente composte da [microservizi](/it/microservices-architecture/) che gestiscono diversi aspetti all'interno dell'applicazione più ampia. In un ambiente cloud native i singoli componenti sono tipicamente eseguiti come container all'interno di un [cluster](/it/cluster/). ## Quali problematiche affronta diff --git a/content/it/firewall.md b/content/it/firewall.md index d0bf247c63..de1ce2feee 100644 --- a/content/it/firewall.md +++ b/content/it/firewall.md @@ -14,7 +14,7 @@ I firewall possono essere hardware, software, o una combinazione di entrambi. Di default, un network permetterà a chiunque di entrare e uscire finché rispetta le regole di routing del network. A causa di questo comportamento di default, mettere in sicurezza un network è complesso. -Per esempio, in un'applicazione bancaria basata su [microservizi](/it/microservices/) i servizi comunicano tra loro trasmettendo all'interno del network dati finanziari altamente sensibili. +Per esempio, in un'applicazione bancaria basata su [microservizi](/it/microservices-architecture/) i servizi comunicano tra loro trasmettendo all'interno del network dati finanziari altamente sensibili. Un malintenzionato può infiltrarsi nel network, intercettare le comunicazioni e creare dei danni, se non c'è un firewall attivo. ## In che modo aiuta diff --git a/content/it/function-as-a-service.md b/content/it/function-as-a-service.md index 1ef489a320..bd090bfcf7 100644 --- a/content/it/function-as-a-service.md +++ b/content/it/function-as-a-service.md @@ -9,7 +9,7 @@ tags: ["infrastruttura", "", ""] Function as a Service (FaaS) è un tipo di [servizio](/it/service/) di [cloud computing](/it/cloud-computing/) [serverless](/it/serverless/) che consente l'esecuzione di codice in risposta agli eventi senza mantenere la complessa infrastruttura -tipicamente associata alla creazione e all'avvio di applicazioni a [microservizi](/it/microservices/). +tipicamente associata alla creazione e all'avvio di applicazioni a [microservizi](/it/microservices-architecture/). Con FaaS, gli utenti gestiscono solo funzioni e dati mentre il provider cloud gestisce l'applicazione. Ciò consente agli sviluppatori di ottenere le funzioni di cui hanno bisogno senza pagare per i servizi quando il codice non è in esecuzione. diff --git a/content/it/loosely-coupled-architecture.md b/content/it/loosely-coupled-architecture.md index a218cfba92..5ee109ffe7 100644 --- a/content/it/loosely-coupled-architecture.md +++ b/content/it/loosely-coupled-architecture.md @@ -6,7 +6,7 @@ tags: ["fondamenti", "", ""] --- Un'architettura loosely coupled (debolmente accoppiata) è uno stile architetturale nel quale i singoli componenti di un'applicazione sono costruiti in modo indipendente l'uno dall'altro (si tratta del paradigma opposto a quello delle [architetture tightly coupled](/it/tightly-coupled-architectures/), cioè strettamente accoppiate). -Ciascun componente, a volte chiamato [microservizio](/it/microservices/), è progettato per eseguire una specifica funzione in modo da poter essere utilizzato da un numero indefinito di altri servizi. +Ciascun componente, a volte chiamato [microservizio](/it/microservices-architecture/), è progettato per eseguire una specifica funzione in modo da poter essere utilizzato da un numero indefinito di altri servizi. Questo stile architetturale è generalmente più lento da implementare rispetto ad un'architettura tightly coupled ma garantisce molti benefici, specialmente quando le applicazioni vengono scalate. Le applicazioni loosely coupled permettono ai team di sviluppare e rilasciare funzionalità ed essere scalati in modo indipendente, consentendo così alle organizzazioni di iterare velocemente su singoli componenti. diff --git a/content/it/microservices-architecture.md b/content/it/microservices-architecture.md new file mode 100644 index 0000000000..8cb4838175 --- /dev/null +++ b/content/it/microservices-architecture.md @@ -0,0 +1,18 @@ +--- +title: Microservizi +status: Completed +tags: ["architettura", "fondamenti", ""] +--- + + +Un'architettura a microservizi è un approccio architetturale che suddivide le applicazioni in singoli [servizi](it/service) indipendenti (microservizi), ognuno dei quali si concentra su una funzionalità specifica. Questi servizi lavorano assieme, apparendo all'utente finale come un'unica entità. Prendiamo Netflix come esempio: la sua interfaccia consente di accedere, cercare e visualizzare un anteprima dei video. Queste funzionalità sono probabilmente gestite da piccoli servizi separati, ognuno dedicato a una funzionalità specifica, come l'autenticazione, la ricerca o l'esecuzione delle anteprime nel browser. +Questo approccio architetturale consente agli sviluppatori di introdurre nuove funzionalità o aggiornare quelle esistenti molto più rapidamente rispetto a un'[applicazione monolitica](it/monolithic-apps), dove tutti i componenti sono strettamente integrati (vedi sotto per ulteriori dettagli). + +## Quali problematiche affronta + +Le applicazioni sono composte da diverse parti, ciascuna responsabile di una specifica funzionalità. Tornando all'esempio di Netflix: supponiamo che, dopo una grande campagna di marketing, Netflix registri un forte aumento delle iscrizioni, mentre lo streaming rimane più o meno stabile nelle prime ore del giorno. L'aumento delle iscrizioni richiede una maggiore capacità per la gestione degli account. Con un approccio tradizionale (monolitico), l'intera applicazione dovrebbe essere [scalata](it/scalability) per gestire l'aumento della domanda causando un utilizzo delle risorse molto inefficiente. +Le architetture monolitiche possono anche portare gli sviluppatori a cadere in trappole progettuali. Poiché tutto il codice si trova in un unico luogo, è più facile creare un codice [strettamente accoppiato](it/tightly-coupled-architectures/) e più difficile applicare il principio della separazione delle responsabilità. Inoltre, i monoliti spesso richiedono agli sviluppatori di comprendere l'intero codice prima di poter implementare qualsiasi modifica. L'architettura a microservizi nasce come risposta a queste sfide. + +## In che modo aiuta + +La separazione delle funzionalità in diversi microservizi li rende più facili da distribuire, aggiornare e scalare in modo indipendente. Consente inoltre a team diversi di lavorare contemporaneamente su una piccola parte di un'applicazione più grande senza influenzare negativamente il resto dell'applicazione. Sebbene l'architettura a microservizi risolva molti problemi, introduce anche un sovraccarico operativo: il numero di elementi da distribuire e monitorare aumenta notevolmente. Molte [tecnologie cloud-native](it/cloud-native-tech/) sono progettate proprio per semplificare la distribuzione e la gestione dei microservizi. \ No newline at end of file diff --git a/content/it/microservices.md b/content/it/microservices.md deleted file mode 100644 index 5fdd012ef2..0000000000 --- a/content/it/microservices.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Microservizi -status: Completed -category: Concetto ---- - -## Cos'è - -I microservizi sono un approccio moderno allo sviluppo di applicazioni che sfrutta le tecnologie native del cloud. Sebbene le applicazioni moderne, come Netflix, sembrino essere un'unica app, in realtà sono una raccolta di servizi più piccoli, tutti in stretta collaborazione. Ad esempio, una singola pagina che ti consente di accedere, cercare e visualizzare in anteprima i video è probabilmente alimentata da servizi più piccoli che ne gestiscono ciascuno un aspetto (ad esempio ricerca, autenticazione ed esecuzione di anteprime nel browser). In breve, i microservizi si riferiscono a un modello di architettura dell'applicazione solitamente in contrasto con le [applicazioni monolitiche](/it/monolithic-apps/). - -## Quali problematiche affronta - -I microservizi sono una risposta alle sfide poste dalle applicazioni monolitiche. In genere, le diverse parti di un'applicazione dovranno essere [scalabili](/it/scalability/) separatamente. Per esempio, un negozio online avrà più visualizzazioni di prodotti che pagamenti. Ciò significa che avrai bisogno di più copie della funzionalità di visualizzazione del prodotto in esecuzione rispetto al pagamento. In un'applicazione monolitica, quei bit di logica non possono essere creati separatamente. Se non riesci a ridimensionare la funzionalità del prodotto individualmente, dovrai duplicare l'intera app con tutti gli altri componenti che non ti servono - un uso inefficiente delle risorse. Le applicazioni monolitiche causano agli sviluppatori di soccombere facilmente alle insidie della progettazione. Poiché tutto il codice è in un unico posto, è più facile rendere quel codice [strettamente accoppiato](/it/tightly-coupled-architectures/) ed è più difficile applicare il principio della separazione dei contesti. I monoliti spesso richiedono agli sviluppatori di comprendere l'intera base di codice prima di poter essere produttivi. - -## In che modo aiuta - -La separazione delle funzionalità in diversi microservizi ne semplifica la distribuzione, l'aggiornamento e la scalabilità in modo indipendente. Consentendo a diversi team di concentrarsi sulla propria piccola parte di un'applicazione più grande, rende loro più facile per loro lavorare sulle proprie app senza avere un impatto negativo sul resto dell'organizzazione. Sebbene i microservizi risolvano molti problemi, creano anche un sovraccarico operativo, le cose che ti servono per distribuire e tenere traccia del suo aumento per ordine di grandezza, ed altro. Molte [tecnologie cloud native](/it/cloud-native-tech/) mirano a semplificare la distribuzione e la gestione dei microservizi. diff --git a/content/it/monolithic-apps.md b/content/it/monolithic-apps.md index 201a161f69..8a1739e1f2 100644 --- a/content/it/monolithic-apps.md +++ b/content/it/monolithic-apps.md @@ -11,7 +11,7 @@ Un'applicazione monolitica contiene tutte le funzionalità in un programma rilas ## Quali problematiche affronta -Trasformare un'applicazione in [microservizi](/it/microservices/) aumenta gli sforzi operativi, in quanto ci sono più elementi da testare, rilasciare e mantenere in esecuzione. Nelle prime fasi del ciclo di vita di un prodotto può essere vantaggioso rimandare questa complessità e costruire un'applicazione monolitica, fino a quando il prodotto non sarà considerato un successo. +Trasformare un'applicazione in [microservizi](/it/microservices-architecture/) aumenta gli sforzi operativi, in quanto ci sono più elementi da testare, rilasciare e mantenere in esecuzione. Nelle prime fasi del ciclo di vita di un prodotto può essere vantaggioso rimandare questa complessità e costruire un'applicazione monolitica, fino a quando il prodotto non sarà considerato un successo. ## In che modo aiuta diff --git a/content/it/mutual-transport-layer-security.md b/content/it/mutual-transport-layer-security.md index 9b19203c92..ce2eb38478 100644 --- a/content/it/mutual-transport-layer-security.md +++ b/content/it/mutual-transport-layer-security.md @@ -14,7 +14,7 @@ che permette la validazione dell'identità di entrambi gli estremi della conness ## Quali problematiche affronta -I [microservizi](/it/microservices/) comunicano tramite una rete e, +I [microservizi](/it/microservices-architecture/) comunicano tramite una rete e, proprio come in una rete Wi-Fi domestica, le comunicazioni in transito su quella rete possono essere violate. Il mTLS assicura che nessun soggetto non autorizzato possa mettersi in ascolto o impersonare richieste legittime. diff --git a/content/it/platform-as-a-service.md b/content/it/platform-as-a-service.md index 5d8ed93aa9..94a7ae5945 100644 --- a/content/it/platform-as-a-service.md +++ b/content/it/platform-as-a-service.md @@ -10,7 +10,7 @@ Una Platform as a Service, o PaaS, è una piattaforma esterna ai team di svilupp ## Quali problematiche affronta -Per sfruttare i modelli nativi del cloud come i [microservizi](/it/microservices/) o le [applicazioni distribuite](/it/distributed-apps/), i team delle operation e gli sviluppatori devono essere in grado di esternalizzare una quantità significativa di operazioni e lavori di manutenzione. Questi includono attività come il provisioning dell'infrastruttura, la gestione dell'[individuazione dei servizi](/service-discovery/), il bilanciamento del carico e la [scalabilità](/it/scalability/) delle applicazioni. +Per sfruttare i modelli nativi del cloud come i [microservizi](/it/microservices-architecture/) o le [applicazioni distribuite](/it/distributed-apps/), i team delle operation e gli sviluppatori devono essere in grado di esternalizzare una quantità significativa di operazioni e lavori di manutenzione. Questi includono attività come il provisioning dell'infrastruttura, la gestione dell'[individuazione dei servizi](/service-discovery/), il bilanciamento del carico e la [scalabilità](/it/scalability/) delle applicazioni. ## In che modo aiuta diff --git a/content/it/service-mesh.md b/content/it/service-mesh.md index 09e951fcda..062f01b333 100644 --- a/content/it/service-mesh.md +++ b/content/it/service-mesh.md @@ -7,7 +7,7 @@ tags: ["networking", "", ""] ## Cos'è -In un mondo costituito da [microservizi](/it/microservices), le applicazioni sono spacchettate in diversi [servizi](/it/services) che comunicano tra loro attraverso una rete. Proprio come una qualunque rete Wi-Fi, le reti di computer sono intrinsecamente inaffidabili, hackerabili e spesso lente. Le service mesh rispondono a questo nuovo set di sfide gestendo il traffico (cioè la comunicazione) tra i servizi e conferendo in modo uniforme [affidabilità](/it/reliability), [osservabilità](/it/observability) e sicurezza a tutti i servizi. +In un mondo costituito da [microservizi](/it/microservices-architecture), le applicazioni sono spacchettate in diversi [servizi](/it/services) che comunicano tra loro attraverso una rete. Proprio come una qualunque rete Wi-Fi, le reti di computer sono intrinsecamente inaffidabili, hackerabili e spesso lente. Le service mesh rispondono a questo nuovo set di sfide gestendo il traffico (cioè la comunicazione) tra i servizi e conferendo in modo uniforme [affidabilità](/it/reliability), [osservabilità](/it/observability) e sicurezza a tutti i servizi. ## Quali problematiche affronta diff --git a/content/it/service.md b/content/it/service.md index d6633c4160..5dcc4c265a 100644 --- a/content/it/service.md +++ b/content/it/service.md @@ -5,4 +5,4 @@ category: Concetto --- -Bisogna notare che nel campo dell’informatica, l’uso della parola “servizio” può avere molteplici significati. In questa sezione, ci concentreremo sulla definizione tradizionale: il servizio come un microservizio. Se i servizi differiscono dai microservizi, possono registrarsi delle sfumature di significato e persone diverse possono avere opinioni diverse a riguardo. Abbiamo deciso che per proporre una spiegazione ad alto livello, li accumuneremo in un'unica definizione. Si prega di fare riferimento alla definizione dei [microservizi](/it/microservices/). +Bisogna notare che nel campo dell’informatica, l’uso della parola “servizio” può avere molteplici significati. In questa sezione, ci concentreremo sulla definizione tradizionale: il servizio come un microservizio. Se i servizi differiscono dai microservizi, possono registrarsi delle sfumature di significato e persone diverse possono avere opinioni diverse a riguardo. Abbiamo deciso che per proporre una spiegazione ad alto livello, li accumuneremo in un'unica definizione. Si prega di fare riferimento alla definizione dei [microservizi](/it/microservices-architecture/). diff --git a/content/it/tightly-coupled-architectures.md b/content/it/tightly-coupled-architectures.md index 58bdec40f9..a4ed80637e 100644 --- a/content/it/tightly-coupled-architectures.md +++ b/content/it/tightly-coupled-architectures.md @@ -11,5 +11,5 @@ Generalmente sono più semplici da implementare rispetto a uno stile architettur Inoltre, tendono a richiedere rollout coordinati dei componenti, cosa che può diventare un freno alla produttività degli sviluppatori. Le architetture tightly coupled sono un modo abbastanza tradizionale di costruire applicazioni. -Pur non essendo necessariamente coerenti con tutte le best practice di sviluppo di [microservizi](/it/microservices/), possono essere utili in circostanze specifiche. +Pur non essendo necessariamente coerenti con tutte le best practice di sviluppo di [microservizi](/it/microservices-architecture/), possono essere utili in circostanze specifiche. Tendono ad essere più veloci e più semplici da implementare e, come le [applicazioni monolitiche](/it/monolithic-apps/), possono velocizzare il ciclo iniziale di sviluppo.