Buying a machine for continuous integration - key factors?

I plan to offer my (very small) company that we buy a computer for continuous integration. If they say yes, the task of actually buying the car will probably fall on me, so my question is:

What do I need to look for on a computer that will be used for continuous integration for a very small (3 people) php team?

What "things" (memory, processor, etc.) are important and what is not?

+7
language-agnostic continuous-integration automated-tests
source share
8 answers

You really don't need a powerful car. If you use tests or other indicators, the processing ability is probably your main concern, but in fact you can run it on the old pentium 1, and it will probably work.

Your limitations will be your operating environment. If you use LAMP, you want to use a machine that can work well with LAMP settings, which is pretty much any modern * nix machine.

I installed the continuous integration installation for .NET on the old Pentium4 workstation that we put in and it worked just fine.

One thing to keep in mind is storage space if you are archiving your code in an assembly.

+6
source share

Storage became a problem for us when we used Maven , Continuum and Clearcase and build hourly. Snapshot views were left after each build.

We had a fairly powerful box (Sun Fire V490) and was used for our development integration environment and Archiva repository. Therefore, we never had problems with performance and memory. In fact, the only time we had a PermGen memory problem, it created the target of the Maven site, and that meant using -XX: MaxPermSize = 128 m.

+3
source share

In my experience, this should not be an electric machine. Any machine that you would use for development would be more than satisfactory. Obviously, the faster the machine, the faster the answer if you are doing unit tests for code. Our CI server is running XP SP2, a 3G processor, 3G RAM, and is now suppressed for our needs right now. However, it is nice to receive an email no more than 6 minutes after you commit, which allows you to find out if the assembly is clean and all tests pass. For nightly builds, specifications can probably go even further, since you probably have more time to complete them. Currently, the hard disk space (300G is quite acceptable) is nice to store reports and build for regression, but if you have a NAS, you can possibly push away artifacts after they have been built.

+2
source share

Almost any new machine that you could buy today can handle the task of continuous integration on a not too large source tree. Some things to look for:

  • 2-4 GB of RAM, more if you want to run many tests in parallel or you want to run virtual machines to simulate clients.
  • A multi-core processor (or multiple processors) to increase the chances of catching streaming errors.
  • Server-class machines tend to work 24/7 better than desktop machines, but there is no clear line between them.
  • Redundant RAID1 or RAID1 + 0 drives are required. Even if you have backups (and you should have them anyway), it’s a pain to rebuild the server, and an additional $ 100 hard drive is more than worth the money as insurance.
+2
source share

RAM: enough to run your CI tool ( phpUnderControl ?) And any supporting software that you want for your build and tests.

Storage: determine how many old collections you want to keep on the machine. In my experience, it is not very useful to store a lot, especially. if you have a small team, you will get a lot of formal process for rolling back to old builds.

CPU: no problem. Any car you can buy will work.

So, between these two, I prefer RAM over storage.

+1
source share

If the application is not huge, I would just get a dual-core box with 4 gigabytes of RAM and probably 2 fast enough SATA disks installed in RAID 0. 500 Gigs, maybe?

If you want to be safe with it, get two 70-inch drives for RAID 0 for the OS partition, and then 3,140+ drives for drives in RAID 5 for data.

0
source share

The performance of the machine is unlikely to matter, but it cares about accessibility, because as soon as you start using it and one day magic smoke comes out, you need to replace it soon to continue working. Define a reasonable backup policy and make sure you know how to set up a new, identical system when necessary. For example, you can start it from a small partition that you can create on another machine, and then the main part of the data can be physically moved if it is on RAID1 and at least one drive is working (although there is a backup available in elsewhere on the network).

0
source share

I think that one thing that many people get here is that the machine is not as important as the CI software. The only time a machine is important is if you need different architectures. Otherwise, get a machine that matches your target environment. If you are building a server application, it might be wise to get a 64-bit processor, since your application will probably run on a 64-bit server.

I would like to know more about which tool I use for CI. You need something that will work quickly, and, as people point out, it should not stay on old builds, unless you need them. If so, I would look for something that lets you upload assemblies and results to a separate server.

0
source share

All Articles