Ho sentito questi termini insieme e mi chiedo quale sia la differenza? In che modo sono correlati a build continue e implementazioni continue?Qual è la differenza tra integrazione continua, consegna continua e DevOps?
risposta
Continuous integration/continuous builds significa ottenere che gli sviluppatori eseguano il commit del codice su un repository di codice sorgente poco e spesso (e ottengono l'ultima versione dal repository, quindi eventuali ulteriori modifiche si basano su modifiche recenti di altri sviluppatori). Ciò riduce il tempo sprecato per la risoluzione di fusione, in quanto è più facile unire in questo caso.
Il processo è automatizzato al meglio utilizzando un server di build, che può anche eseguire qualsiasi Test unità. Il feedback viene quindi fornito agli sviluppatori in caso di errore di build/test, in modo che eventuali problemi possano essere risolti rapidamente.
L'implementazione continua comporta la distribuzione automatizzata degli artefatti di build dal processo di generazione agli ambienti di test e di produzione. Per mitigare i rischi associati a questo, le persone spesso usano feature toggles per separare il rilascio (in modo controllato) dalla distribuzione.
La consegna continua dipende meno dalla tecnologia e dall'approccio organizzativo all'erogazione del software (anche se fa un uso pesante dell'automazione).
DevOps è un'area molto più ampia che generalmente sottolinea l'abbattimento delle barriere tra gli sviluppatori e i team operativi e consente loro di collaborare in un modo in cui beneficiano di competenze combinate. Maggiore automazione del provisioning ambientale, creazione di implementazione, monitoraggio (e reazione automatica a problemi e scalabilità) e in alcuni casi le reti definite dal software ne verranno fuori in un'azienda. In alcune organizzazioni, sono stati creati team DevOps dedicati.
C'è probabilmente qualche ambiguità nel modo in cui le frasi xxx continue vengono usate da persone diverse, ma penso che questo post del blog lo riassuma piuttosto bene.
DevOps è più di un'idea generale di una specifica pratica, un po 'come Agile è l'idea, e test di unità è una pratica.
Continuous Delivery (CD) è un concetto che è stato descritto per la prima volta nel libro del 2010 co-autore di Jez Humble e David Farley, entrambi di ThoughtWorks.
Continuous Integration e erogazione continua, spesso si confondono tra loro, ma ci sono alcune differenze fondamentali:
- CI può essere fatto da un dev dove CD richiede la collaborazione in team
- CD non può essere fatto senza CI
- CD è un viaggio lineare, in cui C'è un continuo feedback (build) loop di CD in movimento in avanti
- Con CD siete sempre pronti a spingere per spingere
- CI permette di controllare il codice in pronti contro termine più volte in modo da poter rilevare i problemi nella fase iniziale
Ecco una citazione da Martin Fowler:
"Continuous Integration è una pratica di sviluppo software in cui membri di una squadra integrare il loro lavoro frequentemente, di solito ogni persona si integra almeno giornalmente, portando a più integrazioni al giorno. Ogni integrazione viene verificata da una build automatizzata (incluso test) su e rileva gli errori di integrazione il più rapidamente possibile. Molte squadre trovano che questo approccio porta a ridurre in modo significativo i problemi di integrazione e permette un team per sviluppare software coesa più rapidamente."
La differenza principale tra erogazione continua e distribuzione continua, è l'automazione. Automatizzare il lato distribuzione di cose, funziona bene se si sta spingendo alla produzione più volte al giorno o per una serie di altri motivi:
Come per DevOps, questa è tutta un'altra palla di cera.Le persone spesso pensano che DevOps sia un ruolo o uno strumento , ma è davvero una cultura. Non devi "fare" DevOps. Ecco una citazione di Mike Kavis che mi piace un po ':
"DevOps è un cambiamento di cultura o di un movimento che incoraggia grande comunicazione e la collaborazione (aka il lavoro di squadra) per favorire la creazione di software di migliore qualità in modo più rapido con maggiore affidabilità".
FWIW, questo sembra una buona domanda per la proposta SE DevOps su Area51, nel caso in cui saresti interessato ad aderire a: http://area51.stackexchange.com/proposals/85819/devops?referrer=Ourlo91--YgyR6VmaIeuwQ2 –
Vedi https: //stackoverflow.com/a/40502250/3612353 –