The build lab should include some high-end hardware for building the applications. Because the entire team depends on the results of a build, the high-end computers ensure that the build is completed as quickly as possible. Furthermore, you can use high-speed network equipment to push bits around from source control to build machines to release servers.
At a minimum, the build lab should have four machines:
- Server that contains the Source Code Control program— This is your product. Do you really want this server residing someplace where you have little control over this box?
- Debug build machine for the mainline builds— If you don’t separate your debug and release machines, you will accidentally ship debug binaries, which is not a good thing.
- Release build machine for the mainline builds— This is a “golden goose” that turns out the “gold eggs” of your company or group. Treasure this machine like a princess, and guard it like all the king’s fortunes.
- Internal release share server— This is one more piece of hardware that stores the “bread and butter” of the group or company. Don’t give up control of this hardware to anyone unless your IT department reports through your development group.
Each machine in the preceding list should meet the following requirements:
- Number of processors— This depends on the build tool you use. One is usually sufficient, because few build tools really take advantage of multiple processors.
- Processor speed— The lab budget dictates this, but the faster the processor, the better it is.
- Amount of installed RAM— Max out the machine. RAM is relatively cheap these days, especially when you consider the performance increase you get. Increasing the RAM is usually the first upgrade done when trying to improve the performance of any computer.
- Number of hard drives— A minimum of two drives (or partitions) is preferred:
- Drive 1 (C:) is for the operating system and installed applications.
- Drive 2 (D:) is for building binaries, release shares, or the source database; the minimum space required is roughly ten times the space needed to build your application.
- The split partitions are good because if you ever need to format or blow away a drive due to corruption, only part of the project will be affected. The recovery is much faster and easier.
- Hard drive type— This is most likely SCSI, but it could be IDE.
- Number of power supplies— If you purchase server class hardware (pizza boxes) that belong in racks, you need to consider how many power supplies to order.
- Motherboard BIOS version— This does make a difference. Make sure you note what is being used and standardize on it.