GNU/Linux >> Linux Esercitazione >  >> Linux

Il ciclo di vita del rilascio del software in DevOps:perché reinventare il modello?

Nel mio precedente e nel primo articolo di questa serie, ho presentato una nuova forma e modello di DevOps e ne ho descritto i componenti essenziali e il flusso di lavoro.

In questo articolo esplorerò il significato del ciclo di rilascio di un'applicazione e il ruolo importante che svolge nel nostro modello DevOps.

Ma prima di iniziare, è necessario ricordare brevemente alcune sezioni essenziali del mio articolo precedente, in particolare SDLC, e anche rivedere un fatto che molti di noi nel mondo dell'informatica potrebbero aver inavvertitamente seguito per decenni.

Non descriverò di nuovo in dettaglio i passaggi, poiché l'articolo precedente è già stato collegato qui. Ma tra poco darò un'occhiata al diagramma SDLC.

Importanza del ciclo di vita del rilascio del software in DevOps

Il Software Release Life Cycle, o in breve SRLC, è una procedura obbligatoria svolta durante lo sviluppo di qualsiasi applicazione. È una necessità cruciale perché il software di qualità garantisce DevOps di qualità. Ciò può essere garantito in modo efficace solo quando le sue varie fasi sono progredite in modo efficiente.

Il ciclo di vita del rilascio del software

Un ciclo di vita del rilascio del software o SRLC è la sequenza di varie fasi attraverso le quali lo sviluppo di un software evolve da una fase pre-alfa a una fase di produzione. È un processo continuo perché qualsiasi software avrà sempre la sua versione aggiornata fino a quando ea meno che non raggiunga la fine del ciclo di vita (EOL).

I nomi e le pratiche possono variare da sviluppatore a sviluppatore. Ma in generale, ci sono cinque fasi essenziali coinvolte:

  1. Pre-alfa :la prima fase delle versioni del software che include solo la funzionalità principale ed è più probabile che abbia il numero massimo di bug. Viene testato solo da sviluppatori e tester.
  2. Alfa :La seconda fase delle versioni del software è considerata completa di funzionalità ed è probabile che contenga ancora bug, ma molto meno della pre-alpha. È testato da sviluppatori e tester. Ma a seconda delle diverse NDA, può essere reso disponibile al pubblico anche in modo selettivo o mondiale.
  3. Beta :La terza fase si concentra principalmente sulla correzione di bug e problemi riscontrati nelle due fasi precedenti. Come nella versione pre-alpha, anche la disponibilità del software beta si basa su accordi di non divulgazione.
  4. Rilascio candidato :Una versione release candidate del software è una versione pre-release che ha il potenziale per essere un prodotto finale stabile. In pratica, una versione release candidate non riceve più alcun nuovo codice sorgente nel programma. Le modifiche al codice sorgente vengono apportate solo quando si verificano ancora errori durante il test a livello di produzione.
  5. Rilascio della produzione :Come è molto evidente, una versione di produzione è il prodotto finale che viene reso disponibile al pubblico come prodotto stabile.

Nota :Il concetto di NDA non ha molto valore nel campo del software open source a causa di un modello trasparente.

Basandosi sul nostro nuovo modello, SRLC funziona in realtà in due fasi:

1. Fase di rilascio dello sviluppo in ADLC

L'applicazione diventa la sua prima versione in questa fase e procede attraverso la maggior parte delle fasi di rilascio (menzionate sopra) man mano che diventa più matura e fattibile. I bug vengono gradualmente ridotti e l'efficienza aumenta con il passare del tempo.

2. Fase di rilascio stabile in SDLC

Questa è la fase di produzione di SRLC in cui una versione di sviluppo diventa la prima versione stabile disponibile pronta per l'uso da parte di clienti e utenti.

Perché è un "ciclo di vita"?

Da decenni, nella materia accademica di Ingegneria del software , il curriculum di Informatica in diverse università ha menzionato il modello del processo di rilascio del software come un ciclo. Ma il diagramma che viene rappresentato è abbastanza contraddittorio. Tipicamente, è descritto nel modo seguente:

Sulla base di una semplice osservazione, è molto evidente che il diagramma sopra non mostra alcuna proprietà "simile a un ciclo". Sulla base di questo modello convenzionale, è chiamato ciclo anche se il diagramma non mostra tale caratteristica... non può essere chiamato ciclo... è un diagramma di flusso.

Per farlo sembrare un ciclo, la fase di produzione dovrebbe tornare alla fase pre-alfa e ciò non avrebbe alcun senso logico, a meno che l'intero scenario non venga rivisto criticamente, ancora una volta:

È possibile notare chiaramente che la versione stabile è il punto in cui il software ha raggiunto il suo pieno potenziale ed è in grado di essere distribuito in produzione. Anche se non viene mostrato nel diagramma, perché viene quindi definito "ciclo di vita"?

Ecco il motivo

Quando la versione di produzione è stata adottata da utenti/clienti, gli sviluppatori del software stanno ancora apportando miglioramenti aggiungendo più funzionalità, modificando quelle esistenti, correggendo bug e problemi di sicurezza durante la produzione e qualsiasi altra modifica che sarebbe necessaria nel tempo . Pertanto, c'è sempre una versione di sviluppo costantemente al lavoro dietro le quinte.

Per quanto un software possa essere testato in modo critico, ci sono alcuni difetti che si rivelerebbero solo in uno scenario reale e questi difetti vengono risolti nella versione aggiornata di qualsiasi versione di produzione.

Pensiamoci un attimo. Una release di produzione può davvero essere definita un prodotto finale se il software è in continuo sviluppo sotto forma di versioni aggiornate?

Come rivedere il diagramma e i suoi scenari come un ciclo reale?

Per poter percepire questo processo come un ciclo, dobbiamo rivisitare il nostro nuovo modello SDLC descritto in precedenza:

Se vuoi guardarlo solo con una prospettiva di rilascio del software, il modello SDLC può essere trasformato in SRLC:

Un'applicazione software riguarda solo il suo sviluppo, mentre un sistema software riguarda lo sviluppo sia dell'applicazione che dei processi sistemici in base ai quali viene implementata e mantenuta. Se semplifichiamo ulteriormente, possiamo rivisitarlo come segue:

Ingrandiamo la versione/i di sviluppo zona per guardare cosa sta effettivamente succedendo e ricavare il nostro "ciclo di vita":

Qui puoi osservare che le prime quattro fasi essenziali sono ora rappresentate come parte di un ciclo vero e proprio. Ciascuna di queste fasi subisce anche lo sviluppo dell'applicazione basato su ADLC (etichettato nel diagramma come ADLC) mentre passano alla fase successiva. Una volta che lo sviluppo del software esce dalla fase di rilascio candidato, viene sottoposto a sviluppo del sistema basato su SDLC (etichettato nel diagramma come SDLC) per diventare finalmente una versione stabile che sarebbe attiva attraverso implementazioni di produzione come gli ambienti degli utenti finali e dei clienti.

Perché ora una versione stabile deve tornare a uno stato pre-alfa? Giusto per rappresentarsi come un ciclo di vita? Assolutamente no.

Una versione stabile deve essere nuovamente sottoposta a screening di livello pre-alfa per mantenere costantemente la massima qualità possibile.

Poiché il prodotto è già stato rilasciato come versione stabile, il debug e il test nelle fasi pre-alfa, alfa e beta non richiedono molto tempo. Quindi, devi tenere a mente che dopo che un nuovo prodotto viene rilasciato al pubblico, si avvicina rapidamente al livello di screening del candidato al rilascio dopo che è stato effettivamente distribuito e verificato da ogni tipo di utente.

I bug a livello di produzione in tempo reale sono inevitabili e, comunque sia la natura, è necessario rivalutarli con un approccio pre-alpha. Solo così è possibile garantire costantemente un software di qualità con velocità ed efficienza ottimali.

Pertanto, questo modello rivisto può ora essere finalmente definito un ciclo reale e non il diagramma di flusso convenzionale che molti di noi nella comunità di sviluppo potrebbero aver seguito inavvertitamente per decenni! È un processo continuo ed è per questo che si chiama "Ciclo di vita" della versione software.

Se ci sono suggerimenti, feedback o commenti su questo argomento, faccelo sapere nella sezione seguente. Ci piacerebbe vederti coinvolto in approcci così interessanti. Resta sintonizzato per il prossimo articolo di questa serie :)


Linux
  1. Perché i programmatori adorano il packaging di Linux

  2. L'evoluzione dei gestori di pacchetti

  3. Perché il meccanismo di creazione del processo predefinito è fork?

  4. Linux:perché il kernel non può eseguire Init?

  5. Perché non riesco a esportare il display Linux?

7 migliori distribuzioni Linux a rilascio progressivo per le persone che desiderano il kernel e il software più recenti e migliori

Perché non installare pacchetti software da Internet

DevOps vs Software Engineer:qual è la differenza?

Principali responsabilità di un DevOps Engineer

Come aggiornare Linux Mint all'ultima versione

Perché non riesco a scorrere nel terminale?