Skip to content

Commit f431c13

Browse files
authored
Merge pull request #2504 from cncf/dev-it
[IT] Merge dev-it in main
2 parents a4d5b83 + 7793dd1 commit f431c13

33 files changed

+764
-9
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
title: Application Programming Interface (API)
3+
status: Completed
4+
category: tecnologia
5+
tags: ["architettura", "", ""]
6+
---
7+
8+
## Cos'è
9+
10+
Un'API è un modo tramite il quale dei programmi informatici possono interagire tra di loro.
11+
Proprio come gli umani interagiscono con un sito tramite una pagina web, un'API permette ai programmi informatici di interagire gli uni con gli altri.
12+
A differenza delle interazioni umane, le API hanno delle limitazioni su cosa si può o non si può chiedere loro.
13+
Avere un limite alle interazioni aiuta a creare una comunicazione stabile e funzionale tra programmi.
14+
15+
## Quali problematiche affronta
16+
17+
Man mano che le applicazioni diventano sempre più complesse, piccoli cambiamenti nel codice possono avere un effetto dirompente su altre funzionalità.
18+
Le applicazioni hanno bisogno di un approccio modulare alle loro funzionailtà se vogliono crescere e allo stesso tempo mantenere la stabilità.
19+
Senza API mancherebbe un framework per l'interazione tra applicazioni.
20+
Senza un framework condiviso, per le applicazioni è difficile implementare la [scalabilità](/it/scalability/) e integrarsi.
21+
22+
## In che modo aiuta
23+
24+
Le API permettono ai programmi o alle applicazioni di interagire e condividere informazioni in modo definito e comprensibile.
25+
Sono gli elementi costitutivi delle moderne applicazioni e forniscono agli sviluppatori un modo per integrarle tra loro.
26+
Ogni volta che si dice che i [microservizi](/it/microservices/) lavorano insieme, si può assumere che interagiscano tramite un'API.

content/it/auto-scaling.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
title: Autoscaling
3+
status: Completed
4+
category: Proprietà
5+
tags: ["infrastruttura", "", ""]
6+
---
7+
8+
Per *autoscaling* si intende la capacità di un sistema di essere [scalabile](/it/scalability/) automaticamente, tipicamente in termini di risorse di computazione.
9+
Con un sistema dotato di autoscaling, le risorse sono automaticamente aggiunte al bisogno, così che possano corrispondere alla portata delle richieste degli utenti in quel periodo.
10+
Il processo di autoscaling è variabile, ed è configurabile per modificare le risorse di un sistema in base a più metriche, come la memoria o il tempo di computazione.
11+
I [managed service](/it/managed-service/) sono classicamente associati a funzionalità di autoscaling, dal momento che offrono più opzioni e implementazioni della maggior parte dei sistemi on-premise.
12+
13+
In passato le infrastrutture e le applicazioni erano pensate perché le loro architetture potessero soddisfare persino i picchi di utilizzo dei sistemi. Questo comportava l'impiego di molte risorse in maniera non elastica, cioè che non variavano accordandosi al numero di richieste degli utenti.
14+
Questa mancanza di elasticità comportava maggiori costi di business e/o perdita di business in caso di disservizi dovuti a un sovraccarico di richieste.
15+
16+
Sfruttando il cloud, la [virtualizzazione](/it/virtualization/), e la [containerizzazione](/it/containerization/) delle applicazioni e delle rispettive dipendenze,
17+
le organizzazioni possono sviluppare applicazioni scalabili in relazione alla portata delle richieste degli utenti.
18+
Possono inoltre monitorare l'utilizzo delle applicazioni e sfruttare la loro scalabilità, offrendo così un'esperienza ottimale all'utente. Si consideri ad esempio l'aumento dei fruitori che Netflix deve affrontare il venerdì sera.
19+
Con *Autoscaling out* si intende l'aggiunta dinamica di nuove risorse, come ad esempio: l'aumento del numero di server che permettano più streaming video concorrenti, server che potranno poi essere terminati una volta che il flusso si sarà normalizzato.
20+
21+
## Voci collegate
22+
23+
* [Scalabilità orizzontale](/it/horizontal-scaling/)
24+
* [Scalabilità verticale](/it/vertical-scaling/)

content/it/bare-metal-machine.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
title: Macchina Bare Metal
3+
status: Completed
4+
category: tecnologia
5+
tags: ["infrastruttura", "", ""]
6+
---
7+
8+
## Cos'è
9+
10+
Bare metal (puro metallo) si riferisce a un computer fisico, più specificamente un server, che ha uno e un solo sistema operativo.
11+
Nell'informatica moderna questa distinzione è importante perché molti, se non la maggior parte, dei server sono [macchine virtuali](/it/virtual-machine/).
12+
Un server fisico è tipicamente un computer di grandi dimensioni con un hardware potente.
13+
Installare un sistema operativo ed eseguire le applicazioni direttamente su quell'hardware fisico senza [virtualizzazione](/it/virtualization/), si definisce come in esecuzione su “bare metal”.
14+
15+
## Quali problematiche affronta
16+
17+
Accoppiare un sistema operativo con un computer fisico è il modello originale dell'informatica.
18+
Tutte le risorse del computer fisico sono direttamente disponibili per il sistema operativo, e, senza livelli di virtualizzazione, non si introduce ritardo nella traduzione delle istruzione del sistema operativo all'hardware.
19+
20+
## In che modo aiuta
21+
22+
Dedicando tutte le risorse computazionali di un computer a un singolo sistema operativo si fornisce potenzialmente la miglior performance possibile al sistema operativo.
23+
Se è necessario eseguire un carico di lavoro che deve avere un accesso estremamente veloce alle risorse hardware, allora il bare metal può essere la giusta soluzione.
24+
25+
Nel contesto di [applicazioni cloud native](/it/cloud-native-apps/),
26+
generalmente si pensa alle performance in termini di [scalabilità](/it/scalability/) a un numero più alto di eventi concomitanti,
27+
che possono essere gestiti utilizzando la proprietà di [scalabilità orizzontale](/it/horizontal-scaling/) (aggiungendo più macchine al pool di risorse).
28+
Alcuni carichi di lavoro possono richiedere di utilizzare la [scalabilità verticale](/it/vertical-scaling/) (aggiungendo più potenza a una macchina fisica esistente);
29+
e/o una risposta hardware estremamente veloce, e in questi casi il bare metal è più indicato.
30+
Il bare metal permette anche di regolare l'hardware fisico ed eventualmente anche i driver hardware per aiutare a raggiungere l'obiettivo.

content/it/blue-green-deployment.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: Blue Green Deployment
3+
status: Completed
4+
category: concetto
5+
tags: ["metodologia", "applicazione", ""]
6+
---
7+
8+
## Cos'è
9+
Il blue-green deployment è una strategia per l’aggiornamento di sistemi in esecuzione con un disservizio minimo. L’operatore ha in esecuzione due ambienti, denominati “blue” e “green”. Di questi, il primo è effettivamente in produzione (ed è la versione che tutti gli utenti stanno utilizzando), mentre il secondo è in aggiornamento. Una volta che i test sono conclusi sull’ambiente non attivo (il “green”), il traffico verso produzione viene dirottato su quest’ultimo (spesso con l’utilizzo di un [load balancer](/it/load-balancer/)). Si noti che con blue-green deployment si intende spesso lo scambio di interi ambienti, compresi molti [servizi](/it/service/), in blocco. Il termine è a volte usato impropriamente in relazione a singoli servizi in un sistema. Per evitare queste ambiguità, si preferisce usare il termine “zero-downtime deployment” (a impatto nullo) quando ci si riferisce alle singole componenti.
10+
11+
12+
## Quali problematiche affronta
13+
I blue-green deployment consentono di ridurre al minimo il disservizio nel caso in cui si debba rilasciare una nuova versione di un software che manca di retrocompatibilità. Per esempio, un deployment di tipo blue-green è indicato nel caso di un negozio online che consista in un sito web e un database. Se il database ha bisogno di un aggiornamento, ma questa nuova versione non funziona con la versione corrente del sito web (e viceversa), in questo caso bisogna cambiare entrambe nello stesso momento. E se questo viene fatto in ambiente di produzione, l’utente noterà un disservizio.
14+
15+
16+
## In che modo aiuta
17+
Il blue-green deployment è la strategia appropriata per software non [cloud-native](/it/cloud-native-apps/) che necessitano di un aggiornamento con un disservizio minimo. In ogni caso il suo utilizzo è solitamente un segnale che il software ha bisogno di essere reingegnerizzato, così da poter aggiornare le sue componenti singolarmente.
18+

content/it/cloud-computing.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
title: Cloud Computing
3+
status: Completed
4+
category: Concetto
5+
tags: ["infrastruttura", "fondamenti", ""]
6+
---
7+
8+
## Cos'è
9+
10+
Il cloud computing è un modello che offre risorse computazionali come CPU, rete e capacità di archiviazione su richiesta attraverso internet.
11+
Il cloud computing offre agli utenti la possibilità di accedere e utilizzare potenza di calcolo da remoto.
12+
I cloud provider come AWS, GCP, Azure, DigitalOcean e altri offrono a terze parti la possibilità di noleggiare l'accesso a risorse computazionali in diverse località geografiche.
13+
14+
## Quali problematiche affronta
15+
16+
Tradizionalmente, le organizzazioni dovevano affrontare due problemi principali quando dovevano espandere il loro utilizzo di potenza di calcolo.
17+
Potevano o acquistare, supportare, progettare, e pagare le strutture per ospitare i loro server fisici, oppure potevano espandere e mantenere quelle strutture.
18+
Il cloud computing permette alle organizzazioni di affidare una porzione delle loro necessità di calcolo ad un'altra organizzazione.
19+
20+
## In che modo aiuta
21+
22+
I cloud provider offrono alle organizzazioni la possibilità di noleggiare risorse on-demand e di pagare in base all'utilizzo.
23+
Questo ha permesso due grandi innovazioni: le organizzazioni possono focalizzarsi sul loro prodotto o servizio senza aspettare, pianificare e investire risorse su nuove strutture fisiche. Possono [scalare](/it/scalability/) a seconda della necessità e su richiesta.
24+
Il cloud computing permette alle organizzazioni di adottare tutta (o soltanto) l'infrastruttura di cui hanno bisogno.

content/it/container-orchestration.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
title: Container Orchestration
3+
status: Completed
4+
category: Concetto
5+
---
6+
7+
## Cos'è
8+
Per orchestrazione dei [container](/it/container/) si intende la gestione e l'automazione del ciclo di vita delle applicazioni containerizzate in ambienti dinamici.
9+
L'orchestrazione dei container viene effettuata tramite l'utilizzo di un orchestratore di container (nella maggior parte dei casi [Kubernetes](/it/kubernetes)), che consente di eseguire i processi di deployment (distribuzione), (auto)scaling (scalabilità), auto-healing (riparazione) e monitoraggio.
10+
Il concetto di orchestrazione è preso in prestito dal mondo musicale ed utilizzato come una metafora:
11+
lo strumento di orchestrazione dirige i container come un direttore d'orchestra musicale, assicurandosi che ogni container (o musicista) faccia ciò che dovrebbe fare.
12+
13+
14+
15+
## Quali problematiche affronta
16+
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.
17+
L'orchestrazione dei container consente agli utenti di automatizzare tutte queste attività di gestione.
18+
19+
## In che modo aiuta
20+
Gli strumenti di orchestrazione dei container consentono agli utenti di stabilire lo stato di un sistema.
21+
Innanzitutto, dichiarano come dovrebbe apparire (ad esempio, x container, y pod, ecc.).
22+
Lo strumento di orchestrazione monitorerà quindi automaticamente l'infrastruttura e la correggerà se lo stato devia da quello dichiarato (ad esempio, avvierà un nuovo container se uno dovesse arrestarsi in modo anomalo).
23+
Questa automazione semplifica molte delle attività operative dei team di engineering, che risulterebbero altrimenti profondamente manuali e complesse. Tra queste figurano: l'assegnazione di risorse, la distribuzione, lo scaling (sia in termini di aggiunta che di rimozione di nodi), la connettività, il bilanciamento del traffico e altre attività.

content/it/containers-as-a-service.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Containers as a Service
3-
status: Completed
3+
status: Deprecated
44
category: Tecnologia
55
tags: ["platform", "", ""]
66
---
@@ -17,5 +17,5 @@ Senza servizi CaaS, i team di sviluppo software devono distribuire, gestire e mo
1717

1818
## In che modo aiuta
1919

20-
Quando si distribuiscono applicazioni containerizzate su una piattaforma CaaS, gli utenti acquisiscono visibilità sulle performance del sistema attraverso aggregazioni di log e strumenti di monitoraggio. I servizi CaaS includono anche funzionalità incorporate per l'[auto scaling](/it/auto-scaling/) e la gestione dell'orchestrazione. Ciò permette ai team di costruire [sistemi distribuiti](/it/distributed-systems/) ad alta visibilità e alta disponibilità. Inoltre, consentendo rapide distribuzioni, i servizi CaaS aumentano la velocità dei team di sviluppo. Mentre i container assicurano un obiettivo di distribuzione uniforme, i servizi CaaS diminuiscono i costi operativi a livello ingegneristico riducendo le risorse [DevOps](/it/devops/) necessarie per gestire una distribuzione.
20+
Quando si distribuiscono applicazioni containerizzate su una piattaforma CaaS, gli utenti acquisiscono visibilità sulle performance del sistema attraverso aggregazioni di log e strumenti di monitoraggio. I servizi CaaS includono anche funzionalità incorporate per l'[autoscaling](/it/auto-scaling/) e la gestione dell'orchestrazione. Ciò permette ai team di costruire [sistemi distribuiti](/it/distributed-systems/) ad alta visibilità e alta disponibilità. Inoltre, consentendo rapide distribuzioni, i servizi CaaS aumentano la velocità dei team di sviluppo. Mentre i container assicurano un obiettivo di distribuzione uniforme, i servizi CaaS diminuiscono i costi operativi a livello ingegneristico riducendo le risorse [DevOps](/it/devops/) necessarie per gestire una distribuzione.
2121

content/it/continuous-delivery(CD).md renamed to content/it/continuous-delivery.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ La _Continuous Delivery_ (rilascio continuo), spesso abbreviata in CD, è un ins
1111
La distribuzione di aggiornamenti [affidabili](/it/reliability/) diventa un problema su vasta scala. Idealmente, bisognerebbe distribuire più frequentemente per offrire un maggiore valore agli utenti finali. Tuttavia, farlo manualmente si traduce in costi di transazione elevati per ogni modifica. Storicamente, per evitare questi costi, le organizzazioni hanno rilasciato meno frequentemente, implementando più modifiche contemporaneamente e aumentando il rischio che qualcosa andasse storto.
1212

1313
## In che modo aiuta
14-
Le strategie CD creano un processo completamente automatizzato fino in produzione, che testa e distribuisce il software utilizzando varie strategie di distribuzione come le versioni [canary](/it/canary_deployment/) o [blue-green](/it/blue_green_deployment/). Ciò consente agli sviluppatori di distribuire codice frequentemente, garantendo loro la tranquillità che la nuova revisione sia stata testata. In genere, nelle strategie CD si preferisce lo sviluppo basato su _trunk_ al posto di quello su _feature branching_ o _pull requests_.
14+
Le strategie CD creano un processo completamente automatizzato fino in produzione, che testa e distribuisce il software utilizzando varie strategie di distribuzione come le versioni [canary](/it/canary-deployment/) o [blue-green](/it/blue-green-deployment/). Ciò consente agli sviluppatori di distribuire codice frequentemente, garantendo loro la tranquillità che la nuova revisione sia stata testata. In genere, nelle strategie CD si preferisce lo sviluppo basato su _trunk_ al posto di quello su _feature branching_ o _pull requests_.

content/it/continuous-deployment.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
title: Continuous Deployment (CD)
3+
status: Completed
4+
category: Concetto
5+
tags: ["metodologia", "applicazione", ""]
6+
---
7+
8+
## Cos'è
9+
10+
Il Continuous deployment, o Distribuzione Continua, spesso abbreviato CD, è il passo successivo di [continuous delivery](/it/continuous-delivery/), o
11+
ed esegue l'installazione del sofware finito direttamente in produzione.
12+
Il continuous deployment (CD) va di pari passo con la [continuous integration](/it/continuous-integration/) (CI),
13+
e il processo nel suo insieme viene spesso indicato come CI/CD.
14+
La fase di CI verifica se le modifiche apportate a una determinata applicazione sono valide,
15+
ed la fase CD distribuisce automaticamente le modifiche al codice attraverso i vari ambienti di un'organizzazione, dai test alla produzione.
16+
17+
## Quali problematiche affronta
18+
19+
Il rilascio di nuove versioni di software può essere un processo laborioso e soggetto a errori;
20+
peraltro, spesso le organizzazioni vogliono affrontarlo non troppo frequentemente per evitare incidenti in produzione
21+
e ridurre il numero di volte in cui i tecnici devono essere disponibili al di fuori del normale orario lavorativo.
22+
I modelli tradizionali di distribuzione del software portano le organizzazioni in un circolo vizioso
23+
in cui il processo di rilascio del software non soddisfa le esigenze organizzative in termini di velocità di rilascio
24+
di correzzioni applicative e nel rilascio delle nuove funzionalità.
25+
26+
## In che modo aiuta
27+
28+
Automatizzando il ciclo di rilascio e costringendo le organizzazioni a rilasciare in produzione più frequentemente,
29+
il CD fa per i team operativi quello che il CI ha fatto per i team di sviluppo.
30+
In particolare, obbliga i team operativi ad automatizzare le parti complesse e soggette a errori dei deployment in produzione,
31+
riducendo il rischio complessivo.
32+
Inoltre, migliora la capacità delle organizzazioni di accettare e adattarsi ai cambiamenti in produzione, portando conseguentemente a una maggiore stabilità.
33+
34+
## Termini correlati
35+
36+
* [Continuous Integration](/it/continuous-integration/)
37+
* [Continuous Delivery](/it/continuous-delivery/)

content/it/continuous-integration.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
title: Continuous integration (CI)
3+
status: Completed
4+
category: Concetto
5+
tags: ["metodologia", "applicazione", ""]
6+
---
7+
8+
## Cos'è
9+
10+
Continuous integration, spesso abbreviato CI, è la pratica di integrare le modifiche al codice il più regolarmente possibile.
11+
La CI è il prerequisito per la [continuous delivery](/it/continuous-delivery/) (CD).
12+
Tradizionalmente, il processo di CI inizia quando le modifiche al codice vengono committate in un sistema di controllo del codice sorgente (Git, Mercurial o Subversion)
13+
e termina con un artefatto testato pronto per essere consumato da un sistema di CD.
14+
15+
## Quali problematiche affronta
16+
17+
I software sono spesso estesi e complessi, con numerosi sviluppatori che li mantengono e aggiornano.
18+
Lavorando in parallelo su diverse parti del sistema,
19+
gli sviluppatori potrebbero apportare modifiche in conflitto e danneggiare inavvertitamente il lavoro l'uno dell'altro.
20+
Inoltre, con più sviluppatori che lavorano allo stesso progetto,
21+
qualsiasi attività quotidiana come il test e la misura della qualità del codice dovrebbe essere ripetuta da ogni sviluppatore, sprecando tempo.
22+
23+
## In che modo aiuta
24+
25+
La CI controlla automaticamente che le modifiche al codice si inseriscano in modo pulito ogni volta che uno sviluppatore finalizza una modifica.
26+
È una pratica molto diffusa utilizzare il server CI per eseguire controlli di qualità del codice, test e persino installazioni.
27+
In questo modo, diventa una concreta implementazione del controllo qualità all'interno dei team.
28+
Il processo di CI consente ai team di software di identificare chiaramente ogni commit di codice come un fallimento o come un valido candidato
29+
al rilascio in produzione.
30+
31+
## Termini correlati
32+
33+
* [Continuous Delivery](/it/continuous-delivery/)
34+
* [Continuous Deployment](/it/continuous-deployment/)

0 commit comments

Comments
 (0)