A Businessperson's Introduction to Servers

This article is for the businesspeople. You've got a great startup idea but you don't know much about web server technology. You want to build your business, and will be looking for a contractor or programmer friend to build out your prototype or the whole thing. This article will guide you to what's out there as far as server environments.

In this article I'll use the word implementer to describe whomever will be doing the IT/programming work for your startup: your cousin, your friend from work, the contractor you'll line up.

What is a server?

A server is a computer built for serving web pages, email, data, video, etc to visitors and other servers. It typically doesn't have some of the things that your home computer has: fast graphics card or audio card. Many servers don't look like your computer – they use different cases that can be housed compactly in a server rack (see photo above).

A typical setup is one or more servers to handle web page requests for people visiting your site (these servers are called web servers), and a number of other servers to store data about your services and users (database servers). Users don't connect to your database servers. Visitors connect to the web servers with their browsers and the web servers request data from the database servers. For small setups, the web server and database server can be the same box.

Server environments

Servers have an operating system, like your home computer. Servers run one of the following operating systems:

Windows Server

Linux

OS X Server

Unix

Solaris

FreeBSD

there are so many I can't list them all here

Which one you runs depends on a lot of factors. If you already have an implementer lined up, your implementer may already have their recommendation.

The next thing to consider is what software will run. For a web server, you'll need web server software, and a way for the server to run web programs that your programmers write. Here are two popular configurations (or stacks):

Installing server software for any of the programming languages: Perl, PHP, Python, or Ruby is free and depends on your implementer's skills.

MySQL and PostgreSQL are robust enough for any startup and will scale as your business grows.

Why not Windows or OS X Server or non-Linux?

Because I'm cheap. When I started teaching myself programming, I didn't have the money to buy the development tools or server software to run it.

In order to run a Windows setup, you'll have to buy the server software, database software, and (if your implementer doesn't have it) a copy of Visual Studio.

I'm not a Windows hater. In fact I'm writing this using Windows Live Writer on a computer running Windows 7. I've never had a Mac, but if you want to buy me a MacBook Pro, I'll use it without hesitation.