Domanda

Sto pensando di proporre alla mia (piccolissima) compagnia di acquistare un computer su cui eseguire una continua integrazione. Se dicono di sì, il compito di acquistare effettivamente la macchina probabilmente ricadrà su di me, quindi la mia domanda è:

Cosa cerco in un computer che verrà utilizzato per l'integrazione continua per un team php molto piccolo (3 persone)

Cosa " cose " (memoria, processore, ecc.) sono importanti e cosa no?

È stato utile?

Soluzione

Non avrai davvero bisogno di una macchina così potente. Se stai eseguendo test o altre metriche, la capacità di elaborazione è probabilmente la tua preoccupazione principale, ma in realtà potresti eseguirla su un vecchio pentium 1 e probabilmente funzionerebbe.

I tuoi vincoli saranno il tuo ambiente operativo. Se stai usando LAMP, vuoi usare una macchina in grado di gestire bene l'installazione LAMP, che è praticamente qualsiasi macchina * nix che sia abbastanza moderna.

Ho impostato una configurazione di integrazione continua per .NET su una vecchia workstation Pentium4 che avevamo in giro e gestita bene.

Una cosa da tenere a mente è lo spazio di archiviazione se si archivia il codice nella build.

Altri suggerimenti

Lo storage è diventato il problema per noi quando stavamo usando Maven , Continuum e Clearcase e costruzione oraria. Le viste dell'istantanea venivano lasciate in giro dopo ogni build.

Avevamo un box abbastanza potente (Sun Fire V490) e l'abbiamo usato per il nostro ambiente di integrazione dello sviluppo e Archiva repository. Quindi non abbiamo mai avuto problemi con prestazioni e memoria. In effetti l'unica volta in cui abbiamo avuto un problema con la memoria PermGen è stata la costruzione della destinazione del sito Maven e questo significava semplicemente usare -XX: MaxPermSize = 128m.

Dalla mia esperienza, questa non deve essere una macchina potente. Qualsiasi macchina che useresti per lo sviluppo sarebbe più che soddisfacente. Ovviamente, più veloce è la macchina, più veloce è la risposta se si eseguono test di unità su commit del codice. Il nostro server CI esegue XP SP2, processore 3G, 3G di RAM ed è decisamente sopraffatto per le nostre esigenze in questo momento. Detto questo, è bello ricevere un'e-mail non più di 6 minuti dopo il commit che ti consente di sapere se la build è pulita e tutti i test hanno superato. Per fare build notturne, le specifiche possono probabilmente diminuire di più, poiché probabilmente hai più tempo per farlo. Lo spazio sul disco rigido (300G è ragionevolmente raggiungibile in questi giorni) è utile per archiviare i report e le build alla regressione, ma se si dispone di un NAS è possibile rimuovere gli artefatti dopo che sono stati creati.

Praticamente qualsiasi nuova macchina che è possibile acquistare oggi può gestire il compito di integrazione continua su un albero dei sorgenti non troppo grande. Alcune cose da cercare:

  • 2-4 GB di RAM, più se si desidera eseguire molti test in parallelo o si desidera eseguire macchine virtuali per simulare i client.
  • Un processore multi-core (o più processori) per aumentare le possibilità di rilevare bug di threading.
  • " Server " le macchine di classe tendono a gestire il funzionamento 24/7 meglio di "desktop" macchine di classe, ma non esiste una linea chiara tra i due.
  • I dischi ridondanti RAID1 o RAID1 + 0 sono indispensabili. Anche se disponi di backup (e dovresti comunque averli), è difficile ricostruire un server e un disco rigido da $ 100 in più vale la pena in termini di assicurazione.

RAM: abbastanza per eseguire il tuo strumento CI ( phpUnderControl ?) e qualunque software di supporto tu vuoi per la tua build e test.

Archiviazione: decidi quante build precedenti vuoi conservare sulla macchina. Nella mia esperienza non è utile tenerne molti, esp. se hai un piccolo team senza molti processi formali per tornare alle build precedenti.

CPU: senza problemi. Qualsiasi macchina che puoi acquistare funzionerà.

Quindi tra i due tendo a favorire la RAM rispetto allo spazio di archiviazione.

A meno che l'app non sia enorme, avrei solo una scatola dual core con circa 4 concerti di ram e probabilmente 2 dischi SATA ragionevolmente veloci impostati in RAID 0. 500 concerti forse?

Se vuoi essere davvero al sicuro con esso, prendi due unità gig da 70 anni per RAID 0 per la partizione del sistema operativo e quindi 3 unità da 140 140+ in RAID 5 per i dati.

Le prestazioni della macchina non contano molto, ma prenditi cura della disponibilità perché una volta che inizi a usarlo e un giorno il fumo magico fuoriesce, devi sostituirlo presto per continuare a lavorare. Definire una politica di backup ragionevole e assicurarsi di sapere come impostare un nuovo sistema identico quando necessario. Ad esempio, potresti averlo eseguito da una piccola partizione che puoi visualizzare in un altro computer, quindi la parte principale dei dati può essere spostata fisicamente se risiede su RAID1 e almeno un'unità funziona (sebbene abbia un backup disponibile altrove anche sulla rete).

Penso che una cosa a cui molte persone stanno arrivando è che la macchina non è così importante come il software CI. L'unica volta che la macchina è importante è se hai bisogno di architetture diverse. Altrimenti, procurati una macchina che corrisponda al tuo ambiente di destinazione. Se stai creando un'app server, potrebbe essere saggio ottenere un processore a 64 bit poiché l'app probabilmente sarà in esecuzione su un server a 64 bit.

Mi interesserebbe di più quale strumento sto usando per CI. Hai bisogno di qualcosa che funzioni velocemente e, come hanno sottolineato le persone qui, non dovrebbe aggrapparsi alle vecchie build a meno che tu non abbia bisogno che siano disponibili. In tal caso, cercherei qualcosa che consenta di caricare build e risultati su un server separato.

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