Domanda

Ho visto pezzi di questo problema risolto giro per la rete, ma io sono ancora confuso, così ho pensato di chiedere la gente intelligenti a Stack Overflow su questo.

Siamo una piccola startup e in questo momento il nostro flusso di lavoro da sviluppo -> Produzione coinvolge ftp-ing e solo caricando il codice dev.

Il codice dev è sotto il controllo di eversione - anche se non abbiamo sfruttato tronchi / Tag / rami dal momento che non ho una buona idea di come utilizzare al meglio questa struttura. Credo che ci dovrebbe essere una perfetta integrazione con il sito dal vivo che non richiede mi copia-incolla di file e cartelle.

Ecco alcuni dettagli: - sviluppo su CakePHP + MySQL - ospitato presso Media Temple (gs) - sviluppatori di utilizzare sia per Mac OS (Coda) e Windows (Dreamweaver)

Quindi il mio porsi è: Come si fa a impostare un corretto flusso di lavoro scalabile

È stato utile?

Soluzione

Il vostro flusso di lavoro sembra adeguato per una piccola organizzazione che non ha QA. Io vi consiglio di investire alcune risorse in

1) Costruire stampa di produzione e di avere uno schema versione in modo da poter monitorare le vostre release di produzione in modo accurato. Tag ogni rilascio in modo da poter tenere traccia di esso.

2) Costruire un programma di installazione. Non ricorrere a copiare manualmente le cartelle perché si potrebbe fare un errore. Un programma di installazione rende anche più facile rintracciare quando qualcosa va storto nella produzione.

3) Fare qualche QA sulla produzione prima della distribuzione. Anche un po 'di QA va un lungo cammino. Gli sviluppatori non sono buoni tester dal momento che potrebbero essere orientate verso le "caratteristiche" del programma.

4) Non perdete tempo con rami appena ancora fino a quando effettivamente necessario usarlo. Solo allora sarà chiaro che la struttura si ha bisogno. Il sovvertimento rosso-book ha alcune idee su come strutturare i tuoi rami.

Altri suggerimenti

Un modo che ho fatto in passato è avere il codice di produzione in realtà essere un client di Subversion dal vivo, tirando fuori il ramo 'di produzione'.

Quindi, fate il vostro lavoro come al solito sul ramo di sviluppo, e ogni volta che si è pronti, si taglia una copia al ramo di produzione. Sincronizzare i server di produzione, e siete in tensione. Se qualcosa va storto, si può sempre risincronizzazione per la versione precedente.

Per punti in più, è possibile aggiungere un ramo messa in scena, in modo da poter prendere tutte le cose che hanno cambiato che non sono nel codice. Poi li si aggiunge ad uno script di distribuzione che regolare i sistemi di produzione in base alle esigenze.

Credo che la cosa fondamentale da considerare è quello di includere il maggior numero di processo e del flusso di lavoro in grado di migliorare la qualità del codice e ridurre il vostro sforzo per distribuire. La cosa fondamentale è quello di iniziare a creare alcune di queste cose quando il codice di base è placato. Nei primi giorni in cui tutto sta cambiando rapidamente vi permetterà di trascorrere più tempo di aggiornare gli script di quanto si risparmia con gli script.

mi sento di raccomandare le seguenti cose:

  1. Crea uno script di compilazione automatica. Ci sono diverse tecnologie e linguaggi di scripting che possono essere utilizzati (io preferisco Ant) per estrarre i file dal controllo di origine, incrementare automaticamente i numeri di versione, aggiungere tag e creare i pacchetti distribuire. Questa operazione potrebbe richiedere una grande quantità di sforzo per l'installazione e svelare i compiti che gli sviluppatori stanno facendo attualmente, ma questo pagherà enormemente nel lungo periodo. Si dovrebbe liberare gli sviluppatori dal compito ripetitivo di costruzione e permettere loro di concentrarsi sulla soluzione dei vostri problemi tecnici. Come sapete, gli sviluppatori si annoiano facendo la stessa cosa più e più volte, e quando ci si annoia di iniziare a fare errori.

  2. Automated install . Questo è un vantaggio marginale, mentre le cose sono ancora in una fase di rapido sviluppo, ma nel lungo termine, consente di liberare risorse che potrebbero essere meglio spesi altrove. Per lo meno, si dovrebbe avere un pacchetto di installazione e procedura di installazione per la distribuzione del codice.

  3. Messa in scena Ambiente . Si potrebbe obiettare che questo non è richiesto fino a quando la base di utenti è sufficiente che iniziano sqawking grande quando il sistema di produzione va via quando si distribuisce il codice. E 'importante avere un sistema che permette di testare le modifiche senza sconfortante la base di utenti. Ma, naturalmente, questo richiede anche un certo sforzo QA. È sicuramente bisogno di qualche prova prima della distribuzione. Gli sviluppatori assumono sempre hanno ragione e non hanno mai perso qualcosa ma non devono mai essere creduto. C'è sempre un percorso di codice diverso o qualche nuova permutazione di clic che non hanno mai pensato.

  4. Backup tuo SVN . Questo dovrebbe andare da sé, ma ho lavorato per una società in cui il nostro repository dei sorgenti non è stato eseguito il backup per oltre due anni. È backup può fare uno svndump e poi copiare il file risultante in un'altra posizione. È anche possibile il backup delle cartelle in cui è presente il repository e quindi ripristinare in caso di problemi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top