In part 1 of our Server Primer, we attacked prejudices against servers, talked about the qualities of professional hardware, and discussed all sorts of server hardware. Now we will talk about server features, as well as vendors and service.
There is a broad range of systems that are all called servers, although their hardware characteristics are very different. On the low end, there are PCs as basic as the one you might be using. Please don’t take "basic" as a dismissal of your hardware; rather, I refer to missing server features. These systems do not utilize professional hardware, yet they run services and server-type software at thousands of homes or in small businesses.
A good example is the old PC many people turn into a designated server as they buy a new, faster PC, so they can still make use of their spare computer. These disused machines can run Windows, but Linux has often been the better choice. Such systems make for excellent file servers, print servers, Internet servers/gateways/routers, development servers and media streaming servers. This typically only works, however, as long as there is only little simultaneous access, and only if their operators can live with potential hardware failures: there is no redundancy and hardware may be several years old. Although this server approach has to be called amateurish, we’re still talking about servers - they are servers by definition.
While home and small business users may be able to live with these handicaps (please spend some time and backup your data regularly), server administrators in the business-critical space certainly cannot. The high end of the server scope consists of complex systems that are based on far more complex hardware, such as redundant power supplies, a redundant memory setup, two or four processors with two or four processing cores each, redundant hard drive arrays, redundant interfaces and maximum component quality. These features are all intended for the single purpose of getting system downtimes as close to zero as possible.
You also need to think of a proper environment, which includes air conditioning, power supply and maintenance, because even the best hardware will fail if its environment does. If you think of a database server that takes care of your money wire transfer, it’s really obvious that such a solution must never fail. I’m intentionally referring to a solution rather than a system, because even the servers are typically laid out redundantly, meaning that there are multiple systems to back each other up. Sometimes there can be redundant data center locations as well; again, think of banks.
The Ideal Server Environment
Most people wouldn’t want to have children unless they’re personally and economically prepared, and let me say it should be very much the same with servers. In some ways, an exciting business can be similar to having children, which means that you want it to grow and develop the right way. There is no need to be a perfectionist, but establishing a server environment starts with a detailed and reasonable plan, very much like you design a room for the new baby. Creating the environment typically is the first and most important step, so make sure you spend enough time planning the application requirements and hardware resources, as well as the parameters of your server environment.
Internet servers typically are hosted by a service provider, a so-called ISP. They already have large server farms and should be capable of accommodating your server(s) at reasonable cost. Some people consider it important to select a location that allows physical access to the system, while others don’t. Pay attention to what you will be paying for: most providers offer pretty comprehensive packages that include power, air conditioning, one Internet access route with one or multiple IP addresses, and a specified maximum bandwidth. Typically you will face installation fees and traffic fees per gigabyte transferred, and you should also check minimum bandwidth guarantees if your business depends on high availability to Internet users.
If you want to host servers yourself you should spend sufficient time to check hardware specifications, and to make sure that your environment will be compliant. There are several factors that can be important:
- Power: Is there enough power for all machines? What about surge protection and an uninterruptible power supply (UPS), or an emergency power generator?
- Server Location: Protection against flooding, intrusion/security services, earthquakes. Is there an elevator?
- Cooling: Air conditioning and ventilation
- Connectivity: Existing local networking, upgrade options, Internet access options and backbones