Qual è la migliore soluzione per il mantenimento di backup e di controllo di revisione sul live siti web?

StackOverflow https://stackoverflow.com/questions/27292

  •  09-06-2019
  •  | 
  •  

Domanda

Qual è la migliore soluzione per il mantenimento di backup e di controllo di revisione sul live siti web?

Come parte del mio lavoro io lavoro con molti siti web.Abbiamo bisogno di un mezzo efficace per mantenere i backup delle cartelle live nel corso del tempo.Inoltre, l'aggiornamento di tali siti possono essere un dolore, soprattutto se un cambiamento di pausa in un ambiente live, per qualsiasi motivo.

Che cosa sarebbe l'ideale sarebbe priva di controllo del codice sorgente.Ho implementato SVN per un po', che era grande come una semi-soluzione per il backup, nonché di controllo di revisione (facile reversione della temporanea o di modifiche di rilievo, ecc).

Purtroppo SVN luoghi .SVN cartelle nascoste ovunque che potrebbe causare problemi, soprattutto quando gli altri sviluppatori cartella modifiche di struttura o di copia/sposta sito web directory.Ho sentito l'argomento che questa è una questione di educazione, etc.ma l'approccio adottato da SVN, semplicemente, non è una soluzione pratica per noi.

Sto pensando che forse un backup incrementale soluzione potrebbe essere migliore.

Altre possibilità includono:

  1. SVK, che è solo a riga di comando che diventa un problema.Inoltre, io sono incerti su come appropriato questo potrebbe essere.
  2. Mercurial, forse con alcuni trigger per nascondere il distributed component che non è necessario in questo caso e sarebbe inutilmente complicato per gli altri sviluppatori.

    Ho provato brevemente con Mercurial, ma non riusciva a trovare un bel modo per avere il repository separati e mantenuti costantemente in sincronia con il live cartella copia di lavoro.Forse come una fonte di soluzione di controllo (creazione di repository e di vivere cartella nello stesso posto) combinato con un'altra soluzione di backup questo potrebbe essere il modo per andare.

    Uno svantaggio di Mercurial è che non posto le cartelle vuote nel controllo del codice sorgente che è problematico per i siti web che hanno spesso le cartelle vuote come "segnaposto" percorsi per l'upload di file, etc.

  3. Rsync, che in realtà non ho ancora studiato.

Avevo apprezzato molto i tuoi consigli sul modo migliore per mantenere copie di backup dei live siti web, idealmente con un semplice mezzo per il recupero di versioni passate in fretta.

Risposta risposte:

  • @Kibbee:

    • Non è tanto sull'istruzione come non ha dimestichezza con il nulla, ma VSS e della mancanza di tempo/sforzo per imparare qualcos'altro.

    • Xcopy/7-zip approccio sembra ragionevole, credo, ma sarebbe facilmente prendere un sacco di spazio a destra?

    • Quanto a controllo del codice sorgente, penso che mi piacerebbe, come il controllo del codice sorgente per dire che "questo è lo stato della cartella ora farò I conti con quello e se non riesco a partita roba che è colpa vostra, mi limiterò a iniziare nuove storie" piuttosto che venire meno rigido.

  • @Steve M:

    • Sì è un modo migliore di farlo, ma richiederebbe un significativo cambiamento culturale.Detto questo mi piace molto questo approccio.
  • @mk:

    • Bello, non pensavo di utilizzare Rsync per distribuire.Questo non solo di caricare le differenze?Sovrascrivere l'intero live directory ogni volta che si apporta una modifica potrebbe essere problematico a causa del sito i tempi di inattività.

Io sono ancora curioso di vedere se ci sono opzioni più tradizionali

È stato utile?

Soluzione

È comunque possibile utilizzare SVN, ma invece di fare un checkout sul tuo ambiente live, fare un'esportazione, in questo modo non .svn directory verrà creato.Il rovescio della medaglia, naturalmente, è che senza modifiche del codice sul tuo live ambiente può avvenire.Questa è una buona cosa.

Come regola generale, il codice di cambiamenti nei sistemi di produzione, non dovrebbe mai essere consentito.La modifica deve essere fatta e testata in sviluppo/test/UAT ambiente, poi una volta confermato OK, puoi tag di codice in SVN con qualcosa come la VERSIONE-x-x-x.Quindi, sul sistema live, esportare il codice con il tag.

Altri suggerimenti

Usiamo l'opzione 3.Rsync.Ho scritto uno script bash per fare questo, insieme con alcuni extra controllo, ma qui ci sono le basi di quello che fa.

  1. Fare un tag per la spinta a vivere.
  2. Eseguire svn export su quel tag.
  3. rsync per vivere.

Finora è stato il lavoro fuori.Non abbiamo preoccuparsi utente conflitti o un utente separato per l'esecuzione di svn up sulla macchina di produzione.

Qualsiasi fonte di soluzione di controllo si sceglie è andando avere problemi se le persone sono in movimento, la cancellazione o l'aggiunta di file e non per raccontare l'origine del sistema di controllo su di esso.Io non sono a conoscenza di qualsiasi fonte di controllo, elemento che potrebbe risolvere questo problema.

Nel caso In cui non si può non educare le persone che lavorano sul progetto[1], allora si può solo andare con gli snapshot giornalieri.Qualcosa di semplice come un file batch utilizzando xcopy per un'unità di rete, e, eventualmente, 7-zip sulla riga di comando per comprimere in modo da non occupare troppo spazio sarebbe probabilmente la soluzione più semplice.

[1] ho non credere a questa, probabilmente è solo più un caso di persone di essere troppo testardo e non si è disposti a imparare, o fare il "lavoro extra".Non importa quanto tempo controllo del codice sorgente potrebbe salvare loro quando si tratta di tornare alle versioni precedenti, o di 2 persone hanno modificato il file stesso.

rsync si carica solo le differenze.Non ho usato personalmente, ma Mark Pellegrino scritto molto tempo fa su come è anche maniglie binario diff brillantemente.

svn+rsync suona come una fantastica soluzione.Dovrò provare in futuro.

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