configuration management devops practices
Che cos'è la gestione della configurazione nelle pratiche DevOps?
Concetto di Test continuo in DevOps è stato spiegato in dettaglio nel nostro precedente tutorial.
Il punto forte della gestione della configurazione in DevOps è fornire,
- Infrastruttura come codice
- Configurazione come codice
Da leggere => Serie esclusiva di tutorial DevOps
come ottenere la chiave di sicurezza per il wifi
Ci sono numerosi vantaggi di 'Infrastruttura come codice' e 'Configurazione come codice' nella pratica DevOps.
-
- Le configurazioni sono controllate dalla versione
- Automatizzato e standardizzato
- Rimuove la dipendenza
- Configurazione dell'infrastruttura senza errori
- Migliora la collaborazione tra le operazioni e il team di sviluppo
- Correzione della deriva della configurazione
- Trattare l'infrastruttura come una risorsa flessibile
- Scalabilità automatizzata dell'infrastruttura
- Mantenere la coerenza nelle configurazioni
VIDEO Parte 4 Blocco 1: Gestione della configurazione- 23 minuti 7 secondi
Trascrizione:
In questa parte, impareremo Gestione della configurazione, gestione dei rilasci e monitoraggio delle prestazioni delle applicazioni in DevOps.
Qui, nel blocco 1, ci concentreremo sulla gestione della configurazione e capiremo cos'è la gestione della configurazione e come è diversa in DevOps e nei metodi tradizionali.
Per cominciare, sappiamo che cos'è la gestione della configurazione?
La gestione della configurazione, come spiega il nome stesso, non è altro che la gestione di tutte le configurazioni degli ambienti su cui si trova l'applicazione software.
Come sappiamo, disponiamo di ambienti diversi in tutto l'SDLC in DevOps a partire da unit test, test di integrazione, test di sistema, test di accettazione e test per l'utente finale.
E ho anche spiegato nei miei tutorial precedenti che l'ambiente impostato per questi test diventerebbe progressivamente più complesso man mano che si avanza verso l'ambiente di pre-produzione e produzione.
Quindi, fondamentalmente, la gestione della configurazione è il processo automatizzato per gestire tutte le configurazioni di ciascuno di questi ambienti.
Allora qual è la differenza tra la gestione della configurazione tradizionale e la gestione della configurazione DevOps?
Nei nostri metodi tradizionali di gestione della configurazione, il team gestiva queste configurazioni di vari ambienti tramite documentazione formale in cui ciascuna delle configurazioni veniva registrata nei documenti e il team di configurazione o il manager utilizzato per gestire il controllo della versione di questi documenti.
E man mano che subisce modifiche, si assume anche la responsabilità di impostare l'ambiente e gestire manualmente le configurazioni
Ora in DevOps, in genere, tutti questi processi di gestione della configurazione sono abbastanza ben automatizzati e le configurazioni sono incapsulate sotto forma di codice o script e controllate tramite lo strumento di controllo della versione.
In questo contesto, possiamo chiamare che il team operativo è integrato con lo sviluppo nella gestione degli ambienti attraverso il singolo strumento di controllo della versione.
Quindi, il punto forte della gestione della configurazione in DevOps è fornire,
-
-
- Infrastruttura come codice
- Configurazione come codice
-
Che cosa significa effettivamente 'Infrastruttura come, come codice'? Definisce l'intera definizione dell'ambiente come un codice o uno script invece di registrarla in un documento formale.
Allora cosa include la definizione dell'ambiente? La definizione dell'ambiente generalmente include la configurazione di server, la configurazione di reti e l'impostazione di altre risorse di elaborazione, che fanno parte dell'infrastruttura IT impostata. Quindi, tutti questi dettagli sarebbero stati scritti come file o sotto forma di codice e archiviati nello strumento di controllo della versione.
Questo script o codice, che viene archiviato nel controllo della versione, diventerebbe l'unica fonte per definire l'ambiente o persino aggiornare quegli ambienti.
Solo per dare un semplice Esempio , se dobbiamo aggiungere un server all'ambiente specifico, tutto ciò che dovremmo fare è aggiornare queste informazioni negli script dell'ambiente ed eseguire la pipeline di consegna, invece di andare manualmente e creare un nuovo ambiente con il server aggiunto o cercare l'aiuto degli amministratori di sistema per farlo.
Quindi, il bello qui è che lo sviluppatore o il tester non deve essere un esperto di amministratore di sistema per configurare i propri server per attività di sviluppo o test.
Quindi, l'infrastruttura impostata in DevOps sarà completamente automatizzata, e fondamentalmente segue lo script che viene archiviato per il controllo della versione a partire dall'installazione dei server, configurandoli, installando il sistema operativo, fino a quando i canali di comunicazione di queste istanze non vengono stabiliti con il distribuito Software.
Qual è la configurazione come codice?
La configurazione come codice non è altro che definire tutte le configurazioni dei server o qualsiasi altra risorsa come codice o script e controllarle nel controllo della versione.
Questi script di configurazione che vengono archiviati nel controllo della versione vengono eseguiti come parte della pipeline di distribuzione per impostare l'infrastruttura e le sue configurazioni in modo automatizzato.
Ebbene, la definizione delle configurazioni include parametri che definiscono le impostazioni consigliate per il corretto funzionamento del software. Oppure una serie di comandi da eseguire inizialmente per configurare l'applicazione software. O anche potrebbero essere le configurazioni di ciascuno dei componenti del software che devono essere impostati, o ruoli utente specifici, privilegi utente ecc.,
Semplice Esempio consisterebbe nell'impostare gli interruttori delle funzionalità, dove i valori predefiniti sono impostati come parte del parametro di configurazione.
L'aggiunta di un'altra porta a un firewall sarebbe un'altra Esempio , che può essere aggiornato nello script e successivamente questi script vengono eseguiti come parte della pipeline di consegna.
Sono disponibili diversi strumenti per eseguire l'automazione dell'infrastruttura nel mercato. Pochi di loro sono Chef, Puppet, Terraform, ecc., Chef e Puppet sono strumenti di gestione della configurazione basati su ruby, mentre Terraform è uno strumento di provisioning.
Inoltre, in questi giorni, poiché quasi tutte le applicazioni saranno ospitate sul cloud, AWS, esse stesse forniscono RESTAPI, che possono essere sfruttate a questo scopo.
Ho un enorme elenco di vantaggi della gestione della configurazione in DevOps, piuttosto che definire l'infrastruttura e le configurazioni come un codice.
Esaminiamoli uno per uno.
Tutte le configurazioni ei dettagli dell'infrastruttura sono controllati dalla versione, il che è un grande vantaggio nell'implementazione di DevOps.
# 1) Questo aiuta il team a gestire le modifiche ai server e alla configurazione in modo automatizzato e aiuta a eseguire il debug rapidamente se qualcosa non riesce, in un breve lasso di tempo e consente anche di tornare rapidamente alla versione precedente, senza causare interruzioni ai clienti.
#Due) Poiché questi script si trovano sul server centrale e tutti nel team sanno cosa c'è in ciascuno di questi script e quali sono le modifiche apportate in ciascuna di queste versioni. Ciò consente anche al team di tornare alla versione precedente, se ci sono problemi nelle ultime versioni.
Immagina, se si verifica un arresto anomalo del server, quanto tempo ci sarebbe voluto per ripristinarlo manualmente. E ora, definendo l'infrastruttura come script e controllo della versione, possiamo immediatamente ripristinare andando alla versione precedente.
# 3) Gestire le configurazioni come un codice impedisce inoltre a qualcuno di apportare modifiche accidentali al sistema e previene eventuali danni causati in seguito nella produzione.
Poiché la gestione della configurazione è totalmente automatizzata, l'intervento manuale per la configurazione o l'aggiornamento è completamente eliminato.
Immagina l'impatto sul costo, sulla qualità e sul tempo quando prima le persone dipendevano dalle risorse umane per eseguire manualmente queste configurazioni e quando alcune configurazioni vengono perse o non impostate come richiesto.
Quindi, l'automazione della gestione della configurazione non solo ha beneficiato del risparmio di tempo, ma anche dell'eliminazione di tali errori umani e del miglioramento della qualità. Inoltre, lo standard di codifica ha aiutato il team a seguire lo standard specificato nella codifica e nell'automazione invece di seguire la fantasia di ciascuna persona che scrive la guida alla configurazione.
Come discusso in precedenza, le configurazioni fornite come codice hanno rimosso la dipendenza da una singola persona o da un team chiamato gestore di configurazione o team di configurazione. Il team di sviluppo non deve aspettare che arrivi il team di configurazione e risolva qualsiasi problema di infra o configurazione.
O anche per impostare le infra e le configurazioni, che sono completamente automatizzate e controllate dalla versione. Quindi, chiunque nel team sia uno sviluppatore o un tester può far girare un server ed eseguire le configurazioni per i propri scopi di sviluppo e test. Quindi l'impostazione del server e delle configurazioni è diventata indipendente dalla persona.
Ciò garantisce inoltre che gli stessi server non vengano utilizzati dai team di sviluppo e di controllo qualità per le loro attività, cosa che generalmente accadeva prima.
L'infrastruttura e le configurazioni definite come un codice comune insieme all'automazione e al controllo delle versioni standardizzano tutti gli ambienti e le impostazioni. Quindi, questo non solo semplifica l'attività di debug per gli sviluppatori, ma elimina anche gli errori umani che si traducono in configurazioni infra prive di errori, che altrimenti causerebbero enormi danni, se non rilevati in anticipo.
Qui, possiamo vedere chiaramente la chiara collaborazione tra Dev e Ops, dove entrambi si affidano a un'unica fonte per eseguire la configurazione dell'infrastruttura ed entrambi i team sono attivamente coinvolti nell'automazione e nella configurazione dell'intera gestione della configurazione.
Questo lavorare insieme per raggiungere un obiettivo comune aumenta la collaborazione tra i team, lo sviluppo e le operazioni.
Correzione della deriva della configurazione
Cos'è la deriva della configurazione?
Piccole differenze e incongruenze tra i server, che a volte si verificano a causa dell'aggiornamento manuale, che si accumula in un periodo di tempo, sono chiamate Deriva della configurazione.
Questa non è una buona situazione, perché questa incoerenza nei server lascia alcuni file di programma come manifest, playbook non funzionare in modo affidabile su tutti i server e quindi porta a un errore di automazione. Quindi, questo deve essere evitato per consentire al team di utilizzare efficacemente l'automazione delle configurazioni.
La gestione dell'infra e della configurazione come codice e controllo della versione ha aiutato il team a evitare o correggere qualsiasi tipo di deriva di configurazione tra i vari ambienti o tra le configurazioni di sviluppo e produzione, mantenendo costantemente le configurazioni su tutti i server.
Pertanto, un team può essere più sicuro di configurazioni di configurazione simili sulla configurazione di sviluppo come quella in produzione. Questo li aiuta anche a simulare i problemi di produzione nell'ambiente di sviluppo.
Quindi, questo aiuta a prevenire qualsiasi tipo di cambiamento imprevisto che uno qualsiasi dei membri del team potrebbe provare a fare sull'infrarosso, che potrebbe interrompere la configurazione e anche costringere il team a non apportare modifiche alla configurazione a meno che non abbiano effettuato l'accesso come un codice al repository.
La fornitura dell'infrastruttura e della sua configurazione come codice ha consentito al team di gestirla come una risorsa flessibile per soddisfare le esigenze aziendali dinamiche del cliente.
È una specie di plug and play ora. Un team può entrare in modo specifico in un determinato server o rete e apportare le modifiche ad essi. Potrebbe essere semplicemente l'aggiornamento del server di provisioning o l'aggiunta o la modifica dell'archiviazione in una particolare rete, o anche l'aggiornamento del sistema operativo, e tutto può essere aggiornato in modo indipendente come una risorsa flessibile.
In precedenza, cambiare un parametro di configurazione richiedeva davvero molto tempo, soprattutto mentre era necessario aggiornare in tutti i server, ma ora è solo una volta. Aggiorna lo script e carica nello strumento di controllo della versione ed è tutto fatto.
Esiste la flessibilità per eliminare completamente l'infrastruttura esistente e portarne fuori un'altra. Quindi, la gestione dell'infrastruttura e delle configurazioni è diventata piuttosto semplice ora. Ebbene, le soluzioni basate su cloud hanno consentito all'infrastruttura di scalare automaticamente aggiungendo le risorse di elaborazione o di archiviazione aggiuntive come richiesto e ridimensionando quando non sono necessarie.
Ciò ha consentito l'ottimizzazione dell'utilizzo delle risorse in base alla domanda. Se vogliamo scalare l'infrastruttura aumentando le dimensioni della macchina, possiamo farlo immediatamente. Allo stesso modo, se vogliamo scalare o magari aggiungere un'altra configurazione o aggiungere più front-end, possiamo farlo in pochi secondi semplicemente aggiornandolo nel codice ed eseguendo la pipeline automatizzata.
Ultimo, ma non meno importante, l'infrastruttura, la fornitura come codice in un ambiente controllato aiuta a mantenere la coerenza degli ambienti in varie configurazioni. Questo aiuta anche nel debug del problema. Anche questo punto l'ho trattato in una certa misura parlando della deriva della configurazione.
Questo è tutto e questo completa il nostro discorso sulla gestione della configurazione in DevOps, su cosa sono l'infrastruttura e le configurazioni come codice e quali sono i suoi vantaggi.
Nel nostro prossimo tutorial, discuteremo gli aspetti di Release Management in DevOps.
Tutorial PREV | PROSSIMO Tutorial
Lettura consigliata
- Gestione dei rilasci in DevOps
- Tutorial sul test DevOps: in che modo DevOps influirà sui test di controllo qualità?
- Test continuo in DevOps
- Esercitazione sul test di configurazione con esempi
- Distribuzione continua in DevOps
- I migliori strumenti DevOps open source (con installazione e configurazione)
- I 10 migliori strumenti di test continuo per i test DevOps (Elenco 2021)
- TestLodge Test Management Tool Review