Browse by Tags
We've categorized the glossary terms. Use the filters to browse terms by tag.
Applicazioni Cloud Native
Cos’è Le applicazioni Cloud Native sono progettate specificamente per sfruttare le innovazioni nel Cloud Computing. Queste applicazioni si integrano facilmente con le rispettive architetture cloud sfruttandone le risorse e le capacità in termini di scalabilità. La definizione si riferisce anche ad applicazioni che sfruttano le innovazioni in ambito infrastrutturale, introdotte dal Cloud Computing. Con applicazioni Cloud Native oggi si intendono app che vengono eseguite indifferentemente in data center di un provider cloud o su piattaforme Cloud Native on-premise...
Applicazioni distribuite
Cos’è Un’applicazione distribuita è un’applicazione la cui funzionalità è suddivisa in parti più piccole e indipendenti. Le applicazioni distribuite sono generalmente composte da microservizi 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. Quali problematiche affronta Un’applicazione in esecuzione su un singolo computer rappresenta un singolo punto di vulnerabilità: se quel computer si blocca, l’applicazione non sarà più disponibile...
Architettura ad eventi
Cos’è Un’architettura basata sugli eventi è un paradigma di progettazione software che promuove la creazione, l’elaborazione e il consumo di eventi. Un evento è un qualunque cambiamento di stato di un’applicazione. Per esempio, richiedere una corsa su un’applicazione di ride-sharing rappresenta un evento. Questo tipo di architettura crea la struttura nella quale gli eventi possono essere correttamente indirizzati dalla loro origine (l’applicazione che richiede una corsa) al destinatario desiderato (l’applicazione degli autisti disponibili nelle vicinanze)...
Astrazione
Nel campo dell’informatica, un’astrazione è una rappresentazione che nasconde le specifiche a un consumatore di servizi (sia esso un programma o un utente), rendendo un sistema più generico e quindi facilmente comprensibile. Un buon esempio è il sistema operativo (OS - Operating System) di un PC, che astrae tutti i dettagli sul funzionamento di un computer. Non è necessario sapere alcunché sulla CPU, sulla memoria e su come vengono gestiti i programmi...
Canary Deployment
Cos’è Per Canary deployment si intende una strategia di distribuzione che inizia con due ambienti: uno con traffico in tempo reale e l’altro contenente il codice aggiornato senza traffico in tempo reale. Il traffico viene gradualmente spostato dalla versione originale dell’applicazione alla versione aggiornata. Si può iniziare spostando l'1% del traffico in tempo reale, quindi il 10%, il 25% e così via, fino a quando tutto il traffico viene veicolato attraverso la versione aggiornata...
Chaos Engineering
Cos’è Con Chaos Engineering (CE) si intende la disciplina che consiste nel condurre esperimenti su un sistema distribuito nell’ambiente di produzione, per creare confidenza nella capacità del sistema di tollerare condizioni turbolente e inaspettate. Quali problematiche affronta Le pratiche SRE e DevOps si concentrano sulle tecniche per aumentare la resilienza e l’affidabilità 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...
Cloud Native Security
Cos’è Cloud native security è un approccio che include la sicurezza nelle applicazioni cloud native. Garantisce che la sicurezza faccia parte dell’intero ciclo di vita dell’applicazione, dalla fase di sviluppo fino alla messa in produzione. Cloud native security mira a garantire gli stessi standard dei modelli di sicurezza tradizionali, adattandosi al contempo alle particolarità degli ambienti cloud native, in particolare alle rapide modifiche del codice e all’infrastruttura altamente effimera. Cloud native security è molto legata alla pratica chiamata DevSecOps...
Cluster
Cos’è Un cluster è un gruppo di computer o applicazioni che lavorano insieme verso un comune obiettivo. Nel contesto del cloud computing nativo, il termine è più spesso riferito a Kubernetes. Un cluster Kubernetes è un insieme di servizi (o workloads) che vengono eseguiti nei loro containers, di solito su macchine diverse. L’insieme di tutti questi servizi containerizzati, collegati su una rete, rappresentano un cluster. Quali problematiche affronta Il software che è in esecuzione su un singolo computer presenta un singolo punto di vulnerabilità: se quel computer si blocca, o qualcuno accidentalmente ne scollega il cavo di alimentazione, parte del sistema critico di business potrebbe andare offline...
Come Contribuire
I contenuti del Glossario Cloud Native sono disponibili in questo repository di GitHub, dove troverai una lista di issue, PR, e discussion riguardanti il glossario. Ci sono tre modi in cui puoi contribuire: Proporre nuove voci Migliorare quelle esistenti Aiutare nella traduzione del glossario Entra nella Glossary community Valuta di entrare anche tu nei nostri meeting mensili del Glossary Working Group, se hai intenzione di contribuire regolarmente. Puoi trovare i dettagli del meeting nel calendario della CNCF...
Container Orchestration
Cos’è Per orchestrazione dei container si intende la gestione e l’automazione del ciclo di vita delle applicazioni containerizzate in ambienti dinamici. L’orchestrazione dei container viene effettuata tramite l’utilizzo di un orchestratore di container (nella maggior parte dei casi Kubernetes), che consente di eseguire i processi di deployment (distribuzione), (auto)scaling (scalabilità), auto-healing (riparazione) e monitoraggio. Il concetto di orchestrazione è preso in prestito dal mondo musicale ed utilizzato come una metafora: lo strumento di orchestrazione dirige i container come un direttore d’orchestra musicale, assicurandosi che ogni container (o musicista) faccia ciò che dovrebbe fare...
Containers
Cos’è Un container è un processo in esecuzione con vincoli di risorse e capacità gestiti dal sistema operativo di un computer. I file disponibili per il processo del container vengono compressi in una “immagine” del container. I container vengono eseguiti in spazi di memoria adiacenti sulla stessa macchina, ma in genere il sistema operativo impedisce ai processi container separati di interagire tra loro. Quali problematiche affronta Prima che i container fossero disponibili, erano necessarie macchine separate per eseguire le applicazioni...
Continuous Delivery (CD)
Cos’è La Continuous Delivery (rilascio continuo), spesso abbreviata in CD, è un insieme di pratiche in cui le modifiche al codice vengono automaticamente implementate in un ambiente di accettazione (oppure, nel caso di distribuzione continua, in produzione). Parte integrante della CD sono le procedure per garantire che il software sia adeguatamente testato prima della distribuzione, nonché le modalità di ripristino in caso di necessità. L’integrazione continua (CI - da Continuous Integration) è il primo passo verso la distribuzione continua (vale a dire, le modifiche devono essere raggruppate in modo pulito prima di essere testate e implementate)...
DevOps
Cos’è DevOps è una metodologia in cui i team sono responsabili dell’intero processo: dallo sviluppo delle applicazioni fino alle attività di installazione, configurazione e manutenzione in produzione, da cui DevOps. Il concetto va oltre l’implementazione di una serie di tecnologie e richiede un cambiamento completo nella cultura e nei processi. DevOps richiede gruppi di ingegneri che lavorano su piccoli componenti (invece di un’intera feature), diminuendo i passaggi di mano - una fonte comune di errori...
DevSecOps
Cos’è Il termine DevSecOps si riferisce alla combinazione culturale delle responsabilità di sviluppo, operative e di sicurezza. Estende l’approccio DevOps per includere le priorità in materia di sicurezza con un’interruzione minima o nulla del flusso di lavoro degli sviluppatori e degli operatori. Come DevOps, DevSecOps è un cambiamento culturale, spinto dalle tecnologie adottate, con metodi di adozione unici. Quali problematiche risolve Le pratiche DevOps includono continuous integration e continuous deployment e accelerano i cicli di sviluppo e rilascio delle applicazioni...
eBPF
Cos’è eBPF, per esteso “Berkeley Packet Filter”, è una tecnologia che consente di eseguire piccoli programmi o script in sandbox nello spazio kernel di un sistema Linux, senza dover modificare il codice sorgente del kernel o caricare moduli del kernel Linux specifici. Un sistema Linux ha due spazi di esecuzione dei processi: il kernel e lo spazio utente. Il kernel rappresenta il nucleo del sistema operativo ed è l’unica parte con accesso illimitato all’hardware...
Event Streaming
Cos’è L’event streaming è un approccio nel quale un software invia i dati di un evento da un’applicazione a un’altra per comunicare costantemente cosa stanno facendo. Si immagini un servizio che trasmetta ogni cosa che faccia a tutti gli altri servizi. Ogni attività intrapresa da un servizio è chiamata evento, da cui event streaming. Per esempio, NASDAQ ottiene aggiornamenti sui prezzi di azioni e materie prime ogni secondo. Se si ha un’applicazione che monitora uno specifico insieme di azioni, ci si aspetta di ricevere quelle informazioni in tempo quasi reale...
Glossario Cloud Native
Glossario Cloud Native Il Glossario Cloud Native è un progetto guidato dal Business Value Subcommittee (BVS) della CNCF con cui la community si propone di spiegare concetti del mondo cloud native con un linguaggio semplice e diretto che non presupponga conoscenze tecniche pregresse. Contribuire L’invito a suggerire modifiche, aggiunte e migliorie al Glossario Cloud Native è aperto a chiunque abbia voglia di contribuire. Il processo che adottiamo per lo sviluppo e l’arricchimento di questo dizionario condiviso è guidato dalla community e governato dalla CNCF...
Guida di Stile
Questa guida ti aiuterà a comprendere chi sono i destinatari del Glossario, la struttura delle definizioni, il livello di dettaglio richiesto e come mantenere uno stile coerente. Il Glossario Cloud Native rispetta la Guida di Stile del repository CNCF, ma si è posto regole aggiuntive e specifiche: Usa un linguaggio semplice, accessibile e che eviti tecnicismi spinti e buzzwords Evita un linguaggio eccessivamente colloquiale Usa un linguaggio concreto ed espressioni letterali Fai attenzione agli accenti, alla correlazione dei tempi verbali e alla punteggiatura Prediligi la forma attiva Utilizza preferibilmente la forma affermativa Non eccedere con le parentesi Non esagerare Evita le ripetizioni Sii concisə Usa pure termini e diciture in inglese se sono largamente utilizzati in ambito tecnico, ma aggiungi comunque una traduzione italiana per chiarire...
Infrastructure as Code
Cos’è Con infrastructure as code (IaC - Infrastruttura come Codice) si intende il processo di gestione e provisioning dell’infrastruttura attraverso file di definizione leggibili da una macchina: tratta la configurazione dell’infrastruttura alla stregua di software di programmazione. Questo sostituisce il modello tradizionale in cui l’infrastruttura come servizio viene creata manualmente, in genere tramite script di shell o altri strumenti di configurazione. Quali problematiche affronta La creazione di applicazioni native sul cloud richiede che l’infrastruttura sia a perdere e riproducibile...
Macchina virtuale (VM)
Cos’è Una macchina virtuale (VM) è un computer e il suo sistema operativo che non è legato a un particolare componente hardware. Le macchine virtuali si basano sulla virtualizzazione per suddividere un singolo computer fisico in più computer virtuali. Questa separazione consente alle organizzazioni e ai fornitori di infrastrutture di creare e distruggere VM senza influire sull’hardware sottostante. Quali problematiche affronta Le macchine virtuali sfruttano la virtualizzazione. Quando una macchina bare metal è vincolata a un singolo sistema operativo (OS), il modo in cui le risorse della macchina possono essere utilizzate è alquanto limitato...
Microservizi
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)...
Multitenancy
Cos’è Multitenancy (o multi-tenancy) si riferisce a una singola installazione software che serve più tenant. Un tenant può essere un utente, un’applicazione o un gruppo di utenti/applicazioni che utilizzano il software per operare sul proprio set di dati. Questi tenant non condividono dati (a meno che non siano espressamente istruiti in tal modo dal proprietario) e possono non essere a conoscenza l’uno dell’altro. Un tenant può essere piccolo come un utente indipendente con un singolo ID di accesso — si pensi ai software di produttività personale — o tanto estesi quanto un’intera azienda con migliaia di ID di accesso, ciascuno con i suoi permessi e comunque correlati in molti modi...
Nodi
Cos’è Un nodo è un computer che lavora insieme ad altri computer, o nodi, per realizzare un compito comune. Prendi per esempio il tuo portatile, il modem e la stampante. Sono tutti collegati alla tua rete wireless che comunicano e collaborano: ognuno rappresenta un nodo. Nel cloud computing, un nodo può essere un computer fisico, un computer virtuale (chiamato VM) o anche un container. Quali problematiche affronta Un’applicazione potrebbe (e in molti casi è così) girare su una singola macchina, ma ci sono alcuni rischi legati a questo...
Portabilità
Caratteristica del software, la portabilità è una forma di riutilizzabilità che aiuta a evitare il “lock-in” in determinati ambienti operativi, ad esempio in ambito di Cloud Provider, sistemi operativi o fornitori vari. Tradizionalmente, si tende a realizzare software per ambienti specifici (quali, ad esempio, AWS o Linux). Il software portabile, invece, funziona in ambienti operativi diversi senza bisogno di grandi modifiche. Un’applicazione è considerata portabile se lo sforzo necessario per adattarla a un nuovo ambiente è entro limiti ragionevoli...
Reliability
Da una prospettiva cloud native, la reliability (affidabilità) si riferisce a quanto positivamente un sistema reagisce a problemi. Per semplificare al massimo, se un sistema distribuito continua a funzionare nonostante eventuali modifiche all’infrastruttura e al malfunzionamento di alcuni componenti, questo viene definito affidabile. Al contrario, se smette di funzionare correttamente e gli operatori devono intervenire manualmente per mantenerlo in funzione, il sistema è definito inaffidabile. L’obiettivo delle applicazioni cloud native è costruire sistemi intrinsecamente affidabili...
Role-Based Access Control (RBAC)
Cos’è Il Role-based access control (RBAC - Controllo degli accessi basato sul ruolo) è un metodo per regolare l’accesso a sistemi e risorse basato sui ruoli dei singoli utenti all’interno di un’organizzazione. Ogni funzione aziendale ha un ruolo specifico e determinati permessi. Per esempio, un membro del team di marketing potrebbe avere i permessi per vedere le trattative in corso (permesso di lettura), ma non sarà in grado di modificarle (permesso di scrittura)...
Scalabilità
La scalabilità si riferisce alla capacità di un sistema di estendersi, o altrimenti detto di aumentare la propria capacità di fare qualsiasi cosa il sistema debba fare. Ad esempio, un cluster Kubernetes è scalabile perché vi si possono aumentare o ridurre il numero delle applicazioni containerizzate. La scalabilità dipende, però, da diversi fattori. Quanti nodi ha, quanti containers può gestire ogni nodo e quanti “record” e operazioni può supportare il pannello di controllo...
Servizio
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...
Site Reliability Engineering
Cos’è Site Reliability Engineering o SRE è una disciplina che combina operations e ingegneria del software. Quest’ultima viene applicata specificamente a problemi infrastrutturali e operativi. In altre parole, invece di creare funzionalità di prodotto, i SRE realizzano i sistemi su cui le applicazioni sono in esecuzione. Esistono somiglianze con DevOps, ma mentre DevOps si concentra sul portare il codice in produzione, SRE garantisce che il codice in produzione funzioni correttamente...
Sviluppo Agile del Software
Cos’è Un insieme di pratiche che enfatizzano i cicli di sviluppo iterativi e i team auto-organizzati. In contrasto con i progetti waterfall (a cascata) in cui il valore è generato solo alla fine del progetto, lo sviluppo agile del software si concentra su una consegna continua e incrementale del valore e sul miglioramento evolutivo del processo stesso. Quali problematiche affronta Definire, comunicare e comprendere i requisiti per tutti gli stakeholder (interessati) in un progetto di sviluppo software è molto difficile, se non impossibile...
Tecnologia Cloud Native
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. 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. Sono progettate da zero con l’intento di impiegare le funzionalità di cloud computing e container...
TLS
Cos’è Il Transport Layer Security (TLS) è un protocollo progettato per fornire maggiore sicurezza alla comunicazione su una rete. Garantisce la consegna sicura dei dati inviati su Internet, evitando possibili monitoraggi e/o alterazioni dei dati stessi. Questo protocollo è ampiamente utilizzato in applicazioni come messaggistica, e-mail, ecc. Quali problematiche affronta Senza TLS, le informazioni sensibili come le abitudini di navigazione, la corrispondenza e-mail, le chat online e le chiamate in conferenza possono essere facilmente rintracciate e modificate da altri durante la trasmissione...