Oggi la maggior parte delle aziende sta adottando una qualche forma di DevOps e Filosofia di gestione della configurazione. Stanno automatizzando le loro condutture. Alcune aziende potrebbero concentrarsi sui processi di rilascio del software, mentre altre potrebbero essere più concentrate sulla gestione dei processi più ampi.
L'ingegneria del rilascio è spesso confuso con DevOps. C'è una buona ragione. I ruoli e le responsabilità spesso si sovrappongono. DevOps può essere considerato un superset di ingegneria a rilascio.
Ingegneria di rilascio
L'ingegneria del rilascio è una disciplina che si concentra sulla distribuzione del software. Cerca di creare software di migliore qualità a una velocità affidabile e prevedibile. Il suo mandato è migliorare la costruzione del software e il rilascio della pipeline. Ecco alcune cose che l'ingegneria del rilascio sottolinea:
- Implementa il controllo della versione - L'ingegneria di rilascio tenta di aggiungere tracciabilità e affidabilità al codice. Quindi il codice viene mantenuto nei repository di controllo della versione come Git, SVN, Perforce, ecc. I team di sviluppo utilizzano questi sistemi di controllo della versione per tenere meglio traccia dell'evoluzione del codice.
- Automatizza e rilascia condutture - L'ingegneria del rilascio si concentra sulla ricerca di strumenti di automazione per migliorare la velocità e l'affidabilità del processo di rilascio. Dal primo commit di codice al controllo della versione al prodotto finale che raggiunge il cliente, l'ingegneria di rilascio continua a migliorare il processo. L'integrazione continua e la consegna continua (CI/CD) svolgono un ruolo importante nei moderni sistemi di build/rilascio automatizzati.
- Gestione della configurazione - Man mano che il codice software si sposta attraverso vari cicli di sviluppo, test e gestione della produzione di sviluppo, la gestione della configurazione garantisce che gli attributi del prodotto siano coerenti in tutto il ciclo di vita del software.
- Produzione e distribuzione: ogni software che va al cliente in un ambiente di produzione deve essere strettamente legato alla sua origine. Quindi, se c'è un problema, le aziende possono ritrattarlo alla fonte.
Devops
DevOps ha un mandato più ampio. Si concentra sulla creazione di collaborazione interfunzionale tra i team.
In passato, i team di sviluppo e i team operativi hanno lavorato nei loro silos. Quando i team di sviluppo hanno implementato il loro codice in produzione, ci sarebbero state discussioni accese su chi si assumesse la responsabilità di eventuali problemi di produzione. Inoltre, il team di sviluppo vorrebbe distribuire le funzionalità più recenti e più belle, mentre il team operativo vorrebbe stare lontano dal correre rischi. Ha portato a un costante conflitto tra i due gruppi.
Lo scopo delle pratiche di DevOps era avvicinare lo sviluppo e le operazioni. Ecco alcune cose su cui si concentra DevOps:
- Impostazione e provisioning delle infrastrutture - Tradizionalmente, dipartimenti IT pianificati e forniti infrastrutture. La filosofia DevOps incoraggia un approccio più incentrato sullo sviluppatore. La pipeline viene creata per facilitare il processo di sviluppo per passare attraverso le varie fasi e cicli senza attrito. Gli sviluppatori hanno più responsabilità di come le loro applicazioni si comportano nella produzione.
- Gestione della configurazione - I team DevOps hanno una visione più ampia della gestione della configurazione. Mentre l'ingegneria a rilascio potrebbe utilizzarlo solo per i prodotti software, le pratiche DevOps trovano il modo di implementare la gestione della configurazione ad ogni aspetto di un'organizzazione. Lo scopo è aiutare l'intera organizzazione a gestire un'operazione più fluida attraverso l'automazione.
- CI/CD - L'integrazione continua e la consegna continua è una parte importante della filosofia DevOps. Una pratica DevOps matura utilizza CI/CD per automatizzare le attività IT tradizionali utilizzando l'infrastruttura come codice.
- Monitoraggio e miglioramenti organizzativi - Le pratiche DevOps enfatizzano la raccolta di dati sui processi per analizzare e migliorare. Quindi raccogliere dati, trasformarli in intelligenza attuabile e utilizzarli per migliorare i processi attuali è un'importante responsabilità di DevOps.
Insomma
A causa dell'intersezione dei problemi di miglioramento del processo del software, l'ingegneria a rilascio è spesso confusa con DevOps. Ma i DevOps hanno un ambito più grande. Mentre l'ingegneria a rilascio può vivere come dipartimento separato, DevOps richiede una maggiore integrazione con il flusso di lavoro complessivo dell'organizzazione. È più facile impostare una pratica di ingegneria del rilascio poiché i passaggi sono concreti. DevOps richiede una comprensione del comportamento organizzativo, della cultura del lavoro e delle infrastrutture. DevOps di successo non riguarda solo il prodotto, si tratta di tutta l'organizzazione.
Ulteriori studi
Verso le definizioni per l'ingegneria del rilascio e i devops