Glossario DevOps e CI/CD
Glossario verificato
Pratiche e strumenti DevOps: integrazione e distribuzione continua, container, orchestrazione, IaC e monitoraggio.
-
A
-
Aggiornamento progressivo (rolling update)
Strategia di rilascio che sostituisce le istanze della vecchia versione con quelle della nuova a piccoli lotti anziché tutte insieme, mantenendo il servizio disponibile e consentendo di interrompere l'operazione se emergono problemi. -
Alerting (sistema di allerta)
Meccanismo che genera notifiche automatiche quando metriche o eventi superano soglie o condizioni predefinite, avvisando i team responsabili affinché intervengano; è complementare a monitoraggio e osservabilità. -
Ambiente di produzione
Ambiente reale in cui l'applicazione è resa disponibile agli utenti finali e gestisce il traffico effettivo; richiede i più alti livelli di stabilità, sicurezza e monitoraggio rispetto agli ambienti a monte. -
Ambiente di staging
Ambiente che replica il più fedelmente possibile la produzione e in cui il software viene collaudato con dati e configurazioni realistici prima del rilascio finale, per intercettare problemi non emersi nei test precedenti. -
Ambiente effimero (ephemeral environment)
Ambiente temporaneo creato automaticamente su richiesta (spesso per una pull request) e distrutto al termine, che consente di collaudare in isolamento una modifica riproducendo l'infrastruttura per la sua sola durata. -
Ansible
Strumento open source di automazione per configuration management, provisioning e deployment; agentless, descrive lo stato desiderato in playbook YAML ed è progettato per eseguire operazioni idempotenti sui nodi gestiti. -
Automazione della build (build automation)
Uso di strumenti per eseguire in modo automatico e ripetibile la compilazione del codice, la risoluzione delle dipendenze e la produzione degli artefatti, eliminando i passaggi manuali e garantendo risultati coerenti. -
Autoscaling (scalabilità automatica)
Regolazione automatica delle risorse allocate a un'applicazione in base al carico misurato, aggiungendo o rimuovendo istanze o capacità; consente di sostenere i picchi e di contenere i costi nei periodi di bassa domanda. -
B
-
Blue-green deployment
Strategia di rilascio che mantiene due ambienti di produzione identici: uno (blu) serve il traffico mentre l'altro (verde) ospita la nuova versione; il passaggio avviene commutando il traffico, con rollback immediato in caso di problemi. -
Budget di errore (error budget)
Nella pratica SRE, la quota di inaffidabilità tollerata in un periodo, pari a 1 meno l'SLO: un SLO del 99,9% concede uno 0,1% di errori. Finché il budget non è esaurito il team può rilasciare nuove funzionalità. -
C
-
Cancello di qualità (quality gate)
Punto di controllo automatico in una pipeline che verifica il rispetto di soglie predefinite (copertura dei test, vulnerabilità, code smell); se i criteri non sono soddisfatti l'avanzamento verso le fasi successive viene bloccato. -
Chaos engineering (ingegneria del caos)
Disciplina che introduce guasti in modo controllato e deliberato in un sistema (arresto di nodi, latenza di rete, esaurimento risorse) per verificarne la resilienza e scoprire punti deboli prima che causino disservizi reali in produzione. -
Chart Helm (Helm chart)
Pacchetto Helm che raccoglie i manifest Kubernetes necessari a distribuire un'applicazione, corredati di valori configurabili (values) e template; consente installazioni parametriche, versionate e riutilizzabili. -
Cluster Kubernetes
Insieme di macchine (nodi) gestite da Kubernetes, composto da un piano di controllo che prende le decisioni e da nodi di lavoro che eseguono i container; il cluster è l'unità che ospita i carichi di lavoro. -
ConfigMap
Oggetto Kubernetes che conserva dati di configurazione non riservati in coppie chiave-valore, separandoli dal codice dell'immagine; i pod possono consumarli come variabili d'ambiente, argomenti o file montati. -
Container (contenitore)
Unità di software leggera e isolata che impacchetta un'applicazione con le sue dipendenze e librerie, condividendo il kernel del sistema operativo ospite; garantisce esecuzione coerente e portabile tra ambienti diversi. -
Controllo di integrità (health check)
Verifica periodica e automatica dello stato di salute di un servizio o container tramite un endpoint o un comando; il suo esito consente a orchestratori e bilanciatori di escludere o riavviare le istanze non sane. -
Custom Resource Definition (CRD)
Meccanismo che estende l'API di Kubernetes definendo nuovi tipi di risorsa personalizzati, gestibili con gli stessi strumenti delle risorse native; è alla base degli Operator e delle piattaforme costruite su Kubernetes. -
D
-
DaemonSet
Oggetto Kubernetes che assicura l'esecuzione di una copia di un determinato pod su tutti i nodi del cluster o su un loro sottoinsieme; usato per agenti di sistema come raccolta di log, monitoraggio o funzioni di rete. -
Deployment (Kubernetes)
Oggetto Kubernetes che descrive lo stato desiderato di un insieme di pod replicati e ne gestisce in modo dichiarativo il ciclo di vita, curando aggiornamenti progressivi, rollback e ripristino automatico delle repliche. -
Deployment continuo (Continuous Deployment)
Pratica in cui ogni modifica che supera tutti i test automatizzati della pipeline viene rilasciata in produzione senza intervento umano; si distingue dalla distribuzione continua per l'assenza dell'approvazione manuale finale. -
Deriva di configurazione (configuration drift)
Divergenza progressiva tra lo stato reale di un ambiente e la configurazione prevista, dovuta a modifiche manuali o non tracciate; mina la riproducibilità ed è contrastata da infrastruttura come codice e infrastruttura immutabile. -
DevOps
Cultura e insieme di pratiche che unificano sviluppo software (Dev) e operazioni IT (Ops) per accorciare il ciclo di rilascio, automatizzare i processi e favorire collaborazione, integrazione e distribuzione continue tra i team. -
DevSecOps
Evoluzione di DevOps che integra la sicurezza in ogni fase del ciclo di vita del software, anziché relegarla a controlli finali, automatizzando test e verifiche di sicurezza lungo la pipeline secondo l'approccio 'shift-left'. -
Distribuzione continua (Continuous Delivery)
Estensione della CI in cui ogni modifica che supera la pipeline automatizzata viene resa pronta al rilascio in produzione; la messa in produzione effettiva resta però soggetta a un'approvazione manuale. -
Docker
Piattaforma open source per costruire, distribuire ed eseguire applicazioni in container; standardizza il formato delle immagini e l'esecuzione tramite Dockerfile, immagini e registry, popolarizzando l'adozione dei container. -
Docker Compose
Strumento per definire ed eseguire applicazioni multi-container tramite un file YAML che descrive servizi, reti e volumi; con un solo comando avvia, ferma e coordina l'intero insieme di container su un host. -
Dockerfile
File di testo che descrive, tramite una sequenza di istruzioni, i passaggi per costruire un'immagine container; ogni istruzione genera in genere un nuovo livello e l'insieme rende la build automatizzata e riproducibile. -
E
-
etcd
Archivio dati distribuito, coerente e basato su coppie chiave-valore usato da Kubernetes come deposito di riferimento per tutti i dati del cluster, ovvero stato e configurazione delle risorse; è parte del piano di controllo. -
G
-
Gestione dei segreti (secret management)
Insieme di pratiche e strumenti per archiviare, distribuire e controllare in modo sicuro dati riservati come password, chiavi API e certificati, evitando che compaiano in chiaro nel codice o nelle configurazioni. Esempio: HashiCorp Vault. -
Gestione della configurazione (configuration management)
Pratica di definire, applicare e mantenere in modo automatizzato e coerente la configurazione di sistemi e applicazioni, portandoli a uno stato desiderato noto e documentato; strumenti tipici sono Ansible, Puppet e Chef. -
GitOps
Modello operativo che usa un repository Git come unica fonte di verità dichiarativa dell'infrastruttura e delle applicazioni; agenti automatici confrontano di continuo lo stato reale con quello dichiarato e lo riconciliano. -
H
-
Helm
Gestore di pacchetti per Kubernetes che consente di definire, installare e aggiornare applicazioni tramite 'chart', pacchetti parametrizzabili di manifest; semplifica il rilascio di applicazioni complesse e ripetibili. -
Horizontal Pod Autoscaler (HPA)
Componente Kubernetes che regola automaticamente il numero di repliche di pod di un carico di lavoro in base a metriche osservate come uso di CPU, memoria o metriche personalizzate, mantenendo le prestazioni desiderate. -
I
-
Immagine container (container image)
Modello di sola lettura, composto da livelli sovrapposti, che contiene codice, runtime, librerie e dipendenze necessari a eseguire un'applicazione; da un'immagine si istanziano uno o più container identici. -
Infrastruttura come codice (IaC)
Pratica di definire e gestire l'infrastruttura (server, reti, servizi) tramite file di configurazione versionati anziché operazioni manuali, rendendo il provisioning ripetibile, tracciabile e automatizzabile. -
Infrastruttura immutabile (immutable infrastructure)
Approccio in cui i componenti dell'infrastruttura non vengono modificati dopo il rilascio: per ogni cambiamento si crea e distribuisce una nuova versione, sostituendo la precedente; riduce la deriva di configurazione e le incoerenze. -
Ingress
Oggetto Kubernetes che definisce regole per instradare il traffico HTTP/HTTPS proveniente dall'esterno del cluster verso i Service interni, gestendo host, percorsi e terminazione TLS tramite un ingress controller. -
Integrazione continua (CI)
Pratica per cui gli sviluppatori integrano frequentemente le proprie modifiche in un repository condiviso; ogni integrazione avvia in automatico build e test, così da rilevare presto conflitti e regressioni. -
K
-
kubectl
Interfaccia a riga di comando di Kubernetes che comunica con l'API del cluster per creare, ispezionare, aggiornare ed eliminare risorse; è lo strumento principale per operare in modo imperativo o dichiarativo sul cluster. -
kubelet
Agente eseguito su ogni nodo di un cluster Kubernetes che riceve dal piano di controllo le specifiche dei pod e ne garantisce l'esecuzione, avviando i container tramite il runtime e riportandone lo stato di salute. -
Kubernetes (K8s)
Piattaforma open source per l'orchestrazione di container che automatizza distribuzione, scalabilità, bilanciamento e gestione del ciclo di vita di applicazioni containerizzate su cluster di macchine, mantenendo lo stato desiderato. -
L
-
Layer (livello di immagine)
Insieme di modifiche al filesystem prodotto da una singola istruzione nella costruzione di un'immagine container; i livelli sono di sola lettura, condivisibili tra immagini e memorizzati in cache per accelerare build e distribuzione. -
Log centralizzati (centralized logging)
Pratica di raccogliere i log prodotti da servizi e host distribuiti in un unico sistema che li aggrega, indicizza e rende ricercabili, semplificando diagnosi e correlazione degli eventi nelle architetture distribuite. -
M
-
Monitoraggio (monitoring)
Raccolta, aggregazione e visualizzazione continua di metriche e stati di un sistema per verificarne salute e prestazioni e attivare allarmi su condizioni note; è una componente dell'osservabilità focalizzata sui problemi attesi. -
N
-
Namespace (Kubernetes)
Meccanismo che partiziona logicamente un cluster Kubernetes in ambienti virtuali isolati, consentendo di raggruppare risorse, applicare quote e controlli di accesso e separare team o progetti nello stesso cluster. -
Nodo (node)
Macchina fisica o virtuale che fa parte di un cluster Kubernetes e su cui vengono eseguiti i pod; ogni nodo di lavoro ospita i componenti (kubelet, runtime di container, proxy) necessari a far girare i carichi di lavoro. -
O
-
Open Container Initiative (OCI)
Iniziativa sotto la Linux Foundation che definisce standard aperti per i container tramite tre specifiche: formato delle immagini (image-spec), runtime (runtime-spec) e distribuzione (distribution-spec), garantendo interoperabilità tra strumenti. -
OpenTelemetry
Framework e standard open source, progetto CNCF, che fornisce API, librerie e strumentazione per generare e raccogliere in modo uniforme i dati di telemetria (tracce, metriche e log) indipendentemente dal backend di analisi. -
Operator (Kubernetes Operator)
Estensione di Kubernetes che codifica la conoscenza operativa di un'applicazione in un controller: tramite Custom Resource e un ciclo di riconciliazione automatizza compiti come installazione, aggiornamento, backup e scalabilità. -
Osservabilità (observability)
Capacità di comprendere lo stato interno di un sistema a partire dai dati che produce, tradizionalmente metriche, log e tracce; a differenza del semplice monitoraggio mira anche a diagnosticare problemi non previsti. -
P
-
Pipeline come codice (pipeline as code)
Pratica di definire la configurazione di una pipeline di CI/CD in file di testo versionati (spesso YAML) conservati nel repository, così da renderla riproducibile, revisionabile e soggetta a controllo di versione. -
Platform engineering (ingegneria di piattaforma)
Disciplina che costruisce e mantiene piattaforme interne self-service (Internal Developer Platform) per fornire agli sviluppatori strumenti, automazioni e ambienti standardizzati, riducendo il carico cognitivo e accelerando i rilasci. -
Playbook (Ansible)
File YAML che descrive in modo ordinato le attività di automazione che Ansible deve eseguire sui nodi gestiti; organizzato in task idempotenti, definisce lo stato desiderato di sistemi e applicazioni. -
Pod
Unità di esecuzione più piccola in Kubernetes: raggruppa uno o più container che condividono rete, spazio dei nomi e volumi; i container di uno stesso pod condividono un unico indirizzo IP e vengono schedulati insieme. -
Post-mortem senza colpa (blameless post-mortem)
Analisi condotta dopo un incidente per ricostruirne cause e dinamica concentrandosi sui fattori sistemici anziché sulla responsabilità individuale, così da favorire l'apprendimento e prevenire il ripetersi del problema. -
Progressive delivery (rilascio progressivo)
Termine ombrello per le strategie che espongono una nuova versione in produzione in modo incrementale e controllato (canary, rilasci per fasi), con criteri automatici o manuali che regolano ogni ampliamento e permettono di fermarsi. -
Provisioning
Processo di predisposizione e configurazione delle risorse informatiche (server, rete, storage, servizi) per renderle operative; nell'infrastruttura come codice è automatizzato a partire da definizioni dichiarative. -
R
-
Registry di container (container registry)
Servizio centralizzato che archivia e distribuisce immagini container organizzate in repository; consente di caricare (push) e scaricare (pull) immagini trasferendo solo i livelli mancanti. Esempi: Docker Hub, registri privati. -
ReplicaSet
Oggetto Kubernetes che garantisce l'esecuzione costante di un numero specificato di repliche identiche di un pod, creandone o eliminandone in base allo stato osservato; di norma è gestito indirettamente da un Deployment. -
Repository di artefatti (artifact repository)
Deposito centralizzato che archivia, versiona e distribuisce gli artefatti prodotti dalle build (pacchetti, immagini container, librerie), fungendo da fonte affidabile per le fasi successive della pipeline. Esempi: Nexus, Artifactory. -
Riconciliazione (reconciliation)
Ciclo continuo con cui un controller confronta lo stato reale del sistema con quello desiderato dichiarato e agisce per eliminarne le differenze; è il meccanismo alla base di Kubernetes e degli strumenti GitOps. -
Rilascio canary (canary release)
Strategia di rilascio progressivo in cui la nuova versione viene esposta dapprima a una piccola frazione di utenti o traffico; se le metriche restano sane la distribuzione viene gradualmente estesa a tutti, altrimenti si effettua il rollback. -
Rilascio senza interruzioni (zero-downtime deployment)
Rilascio di una nuova versione senza interruzione del servizio percepibile dagli utenti, ottenuto con tecniche come aggiornamenti progressivi, blue-green e gestione del traffico durante la transizione. -
Rollback (ripristino di versione)
Operazione che riporta un'applicazione o un'infrastruttura a una versione precedente funzionante in seguito a un rilascio difettoso, ripristinando rapidamente il servizio; molte pipeline e piattaforme lo automatizzano. -
Rotazione dei segreti (secret rotation)
Sostituzione periodica o automatica delle credenziali (password, chiavi, token) con nuove valide, così da limitare la finestra di esposizione in caso di compromissione; può avvenire in modo statico o con credenziali dinamiche a breve durata. -
Runner di CI
Agente di esecuzione che preleva i job definiti nella pipeline di CI/CD e li esegue in un ambiente isolato (macchina o container), riportando esito e log al sistema di orchestrazione; può essere gestito dal provider o self-hosted. -
Runtime di container (container runtime)
Componente software che esegue i container a partire dalle immagini, gestendone il ciclo di vita, lo storage e la rete; esempi conformi a OCI sono containerd e CRI-O, che si appoggiano all'implementazione di riferimento runc. -
S
-
Scalabilità orizzontale e verticale
Due modalità di scalare un sistema: quella orizzontale aggiunge o rimuove istanze o nodi paralleli, quella verticale aumenta o riduce le risorse (CPU, memoria) di una singola istanza; l'orizzontale è tipica dei sistemi distribuiti. -
Scoperta dei servizi (service discovery)
Meccanismo che permette a servizi e client di individuare in modo automatico gli endpoint di rete di altri servizi in ambienti dinamici, dove indirizzi e istanze cambiano di continuo, senza configurazioni statiche. -
Secret (Kubernetes)
Oggetto Kubernetes che conserva dati riservati come password, token o chiavi in coppie chiave-valore, separandoli dalle immagini e dalle ConfigMap; i pod vi accedono come variabili d'ambiente o file montati. -
Service (Kubernetes)
Astrazione che espone un gruppo di pod come un unico endpoint di rete stabile, con indirizzo IP e nome fissi; distribuisce il traffico verso i pod pur mutando questi ultimi, disaccoppiando i consumatori dalle repliche. -
Service Level Agreement (SLA)
Accordo contrattuale tra fornitore e cliente che stabilisce i livelli di servizio garantiti e le conseguenze (in genere penali o crediti) in caso di mancato rispetto; è di norma meno stringente degli SLO interni. -
Service Level Indicator (SLI)
Indicatore quantitativo che misura un aspetto specifico del livello di servizio erogato, come latenza, tasso di errori, disponibilità o throughput; è la base misurabile su cui si definiscono gli obiettivi di servizio (SLO). -
Service Level Objective (SLO)
Valore o intervallo obiettivo per un SLI che definisce il livello di servizio desiderato in un periodo (ad esempio il 99,9% delle richieste sotto i 300 ms); guida le priorità di affidabilità e determina il budget di errore. -
Service mesh (mesh di servizi)
Livello infrastrutturale dedicato che governa la comunicazione tra microservizi tramite proxy (spesso sidecar), fornendo instradamento del traffico, sicurezza mTLS, osservabilità e criteri di resilienza in modo trasparente alle applicazioni. -
Shift-left (spostamento a sinistra)
Pratica che anticipa test, controlli di qualità e verifiche di sicurezza alle prime fasi del ciclo di sviluppo, così da individuare e correggere i difetti quando la loro risoluzione è più rapida ed economica. -
Sidecar
Container ausiliario che affianca il container principale all'interno dello stesso pod per fornirgli funzionalità di supporto (proxy di rete, raccolta log, gestione dei segreti) senza modificarne il codice applicativo. -
Site Reliability Engineering (SRE)
Disciplina, formalizzata da Google, che applica principi e strumenti dell'ingegneria del software alla gestione dell'infrastruttura e delle operazioni, con l'obiettivo di costruire sistemi scalabili e altamente affidabili. -
Sonde di liveness e readiness (liveness/readiness probe)
Controlli configurabili in Kubernetes: la sonda di liveness rileva se un container va riavviato, quella di readiness se è pronto a ricevere traffico; regolano rispettivamente riavvii e instradamento del traffico verso i pod. -
Span
Unità elementare di una traccia nel tracing distribuito che rappresenta una singola operazione, registrandone nome, durata, esito e attributi; l'insieme gerarchico degli span di una richiesta forma la traccia completa. -
Stadio della pipeline (stage)
Fase logica di una pipeline di CI/CD che raggruppa un insieme di operazioni correlate (build, test, deploy); gli stadi vengono eseguiti in sequenza e l'avanzamento richiede in genere il successo di quello precedente. -
StatefulSet
Oggetto Kubernetes per gestire applicazioni con stato, che assegna ai pod identità di rete stabili e storage persistente dedicato, con creazione e aggiornamento ordinati; adatto a database e sistemi distribuiti. -
Stato di Terraform (Terraform state)
File in cui Terraform registra la corrispondenza tra le risorse dichiarate e quelle realmente esistenti nell'infrastruttura; funge da fonte di verità per calcolare le differenze e pianificare le modifiche da applicare. -
Sviluppo trunk-based (trunk-based development)
Strategia di gestione del codice in cui gli sviluppatori integrano piccole modifiche molto di frequente in un unico ramo principale (trunk), riducendo i rami di lunga durata e semplificando l'integrazione continua. -
T
-
Terraform
Strumento open source di HashiCorp per l'infrastruttura come codice che, con un linguaggio dichiarativo, provisiona e gestisce risorse su molteplici provider; confronta lo stato desiderato con quello reale per applicare solo le modifiche necessarie. -
Toil (fatica operativa)
Nel modello SRE, il lavoro operativo manuale, ripetitivo, automatizzabile e privo di valore duraturo che cresce in modo lineare con il servizio; ridurlo tramite automazione è un obiettivo chiave dell'affidabilità. -
Tracing distribuito (distributed tracing)
Tecnica di osservabilità che segue il percorso completo di una richiesta mentre attraversa più servizi, ricostruendolo come una traccia composta da span; aiuta a individuare colli di bottiglia e guasti nelle architetture a microservizi. -
V
-
Volume (container)
Meccanismo di archiviazione persistente per i container, gestito dal runtime e indipendente dal ciclo di vita del container; consente di conservare i dati oltre l'eliminazione del container e di condividerli tra più container.