Inserimento di una nuova versione di un'applicazione Web live in un flusso di lavoro basato su Git

2

Ho una domanda riguardante il flusso di lavoro nello sviluppo web. Sto costruendo il mio progetto in Symfony, ed è in Git.

In questo momento, ho tre ambienti, dev (locale), staging e prod. Il progetto stesso è ospitato su GitHub in un repository privato.

Mi chiedo quale sia un buon modo per aggiornare la staging & ambienti di produzione. Dovrei in qualche modo installare un sistema basato su push in modo da poter spingere il ramo prod / staging direttamente sul mio server, e usare ganci Git per rigenerare i file di cache ed eseguire migrazioni di database?

Proprio ora su progetti simili uso un sistema di pull manuale, dove I SSH al server, abbasso le modifiche dal ramo prod Git e eseguo manualmente cache / migrazioni. Questo ovviamente non è l'ideale.

    
posta Brandon Wamboldt 26.01.2013 - 14:58
fonte

3 risposte

1

Ora sto distribuendo il server su staging / produzione usando il comando:

git push stating master

git push production master

E finito, non devo andare ai server per estrarre il codice.

Questa potrebbe essere la cosa che desideri. Si prega di leggere su questo link link

    
risposta data 08.02.2013 - 08:10
fonte
1

Hai considerato un servizio come Beanstalk o Codebase ? Ospiteranno i tuoi repository git, ma hanno anche il supporto "nativo" per la distribuzione di applicazioni web, a differenza di Github. Probabilmente dovresti ancora scrivere ganci per gestire cose come le migrazioni di database, ma tali servizi automatizzano gran parte del processo di distribuzione.

    
risposta data 27.01.2013 - 10:25
fonte
1

Penso che la tua situazione attuale sia la più ideale, a condizione che non sia (a) il bilanciamento del carico, e (b) tu abbia automatizzato il ciclo di rigenerazione-riavvio-riavvio una volta eseguita l'operazione git. Troppa automazione in più e corri il rischio di implementazioni accidentali.

Esistono varie complessità legate alle distribuzioni nella vita reale, come le modifiche al database, la rigenerazione della cache, la minificazione, ecc., le configurazioni del server Web, ecc. Che dire quando è necessaria una nuova regola di riscrittura aggiunta? È automatizzato? È per noi, e non lo farei mai in modo diverso.

Se il bilanciamento del carico, quindi distribuire su un server "push", e rsync da lì.

    
risposta data 08.02.2013 - 08:25
fonte

Leggi altre domande sui tag