Persone che esaminano un terminale

Cos'è la deriva della configurazione?

Deriva di configurazione, definizione

La deriva della configurazione si verifica quando una rete, un'app, un dispositivo o un altro sistema IT si allontanano gradualmente e involontariamente dalle impostazioni di base previste. I problemi di prestazioni causati dalla deriva della configurazione, e i conseguenti tempi di inattività, possono costare alle aziende migliaia di dollari al minuto.

In una certa misura, la deriva della configurazione è inevitabile nel corso del ciclo di vita di un sistema. Può essere causata da modifiche manuali alla rete che influiscono sul modo in cui i suoi componenti interagiscono tra loro, oppure da strumenti automatizzati che modificano le impostazioni in modi non previsti dagli amministratori. Senza la documentazione adeguata, possono essere apportate modifiche incompatibili o dannose quando i vecchi amministratori se ne vanno e ne subentrano di nuovi.

Un esempio classico di deriva di configurazione è il caso di un amministratore che applica una correzione a un server in un ambiente con bilanciamento del carico, ma non agli altri. Anche se per il momento il sistema continua a funzionare normalmente, potrebbero verificarsi problemi in futuro. Il server aggiornato potrebbe utilizzare una nuova libreria incompatibile con i futuri aggiornamenti della rete che presuppongono le condizioni originali, portando potenzialmente a interruzioni e inefficienze.

La deriva di configurazione non rappresenta solo una minaccia per le prestazioni. I sistemi che si allontanano dalle impostazioni previste possono diventare più vulnerabili agli attori malintenzionati e alle violazioni dei dati. Ad esempio, se le regole del firewall non vengono aggiornate man mano che vengono aggiunte nuove risorse a una rete, gli hacker possono introdursi di nascosto.

La deriva di configurazione può anche influenzare lo stato di conformità. Un'organizzazione può fallire un audit se la documentazione di rete descrive un insieme di impostazioni di sicurezza ma l'ambiente live è diverso.

I professionisti DevOps e gli amministratori di sistema hanno a disposizione gli strumenti per prevenire configurazioni errate e contrastare la deriva della configurazione. Gli strumenti di Infrastructure as Code (IaC), come Terraform, collegano la configurazione di rete a un file di configurazione che funge da fonte di verità. I file di configurazione aiutano a garantire che le nuove risorse di rete vengano automaticamente fornite nello stato corretto, riducendo il numero di opportunità di deriva

Gli strumenti di observability offrono agli amministratori la visibilità su metriche, log e tracce, aiutandoli a individuare le deviazioni di configurazione man mano che avvengono e ad applicare le correzioni. Un'infrastruttura immutabile limita la deriva scartando server obsoleti invece di applicare delle correzioni. La deriva di configurazione è gestita anche da strumenti di gestione della configurazione come Ansible.

Cause della deriva di configurazione

La deriva della configurazione è più comunemente causata da modifiche manuali alle configurazioni del sistema, da un'automazione errata, da problemi a livello organizzativo che creano incongruenze o da una combinazione di questi fattori.

Correzioni manuali

Le correzioni manuali una tantum sono la causa principale della deriva della configurazione.

Un "hotfix", o una correzione applicata al di fuori della normale pianificazione degli aggiornamenti, può risolvere problemi immediati e urgenti, come un server impostato su un valore di timeout errato che quindi continua a bloccarsi. Tuttavia, questo tipo di modifica della configurazione può rompere il sistema in futuro:

  • Un aggiornamento di sistema successivo che non tiene conto di questa correzione potrebbe sovrascriverla, riportando il bug originale.

  • La correzione potrebbe includere una dipendenza non considerata e incompatibile con futuri aggiornamenti della rete.

  • Una credenziale di amministrazione temporanea creata per la correzione potrebbe rimanere valida, diventando un'ulteriore responsabilità per la sicurezza.

Il numero di modi in cui errori umani (o semplici conseguenze impreviste) possono allontanare il sistema dallo stato in cui "dovrebbe" trovarsi è quasi illimitato. Anche piccole modifiche possono accumularsi a tal punto che l'ambiente di produzione reale assomiglia ben poco al repository, risultando pieno di bug e rischi per la sicurezza.

Automazione rogue

Senza test e supervisione adeguati, gli aggiornamenti e i processi automatizzati possono fare in modo che importanti risorse di rete si allontanino dalle configurazioni previste.

L'automazione è valida solo quanto la sua fonte di verità. Ad esempio, se uno strumento IaC si basa su file di configurazione obsoleti per avviare nuovi server, potrebbe finire per danneggiare l'ambiente. Gli aggiornamenti software automatizzati per app e sistemi operativi come Microsoft Windows potrebbero essere applicati in momenti diversi tra i server, causando divergenze potenzialmente dannose. E questi aggiornamenti potrebbero non funzionare bene con l'architettura di rete unica di un'organizzazione, causando ulteriori problemi.

Anche gli strumenti pensati per gestire la configurazione possono causare una deriva nelle circostanze giuste. Ad esempio, i problemi di connettività potrebbero far sì che Ansible applichi un aggiornamento della configurazione in modo non uniforme, lasciando un server invariato. Quel server si discosterà gradualmente dal suo ambiente, causando potenzialmente delle interruzioni del servizio.

Problemi organizzativi

A livello organizzativo, problemi con la pipeline di integrazione continua e fornitura continua (CI/CD) e le pratiche DevOps possono portare a problemi di configurazione.

Quando i team di sviluppo, operazioni e sicurezza sono isolati l'uno dall'altro, la confusione, la cattiva comunicazione e la risoluzione dei problemi inadeguata sono inevitabili. Oltre alle pratiche tecniche divergenti, i team all'interno di un'organizzazione possono avere le proprie pratiche di gestione del cambiamento. Alcune organizzazioni non dispongono completamente dei processi formali di gestione del cambiamento.

La mancanza di pratiche chiare e consolidate per apportare e documentare le modifiche può portare a registri di modifica incoerenti, modifiche non autorizzate e workflow di approvazione non applicati. In definitiva, amministratori, sviluppatori e ingegneri potrebbero aggirare completamente il processo di gestione del cambiamento.

Rischi della deriva di configurazione

Le modifiche alla configurazione comportano rischi significativi per la sicurezza, le prestazioni e la conformità di un sistema.

Cybersecurity

La deriva di configurazione può aumentare in modo significativo la superficie di attacco di un'organizzazione creando eccezioni alle politiche di sicurezza che rimangono sconosciute agli amministratori e quindi non risolte.

Ad esempio, una credenziale creata per applicare un hotfix potrebbe rimanere in atto, vulnerabile agli hacker che potrebbero usarla per scopi dannosi. Allo stesso modo, un ingegnere potrebbe fare un'eccezione a una regola del firewall secondo cui non torna mai indietro e non si chiude mai, indebolendo in modo significativo il livello di sicurezza della rete. Gli sviluppatori potrebbero attivare un'applicazione con controlli di sicurezza incompleti per i test e non disattivarla mai, creando un'altra vulnerabilità di sicurezza che gli attori malintenzionati possono utilizzare.

Allo stesso modo, ogni nuova app, endpoint o altra risorsa aggiunta a un sistema possono causare una deriva di configurazione se non vengono applicati i controlli di sicurezza appropriati. Ad esempio, l'aggiunta di un nuovo server senza configurare adeguatamente il sistema di rilevamento e risposta degli endpoint (EDR) può creare un collegamento debole. Un semplice errore nella configurazione dei microservizi può portare all'ingresso di un gran numero di asset non protetti nella rete.

Prestazioni

Insieme alla cybersecurity, le prestazioni di rete rappresentano il rischio più significativo (e costoso) rappresentato dalla deriva di configurazione.

Prendiamo l'esempio di un server che registra un traffico più intenso rispetto alle sue controparti. Questo server potrebbe vedere la dimensione del pool di connessione aumentata con un hotfix per migliorare le prestazioni. Poiché questo server si trova dietro un bilanciatore di carico, il bilanciatore imposta automaticamente una politica per indirizzare più traffico verso di lui, per distribuire il carico del server in modo più uniforme.

Quando il server viene sostituito durante una nuova implementazione, l'hotfix che aveva aumentato il pool non è più attivo e il server va in crash a causa del traffico aggiuntivo. L'hotfix originale applicato al traffico veloce è la deriva. Se non si tiene conto di questo aspetto, ulteriori modifiche alla rete possono comportare costosi tempi di inattività fino a quando non viene identificata la causa.

Conformità

La deriva di configurazione può fare in modo che un'organizzazione non sia più conforme senza nemmeno esserne consapevole. Quando lo stato di una rete diverge da ciò che un'organizzazione "pensa" di fare, o da ciò che dice la sua documentazione, l'organizzazione corre il rischio di non conformità. Anche se la non conformità non è intenzionale, l'organizzazione potrebbe comunque incorrere in multe e tasse.

Prendiamo l'esempio del Health Insurance Portability and Accountability Act (HIPAA). L'HIPAA richiede che le organizzazioni utilizzino determinati metodi di crittografia per proteggere i dati sensibili in transito e a destinazione.

Supponiamo che un amministratore debba integrare un sistema legacy nella propria rete conforme alla normativa HIPAA, e che questo sistema legacy utilizzi un metodo di crittografia obsoleto. Se questo metodo di crittografia non viene affrontato, l'integrazione renderà l'organizzazione non conforme all'HIPAA.

AI Academy

Prepararsi all'AI con l'hybrid cloud

Condotto dai migliori leader di pensiero di IBM, il programma di studi è stato progettato per aiutare i dirigenti aziendali ad acquisire le conoscenze necessarie per dare priorità agli investimenti in AI che possono favorire la crescita.

Come correggere e prevenire la deriva di configurazione

La rilevamento della deriva, ovvero la pratica di tracciare i cambiamenti della rete e di individuare le divergenze dal suo stato previsto, richiede una combinazione di strumenti tra cui infrastruttura come codice, GitOps, infrastruttura immutabile e observability.

Infrastructure as code (IaC, Infrastructure as Code)

L'Infrastructure as Code, la pratica di provisioning e gestione dell'infrastruttura IT utilizzando script anziché processi manuali, è uno degli strumenti più potenti per la gestione della deriva di configurazione.

L'IaC aiuta a risolvere la deriva di configurazione trasformando lo stato desiderato della rete in un pezzo di codice controllato dalla versione con cui ogni componente di rete può essere confrontato.

Ad esempio, in Terraform, quando viene apportata una modifica, lo strumento IaC confronta il file di stato (la vista più aggiornata della rete fornita dalla piattaforma) con i file di configurazione dichiarati, ovvero i file che definiscono come la rete "dovrebbe" essere. Terraform risolve quindi le discrepanze tra il file di stato e la configurazione dichiarata, aggiornando l'infrastruttura in modo che corrisponda al file di configurazione, riducendo le possibilità di deriva.

Quando le organizzazioni impongono un rigoroso controllo degli accessi agli strumenti IaC, possono ridurre ulteriormente le opportunità di deriva. Limitando l'accesso all'IaC solo a individui autorizzati che ne hanno bisogno, le organizzazioni limitano in generale la possibilità di modificare configurazioni infrastrutturali. E quando vengono apportate delle modifiche, queste passano attraverso il processo di controllo della versione IaC, riducendo ulteriormente il rischio di discrepanze.

GitOps

GitOps è una pratica DevOps che utilizza il repository open-source Git come singola fonte affidabile per i file di configurazione. GitOps aiuta molte organizzazioni a implementare l'IaC con la massima efficienza e sicurezza.

Le pratiche di GitOps si concentrano sull'uso dell'automazione per convalidare lo stato della rete rispetto allo stato desiderato memorizzato in Git in tempo reale. Le piattaforme GitOps possono eseguire una scansione continua delle reti, rilevare le configurazioni errate e segnalarle o applicare le correzioni, rendendo temporanea qualsiasi deriva che si verifica. E poiché tutte le modifiche sono legate a Git, vengono tutte tracciate con un autore, un timestamp e una descrizione.

Infrastruttura immutabile

L'infrastruttura immutabile mitiga la deriva della configurazione riducendo drasticamente il numero complessivo di opportunità per modificare la configurazione della rete.

L'infrastruttura immutabile è la pratica di sostituire, non modificare, server e altre risorse IT quando sono necessarie modifiche.

Ad esempio, supponiamo che un server necessiti di un aggiornamento di sicurezza. Anziché applicare l'aggiornamento al server esistente, gli amministratori lo disattiverebbero e lo sostituirebbero con uno nuovo e aggiornato.

L'infrastruttura immutabile si avvale di strumenti IaC per distribuire automaticamente i nuovi sistemi come descritti nel codice, quando sono necessarie delle modifiche. Ogni nuovo componente aggiunto alla rete corrisponde automaticamente allo stato desiderato.

Le tre pratiche di IaC, GitOps e infrastruttura immutabile sono strettamente interconnesse. Gli strumenti IaC definiscono le immagini per i componenti di rete mentre GitOps facilita il deployment, costruisce un record completo della rete e previene discrepanze.

Observability

I tre pilastri dell'observability (log, metriche e tracce) hanno anch'essi un ruolo nel prevenire la deriva delle configurazioni.

Una piattaforma di observability, ad esempio, potrebbe rilevare che le metriche di un server (come i tempi di risposta o l'utilizzo della CPU) si discostano in modo significativo da server che dovrebbero avere configurazioni identiche. Questa divergenza è un potenziale sintomo di deriva. Analogamente, le discrepanze nei registri dei tassi di errore per ciascun server potrebbero indicare una deriva se un server presenta un numero anormalmente elevato di errori di un certo tipo. Le tracce della catena di chiamate di un'applicazione possono anche rivelare posizioni che riscontrano deviazioni e deriva.

Rilevamento della deriva

Il rilevamento della deriva è la pratica di confrontare lo stato effettivo di una rete con lo stato desiderato per rilevare discrepanze. Sebbene si possa ipoteticamente eseguire questo processo manualmente, molti provider cloud e IaC offrono strumenti con funzionalità di rilevamento delle deriva, che aiutano ad automatizzare e semplificare un progetto altrimenti dispendioso in termini di tempo.

Ad esempio, AWS Config registra le configurazioni dei moduli AWS, segnala tutto ciò che si discosta dallo stato desiderato e aiuta a correggere la deriva. Le valutazioni di stato di salute di Terraform verificano che le impostazioni reali dell'infrastruttura corrispondano alle impostazioni registrate nel file di stato dello spazio di lavoro e convalidano continuamente che le risorse soddisfino i controlli richiesti definiti nelle configurazioni del sistema.

Terraform Enterprise confronta le condizioni con il file di stato, oppure aggiorna il file di stato per riflettere le condizioni reali, rivelando i cambiamenti. Strumenti di gestione della configurazione come Ansible e Puppet possono essere utilizzati anche per il rilevamento delle deriva.

Autori

Derek Robertson

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

Soluzioni correlate
IBM Instana Observability

Sfrutta la potenza dell'AI e dell'automazione per risolvere in modo proattivo i problemi in tutto lo stack di applicazioni.

Esplora IBM Instana Observability
Soluzioni AIOps

Scopri come l'AI per le operazioni IT fornisce gli insight necessari per favorire eccezionali prestazioni di business.

Esplora le soluzioni AIOps
Servizi di consulenza tecnologica

Promuovi una trasformazione digitale scalabile con l'esperienza di settore di IBM Consulting.

Esplora i servizi di consulenza tecnologica
Fasi successive

Scopri come l'AI per le operazioni IT fornisce gli insight necessari per favorire eccezionali prestazioni di business.

  1. Scopri Instana Observability
  2. Esplora IBM AIOps