In questa serie di articoli su DevOps, ho iniziato la discussione reintroducendo DevOps con una nuova prospettiva. Nella seconda parte, ho fatto lo stesso ma concentrandomi sul ciclo di vita del rilascio del software.
Ho distinto i ruoli di Software Engineer e DevOps Engineer in modo puntuale e tabulare nella terza parte:
In questa quarta parte, voglio concentrarmi ancora una volta sul ruolo di Ingegnere DevOps in particolare ed espandere in dettaglio le sue responsabilità primarie.
Prima di iniziare, ti suggerisco di dare una rapida occhiata ai nostri nuovi modelli, in particolare al ciclo di vita dello sviluppo del sistema e ai diagrammi del ciclo di vita del rilascio del software illustrati in precedenza.
Esplorazione delle responsabilità essenziali di un ingegnere DevOps
Le responsabilità di un Software Engineer sono già abbastanza note. Ma è necessario esplorare come cambiano gli scenari nel caso di un DevOps Engineer:
Pianificazione dell'implementazione del software
A differenza della pianificazione della progettazione del software come fanno gli ingegneri del software, la pianificazione della sua distribuzione può essere una responsabilità completamente diversa. Sulla base del concetto preliminare del software, gli sviluppatori hanno elaborato un progetto basato su come verrebbe implementato. Ma effettivamente pianificare la sua implementazione su piattaforme diverse può essere un ruolo significativo per qualsiasi ingegnere DevOps che si prenda molta cura nel portarlo a compimento.
Codice di gestione
La gestione del codice è un aspetto importante per qualsiasi software in esecuzione in produzione. Il controllo regolare del codice aiuta enormemente a ridurre al minimo i bug che potrebbero essere riscontrati in un ambiente di produzione. Gli ingegneri DevOps si occupano della messa a punto del codice già esistente creato dall'inizio del software di livello alfa e anche della post-produzione.
Documentazione della procedura di distribuzione
Anche un ottimo software non andrebbe bene se non avesse una documentazione chiara e concisa. Gli ingegneri del software documentano come creare il software e come distribuirlo. Ma gli ingegneri DevOps si concentrano esclusivamente sulla documentazione della procedura di distribuzione.
Più un software diventa vecchio a causa del suo utilizzo in produzione, più importante diventa mantenere un controllo approfondito del suo processo di distribuzione. Pertanto, la documentazione è uno sforzo continuo ed è importante quanto le revisioni del codice. Migliore documentazione =Bug minori. Lo sapevi:
Il test della documentazione è un tipo non funzionale di test del software.
Testing solo di versioni stabili del software
A differenza degli ingegneri software, i ruoli DevOps si concentrano solo sulle versioni stabili perché solo queste versioni sono considerevoli per un ambiente a livello di produzione per la distribuzione. Il software che ha terminato il suo primo ciclo di vita ADLC (Application Development Life Cycle), deve essere testato a fondo per il suo potenziale come versione di produzione stabile e questo è curato da un DevOps Engineer dedicato.
Segnalazione di bug con correzione critica (se necessario)
Questa parte è una combinazione di documentazione e correzione di bug. Quando una versione stabile è in esecuzione in produzione, tutti i bug riscontrati durante questo processo devono essere corretti con cura per la successiva versione stabile del software.
In generale, la correzione dei bug è responsabilità degli sviluppatori. Ma se necessario, i DevOps Engineers possono anche intervenire e collaborare per risolvere bug di natura critica. La correzione di bug di livello critico può quindi essere accelerata con attenzione in questo modo.
Inoltre, la documentazione della prevenzione o delle soluzioni temporanee (fino a quando non vengono risolte) dei bug può essere estremamente vantaggiosa per l'efficienza e l'affidabilità del software. Ciò ha un impatto diretto su funzionalità, usabilità e sicurezza.
Distribuzione di versioni stabili negli ambienti di produzione
Una volta che il software ha confermato l'affidabilità e l'efficienza sulla base di test approfonditi come discusso sopra, viene finalmente distribuito in produzione con l'aiuto di guide dettagliate che sono state documentate in precedenza dal DevOps Engineer. Il significato della documentazione viene compreso al meglio solo quando si distribuisce il software in produzione.
Mantenimento e monitoraggio delle implementazioni
Il software in esecuzione in produzione necessita di manutenzione e monitoraggio continui. Un ingegnere DevOps garantisce che il software sia aggiornato e anche le piattaforme su cui sono distribuiti. È soprattutto durante questa fase che è possibile registrare il comportamento a livello di produzione per migliorare la futura manutenzione. Ciò include bug a livello di produzione, la necessità di nuove funzionalità, nonché miglioramenti dell'interfaccia utente e della sicurezza.
Ripianificazione dei progetti in base ai comportamenti a livello di produzione
La pianificazione dell'implementazione del software è un processo continuo che inizia con un progetto preliminare e un concetto dell'implementazione dello strumento per raggiungere il suo obiettivo. Una volta rilasciata la prima versione stabile, questo progetto viene sottoposto a rigorose revisioni dopo ogni nuova versione stabile. Le revisioni nella procedura di distribuzione del software si basano sul feedback ottenuto da ciascuna delle fasi del ciclo di vita dello sviluppo dell'applicazione e del ciclo di vita dello sviluppo del sistema.
Quindi, questa è stata una panoramica sulla comprensione del significato del ruolo di DevOps Engineer. Le loro diverse responsabilità li distinguono chiaramente ed evidenziano la loro necessità di garantire il miglioramento continuo di un software fino a quando ea meno che non raggiunga la fine del ciclo di vita. Un grande grazie a tutti i DevOps Engineers là fuori!
Spero che tu abbia trovato utile questo articolo. Se hai altri pensieri da condividere come feedback o suggerimenti, fallo nella sezione commenti qui sotto.