Differenza tra DevOps e Gestione configurazione software

15

Qual è la differenza tra le operazioni di sviluppo e la gestione della configurazione del software?

Per me sembra che sia uguale a quando sia DevOps che Gestione configurazione software sono focalizzati su:

  1. Creazione dell'infrastruttura di sviluppo - responsabile della versione controllo, gestione della build, gestione della distribuzione, gestione delle dipendenze, integrazione e consegna continue , ecc.
  2. Utilizzo delle best practice per l'organizzazione dell'ambiente degli sviluppatori .
  3. Garanzia di qualità dei processi di sviluppo - raccolta di parametri di efficacia dello sviluppo, lavorando per eliminare i colli di bottiglia del processo di sviluppo (test unitari in corso, valutazione della copertura dei test unitari, ispezioni in corso, ecc.)
  4. Gestione dell'infrastruttura : piattaforme di destinazione e specifiche.
  5. Gestione dei rilasci - assicurandoti che la versione sia stata consegnata al cliente / cliente in tempo utile.

Forse mi manca qualcosa? Questo link mostra che l'utilizzo del termine "Gestione configurazione software" prevale. Tuttavia, quale combinazione di parole preferiresti utilizzare per descrivere la gamma di attività elencate: Operazioni di sviluppo o Gestione configurazione software ?

    
posta altern 19.01.2012 - 12:23
fonte

5 risposte

17

I termini descrivono concetti e responsabilità molto simili e in generale sono in qualche modo sinonimi. Il termine "DevOps" è relativamente nuovo, reso popolare dalla conferenza di Devopsdays Ghent 2009 e successiva Eventi di Devowsdays . La descrizione migliore è questo diagramma :

D'altraparte,lagestionedellaconfigurazionedelsoftwareèunterminemoltopiùconsolidatoall'internodellaprofessioneederivadalterminespecificononsoftware Configurazione Gestione . La gestione della configurazione del software viene spesso indicata in un contesto di ingegneria del software, una definizione semplice è fornita da Roger Pressman in "Ingegneria del software: l'approccio di un professionista ":

is a set of activities designed to control change by identifying the work products that are likely to change, establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling the changes imposed, and auditing and reporting on the changes made.

Sebbene tutti i termini che si riferiscono siano vaghi, DevOps sembra essere solo un modo meno formale di descrivere più o meno lo stesso insieme di principi di Configuration Management o Software Configuration Management, se visti dal punto di vista dello sviluppatore di software, in particolare la priorità dei team strettamente accoppiati :

DevOps is a response to the growing awareness that there is a disconnect between what is traditionally considered development activity and what is traditionally considered operations activity. This disconnect often manifests itself as conflict and inefficiency.

Nello stesso articolo, le somiglianze con SCM sono annotate:

Adding to the Wall of Confusion is the all too common mismatch in development and operations tooling. Take a look at the popular tools that developers request and use on a daily basis. Then take a look at the popular tools that systems administrators request and use on a daily basis. With a few notable exceptions, like bug trackers and maybe SCM, it's doubtful you'll see much interest in using each others tools or significant integration between them. Even if there is some overlap in types of tools, often the implementations will be different in each group.

Per quanto riguarda l'uso dei termini, il tuo confronto non ha proprio senso:

  1. SCM è un sottoinsieme di CM, non un termine competitivo,
  2. DevOps è un termine abbastanza nuovo, non ha senso confrontarsi con i termini stabiliti,
  3. DevOps deriva da Developer Operations (ovviamente) ma raramente viene espanso in quanto tale.
risposta data 19.01.2012 - 12:56
fonte
6

Personalmente essendo un Sr. Software Configuration Manager per molti anni (10+) sento i termini non corrispondenti in una varietà di situazioni di vita reale. Non è insolito per il personale non tecnico a causa della natura relativa delle posizioni. Entrambi hanno ruoli, esigenze e requisiti specifici simili ma possono essere chiaramente divisi secondo me.

Credo che il modo migliore per descrivere la divisione di questi ruoli sia concentrarsi sulla loro relatività all'interazione. Ciò significa che la gestione della configurazione del software si concentra sui sistemi e gli ambienti interni, insieme all'integrazione, alla distribuzione, al rilascio e alla gestione del codice sorgente. Laddove, come Developer Operations (DevOps), si concentra maggiormente sull'aspetto operativo dell'architettura dell'applicazione esterna, mantenendo una chiara comprensione del codice come era inteso per l'uso e la pratica del suo ambiente. Se le prestazioni di una macchina stanno mostrando segni di degrado, la comunicazione tra più applicazioni è errata, comunicazione business to business (BtB) e / o limitazioni di architettura in relazione a un ambiente di produzione, quindi si guarderebbe alle Operazioni degli sviluppatori per la loro diagnosi e soluzione.

Tipicamente, secondo la mia esperienza, il Gestore configurazione software può fare anche queste cose, ma questo elimina il loro obiettivo principale di tracciamento, gestione e distribuzione di configurazioni di ambiente e revisioni software. Gestione del software che consente la separazione delle funzioni, il rilevamento di bug e difetti, il tracciamento del progetto e il ciclo di vita dello sviluppo del software e worflow. Queste attività non sono l'obiettivo principale delle Operazioni per gli sviluppatori e, pertanto, sono meno imperative, ma possono comunque essere eseguite.

Ho visto molti esempi della confusione di ciascuno, e in ognuno c'è un crossover limitato. Tuttavia, è molto importante pensare alle differenze tra le responsabilità di ciascuna delle posizioni indipendenti in relazione al loro obiettivo primario. Soprattutto quando si tratta di sistemi e hardware utilizzati internamente per gestire la configurazione degli ambienti e il rilascio del prodotto, si dovrebbe cercare un Gestore configurazione software. D'altra parte, quando si ha a che fare con le prestazioni del sistema, il monitoraggio, la ricerca e la diagnosi dei sistemi utilizzati dai clienti, si dovrebbe guardare alle operazioni sviluppatore o DevOps.

Ora, questo non è un rant, né una risposta definitiva, ma piuttosto un'identificazione personale delle differenze di ciascuna posizione. Mi piacerebbe sapere se sto bene fuori base, o se le cose sono chiarite da questa risposta.

    
risposta data 03.03.2015 - 18:33
fonte
4

Saresti spinto a trovare una definizione solida per DevOps. È più un'idea che un lavoro da fare. Ed è un'idea troppo nuova per tutti per concordare esattamente cosa significa. Tuttavia, ecco la mia versione.

DevOps è in realtà solo un nuovo termine per la gestione della configurazione, ma è stato scelto per dimostrare che il ruolo non è un ruolo di una sola persona, è una collaborazione tra il team di sviluppo e il team operativo.

Storicamente, la gestione della configurazione sarebbe stata effettuata esclusivamente dal team di sviluppo e poi passata alle operazioni che avrebbero visto tutto con profondo sospetto. Che è abbastanza giusto, ad essere onesti. Sono responsabili per questo. Sono i primi ad essere chiamati alle 4 del mattino quando va male. Dovrebbero davvero avere un certo coinvolgimento nel suo sviluppo.

    
risposta data 19.01.2012 - 12:41
fonte
1

Questo è il semplice chiarimento alla domanda: DevOps è un termine utilizzato per descrivere il coordinamento o la relazione tra lo sviluppo (lo sviluppo dei codici del programma nell'ambiente di sviluppo) e le operazioni (garantendo il massimo tempo di attività dell'ambiente di produzione).

La gestione della configurazione del software è un mezzo per raggiungere questo coordinamento. SCM ha coinvolto strumenti e tecniche per la gestione dell'automazione del processo di passaggio dallo sviluppo alla produzione (operazioni)

Per riassumere, SCM collega Dev e Ops.

    
risposta data 17.12.2018 - 02:45
fonte
-1

Vedo che i DEVOP sono alla fine dell'esecuzione operativa: script di automazione della distribuzione, buildout dell'ambiente, quel genere di cose. SCM d'altra parte riguarda l'integrità dei prodotti e l'efficace gestione e tracciabilità delle modifiche ai prodotti. Ho sempre considerato ALM come una parte di SCM - dopo tutto, come mai puoi gestire le modifiche a un prodotto se non hai idea dei driver per il cambiamento o di chi li ha creati? I quadri di distribuzione potrebbero cadere da una parte e dall'altra - e da che parte dipenderanno invariabilmente dalle esigenze normative dell'organizzazione per cui lavori - dopotutto - vuoi che uno sviluppatore sia in grado di fare un trucco rapido che significa che la tua macchina per dialisi funziona correttamente solo al 99,99% del tempo, o ti serve quella situazione per permetterti di hackerare il codice del tuo sito web perché gli sviluppatori hanno indirizzi IP hardcoded?

    
risposta data 23.06.2014 - 08:20
fonte

Leggi altre domande sui tag