Server separati rispetto alla macchina locale per build, rilascio di problemi, ecc. su progetto solo [chiuso]

5

Per i progetti solisti, mantieni i tuoi strumenti di costruzione / gestione sul tuo computer locale o su un server separato? Se il server non è garantito per essere più sicuro o più affidabile della mia stessa macchina, faccio fatica a vedere il punto, ma forse mi mancano alcune cose.

Si noti che non sto discutendo il valore dell'integrazione continua o di un ambiente di staging, ecc., solo la domanda se esiste su hardware separato.

    
posta iftheshoefritz 14.12.2010 - 17:33
fonte

5 risposte

10

Dipende, direi.

Macchina locale Pro:

  • Funziona senza rete.
  • Più facile da mantenere.

Pro server separato:

  • Alcuni strumenti (integrazione continua) possono causare un carico fastidioso sulla macchina locale.
  • Puoi accedere ai tuoi strumenti da macchine diverse.
  • Hai una copia dei tuoi dati su un altro computer.
risposta data 14.12.2010 - 17:51
fonte
2

Sono principalmente un ragazzo C / C ++ che fa progetti di telecommute su Linux, Mac OS X e Windows.

Tutte le mie macchine di sviluppo a casa sono su una LAN Ethernet gigabit che include anche un server Linux che raddoppia per il controllo del codice sorgente (Perforce e git) e rilascia il rilevamento / wiki (Redmine).

Perché avere un server separato?

  1. Più copie ci sono, più è probabile che mi faccia male se c'è un guasto hardware.
  2. Il mio firewall Internet inoltra le porte chiave al server, così posso viaggiare e accedere a tutte le mie cose importanti senza compromettere la mia LAN. Ho tirato un set completo di fonti su un laptop da uno Starbucks.
  3. Posso mantenere sincronizzate tutte le origini delle mie macchine di sviluppo.

In realtà non ci vuole molta potenza per configurare un server Linux per farlo. Sto usando un iMac Intel di prima generazione con un dinky hard drive e una CPU anemica. Sarebbe inadeguato per la maggior parte delle cose e probabilmente raccoglierebbe polvere nel nostro spazio di scansione, ma per questo scopo funziona perfettamente con Ubuntu Maverick.

    
risposta data 15.12.2010 - 08:20
fonte
1

Per molti progetti, ha senso disporre di VM dedicate esclusivamente allo sviluppo o all'utilizzo come server di gestione temporanea, specialmente se sulla macchina è necessaria una complicata configurazione software. L'utilizzo di una macchina virtuale ti dà la possibilità di passare dall'inserimento del server di sviluppo / di staging su un computer comune o server, o metterlo sulla tua workstation (che può essere utile se, ad esempio, devi sviluppare da una macchina portatile o senza una connessione di rete.

    
risposta data 14.12.2010 - 19:04
fonte
0

La mia giornata lavorativa è come sviluppatore solista C # che lavora su un singolo sistema interno per una piccola azienda. Il sistema utilizza Mercurial per il controllo della versione, con un repository centrale sul file server aziendale. Ho usato un build server che è in realtà una macchina virtuale Windows XP in esecuzione su un server Hyper-V. Lo trovo con questa configurazione:

  • L'ambiente di sviluppo è separato dall'ambiente di sviluppo, quindi posso gestire le dipendenze più facilmente
  • La maggior parte dei PC client sono Win XP, quindi posso svilupparli su qualsiasi sistema operativo (solitamente Win 7) ma posso eseguire tutti i miei test automatici e manuali su XP, con una configurazione simile agli utenti
  • Sviluppo su un sistema operativo a 64 bit, ma costruito per 32 bit, e alcuni test di unità per calcoli complicati come il tasso di ritorno interno possono fallire a causa delle differenze di architettura. Non necessariamente un problema, ma avrebbe potuto essere.
  • Avevo una macchina virtuale in esecuzione sul computer di sviluppo, ma ciò significava che non potevo eseguire builds quando lavoravo da casa - ora posso solo utilizzare RDP nella macchina di compilazione
  • Avere un repository pulito rende più facile trovare problemi come dimenticare di aggiungere file a VCS. Ovviamente solo avere una catena di sviluppo separata sulla tua macchina di sviluppo potrebbe ottenere ciò, ma è bello avere tutto in un ambiente fisicamente separato.
  • Una compilazione completa con tutti i test richiede circa 4 minuti, quindi i test manuali possono richiedere anche un po 'di tempo. Con un server di compilazione separato posso continuare a lavorare mentre la build si occupa di se stessa.
risposta data 15.12.2010 - 02:07
fonte
0

Dipende, tutti i miei computer sono configurati con diversi strumenti per linguaggi, progetti, ecc. Ad esempio, su un computer ho Django e Apache, su un altro ho Python, Pygame e Tkinter, su un altro ho Eclipse e PHP, l'ennesimo ho una versione diversa di Eclipse insieme a Android SDK e alcuni emulatori. Sto valutando di crearne uno per RoR. Io uso qualsiasi cosa io sia vicino, o qualche volta farò il desktop remoto in qualunque computer abbia ciò di cui ho bisogno.

    
risposta data 15.12.2010 - 02:48
fonte

Leggi altre domande sui tag