Flusso di lavoro su server di sviluppo e produzione per un sito Web in costante aggiornamento

6

Abbiamo tre sviluppatori, un amministratore di sistema e un artista che lavorano principalmente su un singolo sito web (forum) nel nostro tempo libero per sviluppare costantemente funzionalità per il forum (ma ci sono altri progetti su cui lavoriamo). Poiché il nostro amministratore di sistema si è unito recentemente, abbiamo abbandonato l'hosting gestito per un singolo server e abbiamo deciso di noleggiare due server non gestiti (uno per i test e l'altro per la produzione).

Nel vecchio server, abbiamo semplicemente utilizzato Git come intermediario per spingere gli aggiornamenti dal team di sviluppatori non unificati nel server senza aggiornamenti in conflitto. Tirare altri aggiornamenti per sviluppatori. Spingi i nostri aggiornamenti. Ripristina se qualcosa si rompe.

Dato che ora abbiamo due server, abbiamo in programma di inviare aggiornamenti al server di sviluppo e in qualche modo inviarlo aggiornamenti al server di produzione.

Sviluppatore / i - > server di sviluppo (nudo) - > server di produzione

Vogliamo mantenere i repository nel server di sviluppo e l'albero di lavoro del sito Web sul server di produzione (server web). C'è un modo efficace per farlo senza spingere dal server di sviluppo alla produzione? C'è un flusso di lavoro migliore per due server in generale?

P.S. Il team di sviluppo è composto da adolescenti delle scuole superiori e alcuni studenti universitari che non si sono mai sviluppati in team per aziende a scopo di lucro.

    
posta Gio Borje 20.04.2011 - 07:04
fonte

1 risposta

3

Ciò che è probabilmente più facile da fare è:

  • Utilizzare Git sul server di sviluppo e disporre di una versione in esecuzione corrispondente al master corrente (una verifica dal repository). Tutti possono unire le modifiche in questa versione e se si rompe, il server di sviluppo si rompe ed è chiaro che è necessaria un'azione.
  • Il server di produzione è un checkout remoto dal server di sviluppo. Ogni volta che il server di sviluppo si trova in un punto stabile (o pronto a rilasciare una nuova versione), accedi al server di produzione e fai un git pull .

Questo è facile perché quando qualcosa va storto, puoi semplicemente ripristinare il server di produzione con un singolo comando git revert .

Inoltre, puoi automatizzarlo creando un hook sul server di produzione per estrarre automaticamente le modifiche in base a qualsiasi cosa tu definisca. Il modo in cui funziona nella tua situazione specifica dipenderà da come funziona il tuo processo di rilascio effettivo. Personalmente, vorrei semplicemente aggiornarlo manualmente (puoi anche creare un semplice script in modo da non dover accedere al server di produzione), dato che è solo un comando e generalmente vuoi essere presente ogni volta che aggiorni un server di produzione: )

Inoltre: ricordarsi di proteggere il server di produzione in modo che i file del repository non siano serviti dal server web. Questo è banale e l'amministratore di sistema può configurarlo.

    
risposta data 21.04.2011 - 11:00
fonte

Leggi altre domande sui tag