Condivisione di virtual box / environment?

-3

Mi chiedo come facciano i grandi team di sviluppo a farlo, quando lavorano tutti su un progetto.

Le opzioni sono:

  • 1 macchina virtuale nel cloud che inseriscono e invia aggiornamenti tramite ftp?
  • ogni sviluppatore ha la propria macchina virtuale locale e gli aggiornamenti sono controllati da git, quando uniti da un ramo principale su cloud?
  • altre idee?

Fondamentalmente volevo sapere qual è la struttura e il flusso di lavoro.

Flusso di lavoro per lo sviluppo di un'app Web, ad esempio. Supponiamo che non sia necessario testare.

Volevo sapere quali sono i passaggi di base: 1 macchina virtuale in cui tutti si collegano e commettono modifiche, o le macchine virtuali sono su ogni unità locale dello sviluppatore?

E in che modo commettono le modifiche in base a quanto sopra?

Non sto chiedendo una soluzione a un problema, ma solo la conoscenza generale di come le cose vengono fatte correttamente negli ambienti web-dev. E come evitare l'unione di trap, ad esempio, ecc.

    
posta lovemyjob 06.02.2018 - 12:00
fonte

1 risposta

2

Non c'è affatto bisogno di un ambiente "cloud". Ogni sviluppatore dovrebbe avere il proprio ambiente di sviluppo. Questo può essere locale o su un server, e questo può o non può essere una macchina virtuale. Il punto importante è che gli sviluppatori possono lavorare da soli, senza sovrascrivere accidentalmente il lavoro di un altro membro del team.

Il controllo della versione è importante per la collaborazione perché consente di unire le modifiche di più membri del team senza sovrascrivere accidentalmente qualcosa. Con Git, un flusso di lavoro basato sulla richiesta di pull offre agli altri membri del team l'opportunità di rivedere le modifiche proposte prima che vengano unite nel ramo principale. I test automatici come parte di questa revisione sono considerati una best practice. Questi test automatici verrebbero generalmente eseguiti su alcuni build server, che potrebbero essere una VM su un server condiviso. Il build server viene eseguito automaticamente, quindi gli sviluppatori non devono eseguire il login tranne per il debug o l'amministrazione.

Il ramo principale può quindi essere distribuito in un ambiente di produzione. Ciò può accadere in modo semi-automatico se si sta tentando di eseguire la Distribuzione continua. Poiché tutte le modifiche sono già state testate e riviste come richiesta di pull, è sempre possibile distribuire il ramo principale. Se dovesse esserci un problema, puoi sempre ripristinare il ramo principale in uno stato precedente noto come buono e ridistribuirlo.

Soprattutto per Git, ci sono molti flussi di lavoro che discutono di come questi concetti generali possano essere strutturati con precisione. Differiscono in alcuni obiettivi, ad es. il popolare Git Flow assume rilasci poco frequenti e ben definiti. Soprattutto per webdev, un flusso di lavoro incentrato sulla distribuzione continua può essere più appropriato.

Anche questi flussi di lavoro variano in modo diverso. Finché c'è una sola squadra, non dovrebbe esserci un problema, ma più team che collaborano su un singolo codice base sono sempre più difficili. È quindi necessario avere un project manager o product manager che coordini il lavoro tra i team. Né il controllo della versione né le macchine virtuali possono risolvere problemi di comunicazione. Hai bisogno di persone per questo.

    
risposta data 06.02.2018 - 12:48
fonte

Leggi altre domande sui tag