Question

Je prévois de proposer à ma (très petite) société d’acheter un ordinateur sur lequel exécuter une intégration continue. S'ils répondent par l'affirmative, la tâche d'acheter la machine va probablement m'incomber, alors ma question est la suivante:

Qu'est-ce que je recherche dans un ordinateur qui sera utilisé pour l'intégration continue d'une très petite équipe php (3 personnes)?

Qu'est-ce que "& trucs "" (mémoire, processeur, etc.) sont importants, et qu'est-ce qui ne l'est pas?

Était-ce utile?

La solution

Vous n’allez pas vraiment avoir besoin d’une machine aussi puissante. Si vous exécutez des tests ou d’autres mesures, la capacité de traitement est probablement votre principale préoccupation, mais vous pouvez réellement l’exécuter sur un ancien pentium 1 et cela fonctionnerait probablement.

Vos contraintes vont être votre environnement d'exploitation. Si vous utilisez LAMP, vous voulez utiliser une machine capable de gérer correctement la configuration de LAMP, qui est à peu près toute machine * nix assez moderne.

J'ai mis en place une configuration d'intégration continue pour .NET sur un ancien poste de travail Pentium4 que nous avions en vue et qui s'est très bien déroulée.

Une chose à garder à l'esprit est l'espace de stockage si vous archivez votre code dans la construction.

Autres conseils

Le stockage est devenu le problème pour nous lorsque nous utilisions Maven , Continuum et Clearcase et en construisant toutes les heures. Les vues d'instantané étaient laissées après chaque construction.

Nous avions une boîte assez puissante (Sun Fire V490) et nous l'utilisions pour notre environnement d'intégration de développement et Archiva . dépôt. Nous n’avons donc jamais vraiment eu de problèmes de performances et de mémoire. En fait, la seule fois où nous avons eu un problème avec la mémoire PermGen, c’était la construction de la cible du site Maven, ce qui signifiait simplement utiliser -XX: MaxPermSize = 128 m.

D'après mon expérience, il n'est pas nécessaire que ce soit une machine puissante. Toute machine que vous utiliseriez pour le développement serait plus que satisfaisante. Évidemment, plus la machine est rapide, plus la réponse est rapide si vous exécutez des tests unitaires sur des validations de code. Notre serveur CI exécute XP SP2, un processeur 3G et 3 Go de RAM, ce qui est largement dépassé par nos besoins actuels. Cela dit, il est agréable de recevoir un courrier électronique pas plus de 6 minutes après votre validation, qui vous permet de savoir si la construction est propre et si tous les tests sont réussis. Pour les constructions nocturnes, les spécifications peuvent probablement baisser davantage, car vous avez probablement plus de temps pour les effectuer. L’espace disponible sur le disque dur (300 G est raisonnablement possible ces jours-ci) est pratique pour stocker les rapports et les constructions de régression, mais si vous possédez un NAS, vous pouvez probablement supprimer les artefacts après leur construction.

Pratiquement toutes les nouvelles machines que vous pouvez acheter aujourd'hui peuvent gérer l'intégration continue sur un arbre source pas trop volumineux. Quelques éléments à rechercher:

  • 2 à 4 Go de RAM, davantage si vous souhaitez exécuter plusieurs tests en parallèle ou si vous souhaitez exécuter des machines virtuelles pour simuler des clients.
  • Un processeur multicœur (ou plusieurs processeurs) pour augmenter les chances d'attraper des bugs de threading.
  • " Serveur " Les machines de classe ont tendance à fonctionner 24 heures sur 24 et 7 jours sur 7 mieux que "Bureau". machines de classe, mais il n'y a pas de ligne claire entre les deux.
  • Les disques redondants RAID1 ou RAID1 + 0 sont indispensables. Même si vous avez des sauvegardes (et vous devriez les avoir de toute façon), reconstruire un serveur est une tâche ardue et un disque dur supplémentaire de 100 USD vaut plus que l'argent comme assurance.

RAM: suffit pour exécuter votre outil de CI ( phpUnderControl ?) et tout logiciel de support voulez pour votre construction et vos tests.

Stockage: déterminez le nombre d'anciennes versions que vous souhaitez conserver sur la machine. D'après mon expérience, il n'est pas utile d'en garder beaucoup, en particulier. si vous avez une petite équipe sans beaucoup de processus formel pour revenir aux versions plus anciennes.

CPU: pas de problème. Toute machine que vous pouvez acheter fonctionnera.

Donc, entre les deux, j'ai tendance à privilégier la RAM par rapport à l'espace de stockage.

À moins que l'application soit gigantesque, j'aurais juste une boîte double cœur avec environ 4 Go de RAM et probablement 2 disques SATA raisonnablement rapides placés en RAID 0. 500 Go peut-être?

Si vous voulez être vraiment en sécurité avec elle, procurez-vous deux unités de stockage 70 sur 7 pour RAID 0 pour la partition de système d'exploitation, puis 3 unités de plus de 140 en RAID 5 pour les données.

Les performances de la machine importent à peine, mais prenez bien soin de la disponibilité, car une fois que vous commencez à l’utiliser et qu’un jour la fumée magique s’échappe, vous devez la remplacer rapidement pour continuer à fonctionner. Définissez une politique de sauvegarde appropriée et assurez-vous que vous savez configurer un nouveau système identique lorsque cela est nécessaire. Par exemple, vous pouvez le faire fonctionner à partir d’une petite partition que vous pouvez créer sur une autre machine, puis la partie principale des données peut être physiquement déplacée si elle réside sur RAID1 et si au moins un lecteur fonctionne (bien qu’une sauvegarde soit disponible ailleurs). sur le réseau également).

Je pense que beaucoup de gens ici s’entendent pour dire que la machine n’est pas aussi importante que le logiciel CI. Le seul moment où la machine est importante est si vous avez besoin d'architectures différentes. Sinon, procurez-vous une machine qui correspond à votre environnement cible. Si vous construisez une application serveur, il peut être judicieux d’avoir un processeur 64 bits, car votre application fonctionnera probablement sur un serveur 64 bits.

Je me soucierais davantage de l'outil que j'utilise pour CI. Vous avez besoin de quelque chose qui va fonctionner vite, et comme les gens ici l'ont souligné, il ne faut pas conserver les anciennes versions sauf si vous avez besoin qu'elles soient disponibles. Si tel est le cas, je rechercherais quelque chose qui permette de télécharger les versions et les résultats sur un serveur séparé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top