System Design



The Right Tool for the Right Job

The most important decision in system design is what hardware and software will best suite your needs. Influences are commonly price, performance and experience with software and hardware available.

The Right Hardware

The right hardware encompasses everything from networking equipment like switches and routers to processors, hard drives and even keyboards.

The first decision should be one of scale. For example, in looking for network switch equipment, what speeds (Fast Ethernet, Gigabit Ethernet) and how many ports (12, 24, 48, ...) will fit your needs. The same goes for things like disk space. How much space to you need? How much fault tolerance do you want? Finally what services are you going to provide.

Next you need to decide on makes and models of hardware. For example, DEC and HP has traditionally done better floating point calculations then other processors like Intel and SPARC. This may be important if you are looking at doing lots of scientific applications. Hard drive manufacturers constantly fall in and out of favor for best price/performance. Currently, IBM and Quantum hold the titles for "best hard drives", but just a couple of years ago it was Seagate. It will probably change again in a year or so.

The Right Operating System

The choice of the right operating system is at least as important as the right hardware, and is actually rather intertwined with that decision. Some operating systems work better with certain hardware and provide better services than others.

There is a drastic difference between an OS for a client machine and an OS on a server machine. For client machines, you're choice of an OS is often dependent on the users of those clients and the services and applications they need to use. For servers however, your choice should be one of stability and performance. For example, if you need to provide NFS/NIS services, Solaris may be a good choice for you. If price is a concern, a BSD or Linux derivative may be a good solution.

The Right Applications

Applications can depend as much on OS as an OS depends on the hardware chosen. Most applications only support a small number of OS/architecture platforms. Most scientific software can run on a variety of UNIX-like operating systems, while most desktop publishing and word processing software requires a Microsoft solution.

Monolithic Approach

This can also be thought of as the classic Big Iron computing system. There are a small number -- like two -- of very powerful and very expensive computers, each one providing several services. One may do all of your database applications, provide your network storage, and handle your backups, another may provide www, email, ftp, DNS and NIS.

This is most commonly used by installations that don't provide many different services, like a Network Operations Center (NOC), or don't need much scalability, like a small Internet Service Provider (ISP).

Advantages

Disadvantages

Micro Approach

The micro approach is more like the micro kernel approach to operating systems, except that this approach actually works. The idea is that instead of a small number of very powerful and expensive machines, you have large number of relatively cheap computers each providing one service. One computer provides email service, while another provides www, and still another your database applications.

Advantages

Disadvantages

Disk Partitions

The hardware on a computer that you have the most control over is the hard drive. You can decide how partitions are layed out, how much space is allocated to each, and what files you want where.

Years ago, when hard drive space was scarce and expensive, it was common to have as many a 6 partitions on a single hard drive. This was because hard drives were small, and it was very easy to run out of space. Making directories such as /var and /tmp be their own partitions allowed some directories to fill up and not crash the entire machine.

Today, with your average hard drive on the order of 20 Gigs, this is not really a concern. However it has turned out that multiple partitions can still be useful, especially when it comes to things like security and performance. Making partitions read-only means no fsck or disk repair will be needed for those partition upon reboot, and it makes it that much more difficult for hackers to write on those partitions.


Today's Date:
Last Modified:
K. Scott Rowe