Qual è la differenza tra la distribuzione del software e la versione del software?

7

Sto arrivando di più dall'angolo di sviluppo del web. Costruiamo un modulo, lo testiamo e quindi lo implementiamo. Alcune persone chiamano questo ultimo passo (deploy) come 'release'. Qual è la differenza? o sono le stesse cose?

    
posta Praym 15.03.2017 - 14:49
fonte

4 risposte

9

Non credo che i termini siano rilasciati "e" il dispiegamento è esattamente lo stesso, cosa che non sono sicuro che dovrebbero essere usati in modo intercambiabile in questo modo.

Da una prospettiva di sviluppo web:

La distribuzione si riferisce ad ottenere il tuo programma in uno stato di esecuzione su un server. Non ha bisogno di essere il server production . È possibile distribuire un'applicazione / modulo su un server di test in esecuzione sulla propria stazione di lavoro o su una macchina di prova. Potresti eseguire molte distribuzioni durante le fasi di sviluppo e testing di un modulo o un'applicazione.

Una versione (sto usando "release" come nome) dell'applicazione / modulo è solitamente una versione specifica di codice / risorse a cui è stato assegnato un nome / numero. Questo di solito viene fatto in modo che un utente abbia problemi con l'applicazione / modulo, conoscendo il numero di versione del software che l'utente può aiutare a determinare dove / quando il bug può essere stato introdotto e può anche aiutare a tracciare il processo di correzione. È possibile creare una versione quando vengono aggiunte nuove funzionalità o una serie di bug.

Nell'esempio che fornisci, dove l'ultimo passaggio del processo può essere chiamato "rilascio" o "distribuzione", probabilmente c'è del lavoro che comporta la creazione di un rilascio (assegnando un numero, ecc.) e quindi immediatamente distribuendo quella versione su un server di produzione.

Sembra un po 'di confusione per me. Cerco di mantenere questi termini separati e provo a dire cose come

I am deploying the newest production-ready release (1.3.5) to server.somehost.com". Then I will deploy the latest testing-release (1.4.1-beta) to test3.somehost.com

    
risposta data 15.03.2017 - 15:21
fonte
3

Lo schieramento è un termine molto lento. Normalmente si riferisce all'installazione del codice in cui può essere utilizzato. È possibile distribuire il codice rilasciato o il codice che non è pronto per il rilascio. Nello sviluppo web, è comune distribuire il codice in un ambiente di test prima di testarlo. Ho creato catene di build che hanno generato il codice e lo hanno distribuito automaticamente su un server di sviluppo per il testing degli sviluppatori. Molti strumenti per la catena di creazione includono la capacità di distribuire build di successo.

Un ciclo di rilascio comune è (l'etichettatura e l'implementazione in produzione non vengono sempre eseguite):

  • costruisci, distribuisci e collaudi il codice fino a quando non è potenzialmente pronto per il rilascio;
  • etichetta tale codice come candidato alla release;
  • distribuire il candidato del rilascio per i test pre-rilascio;
  • generare candidati per il rilascio fino a quando un candidato al rilascio è abbastanza stabile per il rilascio;
  • etichetta il candidato a rilascio stabile come versione di rilascio; e
  • distribuire la versione di rilascio in produzione.

Alcuni costruiscono un'etichetta di catene o segnano in ogni caso ogni build. I candidati al rilascio sono identificati dall'etichetta di compilazione. Rilasciare candidati e versioni di rilascio possono essere taggati con un'etichetta aggiuntiva.

    
risposta data 16.03.2017 - 03:49
fonte
2

La creazione di una versione consiste nella compilazione di un programma (di solito un'applicazione o una libreria) e l'incremento del numero di versione di ciò che è stato appena compilato nel sistema di controllo del codice sorgente. Potrebbero esserci ulteriori passaggi per il processo di rilascio, come l'invio di e-mail a coloro che potrebbero essere interessati.

Dopo aver creato un rilascio è possibile distribuirlo. Si distribuiscono applicazioni desktop agli utenti, librerie a un repository pubblico e applicazioni Web ai server.

Se si distribuiscono "istantanee" senza fare un rilascio o non si utilizza il controllo delle versioni, non lo chiamerei tale rilascio.

    
risposta data 15.03.2017 - 15:01
fonte
1

Prendi una tipica app.

Sviluppo una nuova versione e rilascio : è disponibile per l'installazione (App Store / Play Store, Steam, il mio sito, ecc.)

I miei clienti se ne accorgono, leggono le note di rilascio, pianificano un aggiornamento, o semplicemente premono "Aggiorna alla versione più recente", e questo distribuisce l'applicazione sui loro dispositivi.

Supponiamo che l'app aggiornata abbia un bug che riguarda alcuni utenti. Questi utenti scoprono il problema e tornano a una versione precedente. Cioè, distribuiscono un rilascio diverso da quello che ho appena fatto.

In altre parole:

  • release = rendere disponibile.
  • deploy = in realtà lo fanno girare sui dispositivi di destinazione.
risposta data 15.03.2017 - 19:04
fonte

Leggi altre domande sui tag