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.
Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e oltre con la newsletter Think. Leggi l' Informativa sulla privacy IBM.
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.
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:
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.
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.
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.
Le modifiche alla configurazione comportano rischi significativi per la sicurezza, le prestazioni e la conformità di un sistema.
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.
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.
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.
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.
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 è 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.
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.
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.
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.
Sfrutta la potenza dell'AI e dell'automazione per risolvere in modo proattivo i problemi in tutto lo stack di applicazioni.
Scopri come l'AI per le operazioni IT fornisce gli insight necessari per favorire eccezionali prestazioni di business.
Promuovi una trasformazione digitale scalabile con l'esperienza di settore di IBM Consulting.