Integrazione continua
Sono d'accordo con la definizione della tua università. L'integrazione continua è una strategia per il modo in cui uno sviluppatore può integrare continuamente il codice sulla linea principale, anziché frequentemente.
Potresti affermare che è semplicemente una strategia di ramificazione nel tuo sistema di controllo della versione.
Ha a che fare con la dimensione delle attività assegnate a uno sviluppatore; Se si stima che un'attività richieda 4-5 giorni-uomo, lo sviluppatore non avrà alcun incitamento a consegnare qualcosa per i prossimi 4-5 giorni, perché non ha ancora finito nulla.
Quindi le dimensioni contano:
small task = continuous integration
big task = frequent integration
La dimensione del compito ideale non è più grande di una giornata di lavoro. In questo modo uno sviluppatore avrà naturalmente almeno un'integrazione al giorno.
Consegna continua
Ci sono fondamentalmente tre scuole nella consegna continua:
La consegna continua è un'estensione naturale dell'integrazione continua
Questa scuola, guarda la serie di firme "Martin Fowler" di Addison-Wesley e fa l'ipotesi che dalla pubblicazione del 2007 si chiamasse "Integrazione continua" e quella che seguì nel 2011 fu chiamata "Consegna continua" , probabilmente sono volume 1 + 2 della stessa idea concettuale che ha a che fare con qualcosa di continuo .
La consegna continua ha a che fare con lo sviluppo di software Agile
Questa scuola decolla nell'idea che la consegna continua si basa sulla capacità di supportare i principi del movimento agile, non solo come un'idea concettuale o una lettera di intenti ma per davvero - nella vita reale.
Scostamento nel primo principio nel Manifesto Agile in cui il termine "consegna continua" viene effettivamente utilizzato per la prima volta:
La nostra massima priorità è soddisfare il cliente attraverso la consegna anticipata e continua di software prezioso.
Questa scuola sostiene che la "consegna continua" è un paradigma che abbraccia tutto il necessario per implementare una verifica automatizzata della tua "definizione di fatto" .
Questa scuola accetta che "Continuous Delivery" e la parola d'ordine o megatrend "DevOps" sono facce rovesciate della stessa medaglia, nel senso che entrambi cercano di abbracciare o incapsulare questo nuovo paradigma o approccio e non solo una tecnica.
La consegna continua è sinonimo di distribuzione continua
La terza scuola sostiene che la distribuzione continua e la consegna continua possono essere usate in modo intercambiabile per significare la stessa cosa.
Quando qualcosa è pronto nelle mani degli sviluppatori, viene immediatamente consegnato agli utenti finali, il che nella maggior parte dei casi significa che dovrebbe essere distribuito nell'ambiente di produzione. Quindi "Distribuisci" e "Distribuisci" significano lo stesso.
A quale scuola iscriversi
La tua università si è chiaramente unita alla prima scuola e afferma che ci stiamo riferendo al volume 1 + 2 della stessa serie di pubblicazioni. La mia opinione è che si tratta di un uso improprio del termine consegna continua.
Sostengo personalmente la comprensione che la consegna continua è legata all'implementazione di un supporto nella vita reale per le idee e i concetti dichiarati dal movimento agile. Così mi sono unito alla scuola che dice che il termine abbraccia un intero paradigma - come "DevOps".
La scuola che utilizza la consegna come sinonimo di distribuzione è per lo più sostenuta dai fornitori di strumenti che creano console di distribuzione, cercando di ottenere un po 'di clamore dall'uso più diffuso del termine consegna continua .
Distribuzione continua
L'attenzione alla distribuzione continua è principalmente rilevante nei domini in cui l'accesso dell'utente finale agli aggiornamenti del software si basa sull'aggiornamento di una fonte centralizzata per queste informazioni e in cui questa fonte centralizzata non è sempre facile da aggiornare perché è monolitica o ha (troppo) alta coerenza per natura (web, SOA, database ecc.).
Per molti domini che producono software in cui non esiste una fonte centralizzata di informazioni (dispositivi, prodotti di consumo, installazioni client ecc.) O in cui la fonte centralizzata di informazioni è facile da aggiornare (app store sistemi di gestione degli artefatti, repository Open Source ecc. ), non esiste quasi alcun clamore sul termine distribuzione continua. Si schierano e basta; non è una grande cosa - non è un dolore che richiede particolare attenzione.
Il fatto che la distribuzione continua non sia qualcosa di genericamente interessante per tutti è anche un argomento secondo cui la scuola che afferma che "consegna" e "distribuzione" sono sinonimi ha sbagliato tutto. Perché la consegna continua in realtà ha perfettamente senso per tutti, anche se si sta eseguendo software incorporato nei dispositivi o rilasciando plugin Open Source per un framework.
La definizione della tua università secondo cui la distribuzione continua è un passaggio naturale naturale della consegna continua presuppone implicitamente che ogni consegna che viene QA dovrebbe diventare immediatamente disponibile per gli utenti finali, è più vicina alla definizione che la mia tribù usa per descrivere il termine "continuo Rilascio ", che, a sua volta, è un altro concetto che non ha nemmeno un senso generico per tutti.
Un rilascio può essere una cosa molto strategica o politica e non c'è motivo di presumere che tutti vorrebbero farlo tutto il tempo (a meno che non si tratti di una libreria online un tipo di società di servizi di streaming). Tuttavia, le aziende che non rilasciano tutto alla cieca tutto il tempo possono avere un numero qualsiasi di motivi per cui vorrebbero comunque essere padrone della distribuzione, quindi anche la distribuzione continua . Non di rilascio alla produzione, ma di candidati alla liberazione simili alla produzione ambienti .
Ancora una volta credo che la tua università abbia sbagliato. Stanno scambiando "Implementazione continua" per "Rilascio continuo".
L'implementazione continua è semplicemente la disciplina di poter continuamente spostare il risultato di un processo di sviluppo in un ambiente simile alla produzione in cui i test funzionali possono essere eseguiti su vasta scala.
La trama della consegna continua
Nella foto tutto prende vita:
Il processo di integrazione continua sono le prime due azioni nel diagramma di transizione di stato. che, se ha esito positivo, dà il via alla pipeline di consegna continua che implementa la definizione di done . La distribuzione è solo una delle molte azioni che dovranno essere eseguite in modo continuo in questa pipeline. Idealmente, il processo è automatizzato dal punto in cui lo sviluppatore si impegna nel VCS al punto in cui la pipeline ha confermato che abbiamo un candidato al rilascio valido.