If you're a programmer writing web software, you don't need this article. Move along, please.
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.
Servers have an operating system, like your home computer. Servers run one of the following operating systems:
- Windows Server
- OS X Server
- 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):
|OS||Web Server||Prog. Languages||Databases|
|Windows Server||IIS||ASP.Net, C#||SQL Server|
|Linux||Apache||Perl, PHP, Python, Ruby||MySQL, PostgreSQL|
|Linux||Tomcat||Java, Coldfusion||MySQL, PostgreSQL, Oracle|
For OS X Server, Unix, Solaris, and FreeBSD, you can substitute for Linux in the table above.
Which of the many configurations you decide to use will depend on your implementer.
If you have no implementer and are trying to figure out the best way to go, I have to throw in my recommendation.
Because the focus of Startup Next Door is to help you start your business as inexpensively as possible and keep costs down, I recommend the second configuration above (Linux and Apache).
The main reason for this choice? It's all free. Your implementer can download everything they need to configure your server and start work without touching the company credit card:
- Linux has many flavors to choose from, but they are all free.
- Apache runs 54% of all web servers (as of Feb 2010)
- 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.
Software prices for common server software:
|Windows Server 2008 R2 Standard||$1,029|
|Windows Server 2008 R2 Enterprise||$3,999|
|Mac OS X Server||$499|
|Microsoft SQL Server (more on pricing)||$15/mo ? – $24,999|
|Oracle||$$$ holy cats you figure it out|
Where do I get a server?
I'll cover that in the next post. It's cheaper than you think.
To the Nerd Crowd: When it comes to a non-Linux stack, I'm in the dark for the most part. Please comment below and tell me where I've made a fool of myself.
Update April 1, 2010: Thanks to Wade in the comments below, I added a post on Microsoft's BizSpark program.
Next post: renting a cheap, fast server