I was just thinking about how the platform choice effects costs in a SaaS type business.

If you were to choose between Linux and Windows, cost really seems to add up.

Please tell me if I am looking at things correctly.

Licenses wise, if you go with Windows, you will end up paying:

  • USD$1K for a Windows 2008 Server license
  • USD$10K for an SQL Server standard license.

Now for argument's sake let's say a single server can handle 1,000 users.

That would mean, you have a $11 cost per user for a year. Or you could break it out into maybe 2-3 years until you have to upgrade. So $3-4 /month cost per user.

On the Linux side, if you go with Java/PHP and MySQL, you have $0 license cost overhead.

It seems like this is a very simplistic way of looking at things, am I missing anything?

(Ignoring the productivity side of things, because that is developer specific.)

  • 3
    UNIX and Linux system administrators typically cost more but are able to run more servers per admin. – Warner Mar 9 '10 at 16:22
  • 1
    Actually it's usually the opposite Unix admins cost more and run less servers per admin. – Jim B Mar 9 '10 at 17:18
  • 4
    Do either of you have data to back those claims up? – ptman Mar 9 '10 at 18:21
  • @Jim B are you drunk on Jim B? Run less servers per admin? @Warner had it right. – PP. Mar 23 '11 at 13:01

(ignoring the productivity side of things, b/c that is developer specific).

First off, you shouldn't do that. Experience shows that having successfully built a alike product on the platform before is the number one predictor of success. Pick your team first, on their merits. Unless your team is suggesting a crazy outlandish platform, then go with whatever platform they're familiar with and recommending.

Now for argument's sake let's say a single server can handle 1K users.

I think that's your central mistake. How many users a server can handle will of course totally and completely depend on the application. But for most webapps >98% of the users are not logged in at any given time. A basic web application server can often handle 200 - 800 request pr second. Do the math, and you'll see that many applications can have several tens of thousands of users per server.

To give you an example you're familiar with, the Stack Overflow family of site (of which this site is one) handles more than 6 million unique visitors each month, and does many more pageviews than that. And here is the full server farm for it.

Commercial open-source costs money too. Take a proper look at MySQL, Ubuntu, Red Hat Linux, JBoss and all the others -- you will typically want to have an expert on staff at all times, or purchase a support subscription from the backing company.

Last but not least, in the end people costs tend to completely dominate for <200 server installations. If you build out your own infrastructure -- as opposed to using cloud computing or a full-service provider -- the salaries and hours spent on sysadmins will generally exceed your software costs. For Google with their 250,000+ servers it's a completely different matter, but for smaller installations this generally holds true.

One major caveat: Some types of sites, such as social networks and video transcoding sites, have very different hardware needs than what I describe above. Do a proper analysis of your specific application.

  • yeah social network sites are another story, I would guess that facebook pays much less for its servers than say myspace. – Blankman Mar 9 '10 at 22:14
  • @Blankman: That is probably true on a strict per-server basis. But I haven't seen Myspace complain about running on Windows, and I'm pretty sure they don't pay list prices. Here is a video of some of Myspace's architecture; they seem happy enough with it: highscalability.com/myspace-architecture – Jesper M Mar 9 '10 at 22:35

This isn't really a system administrator question. I think there are a couple of business issues with the premise.

First I don't know of a SaaS business (including the one I currently work for) that wants to run an unsupported copy of Linux- especially when customers ask what platform is running their application, so you would need a licensed copy of Linux.

Second the licensing model for SaaS under a Microsoft stack is per user or per CPU monthly - so there are no startup costs and it's roughly (depending on product) $2-$4 per user (eventually you'd pay per CPU and if you get lots of users the cost per user goes down).

Let's say, however, for the sake of argument that Linux is free. The big difference between the Microsoft stack and the Linux stack is the ecosystem of the two platforms. If your SaaS application is simple (let's say you wanted to run an online helpdesk) the Linux/PostgreSQL might be fine. If you need more flexibilty/scalabilty on the Linux side you'd upgrade to Oracle ($$) and how to migrate.

On the Microsoft side, you'd have started with the web edition and SQL Server Express Edition (which has no extra cost) and when you want to scale up you'd just move up- there's no "migration" required becasue you're already on SQL Server. Let's say you want to upgrade capabilities to compete with another online helpdesk vendor- so you want to add reporting, on the Linux side you might choose Pentaho, on the Microsoft side you've got reporting services already available.

What to integrate with Office? Which stack do you think would be easier to do. and to be clear I'm not saying that the Linux stack makes anything impossible to accomplish, but what Microsoft brings to the table is the giant monolithic platform that makes adaptibily and expandability simpler to accomplish, IMHO.

  • A client caring about what linux you are running on is news to me. Maybe there is some confusion, when I say a Saas application I'm thinking of a web based app that I make, and charge for usage. – Blankman Mar 10 '10 at 15:29
  • Saas cusomters want code escrow and proof of platform support before investing in a service (unless you are already a proven platform eg salesforce.com). The only reason I can think that a company wouldn't want that is if the service is cheap and there isn't any sort of business functionality involved- like maybe a SAAS takeout ordering service. – Jim B Mar 12 '10 at 15:25

What you try to do is illegal ;)

USD$1K for a Windows 2008 Server license

USD$1K for a Windows 2008 Server license

Those don't allow third-party hosting.

Sign up with MS under SPLA - and get their SPLA price list. MONTHLY rent, all upgrades included. You can get away with "unauthenticated" Windows (your customers don't have Windows accounts, only the software does).

The USD 1000 for Windows turns into around 15 USD per month per processor for the web server. Datacenter Server, full virtualization, is about SD 75 per processor per month. Including maintenance and updates. SQL Server is similar - depending which one you need.

Pure backup systems (cold standby) don't have to be paid.

No update costs ever - MS may adjust the monthly prices once per year, but basically when a new version comes, you rent the new version from a specific month on. My SPLA, for example, just upgraded from SQL Server 2008 to SQL Server 2008 R2, same price.

The whole cost disappears a LOT more into the "not relevant" part.

  • @TomTom: I'm not sure, but I thought that SPLA is required for those who rent out Microsofts software in a largely un-modified form, for example a "hosted Exchange" type of product, but both SPLA and buy-to-own licenses are OK for services that are self-developed but merely using Microsoft tech (for example a custom SaaS product that happens to use SQL Server as DB). Did I get that wrong? – Jesper M Mar 9 '10 at 21:12
  • SPLA for new customers no longer uses authenticated/unauthenticated. It's now on an outsource/insource model. – Jim B Mar 9 '10 at 21:55
  • @jesper- yes you have it wrong you MUST use an SPA license. There is no buy to own license for any sort of hosted service, the good news is it's far cheaper to get an SPLA license than a regular "in house" license (see my answer for a little more detail) – Jim B Mar 9 '10 at 21:58
  • @ago - that is true until they catch you. Read the specific terms of your license agreement. You MUST get the (cheaper) SPLA licenses. Now, if you already bought licenses - fire the guy who purchased licenses without reading them first. In your case you need unauthenticated licenses. – TomTom Mar 10 '10 at 6:18

this is more of a ICT business question than sysadmin related - but my thinking is usually that it's a factor of the platform you choose to develop on top of, and often in my experience that depends on the availability of resources in your area and the associated cost.

While it's a narrow way of looking at things (and I am pretty pro-open source), if competent .NET developers are available at a lower average cost and higher average availability (input from recruitment people should give an indication) then the long term sustainability of the business is better on a windows based platform, although the initial costs are higher. (having said that, this is pretty transient as flavor of the month for developers changes over time)

If you are in an area where Java/php and Linux SA skills are readily available and cost comparable to the set above, then I think the platform has performance benefits and the obvious scale and cost benefits.

In short: it's about being as technology agnostic as possible and choosing the best platform for the job based on not only the technical requirement by skills availability. The initial costs may be higher for one than the other, but in my experience they level out after a year or two, especially as the build costs should be factored into your pricing/costing model.


If you are deploying a scalable solution then things to consider from an operational point of view:

  • ability to script common operations to quickly roll out changes
  • ability to source control configurations and code for tracking changes (assigning responsibility to individuals) and provide restoration points should a problem arise
  • employability of others at short notice to replace/assist existing staff (high quality documentation makes all the difference here, and I recommend using a wiki)

I am predominantly an open-source advocate but have undertaken a contract in a Windows/SQL Server environment. My experience with SQL Server has been largely that of frustration - the GUI is pleasant but configuration is made up of painstaking right-clicks and clickity-clicks everywhere; the Windows operating system is the same. I have wasted whole days chasing down esoteric permissions issues in both SQL Server and Microsoft Windows.

Ultimately you have to choose what benefits you the most. Anybody can drive a GUI and if you only have access to standard level operators then a GUI environment may be the best one for you. If you want to take advantage of talented administrators, however, a GUI-only environment will leave them incredibly frustrated and, ultimately, looking forward to moving on.

To the Microsoft worshippers: read BOFH. Wake up.

  • Oh, side note from today, I discovered that BCP actually discards rows when it says "truncating string" - frequently Microsoft error messages have little bearing on the actual problem/behaviour that triggered the message. Did you know that Microsoft IIS gives a 404 error when in fact a file exists but it just doesn't know how to handle the file (which would normally produce a 5xx error in any other server)? Did you know that Microsoft VBScript will simply not execute any part of a FOR loop if any statement inside uses the wrong type? Microsoft products are deceptive for developers. – PP. Mar 9 '10 at 17:13
  • True, things like Puppet can roll out changes on multiple servers and makes managing things much easier (so I have read!) – Blankman Mar 9 '10 at 17:27
  • 3
    @PP: Thanks for contributing a answer, and no disrespect intended, but my take on your story is mostly that you know Unix well but you're less familiar with Windows. Windows today is not a "GUI-only environment" by a long shot. And Windows comes with many free-of-charge tools to help create structured, enterprise-class, highly available deployments. A few examples are Active Directory, Group Policies, MSDeploy for deploying webapps, and Powershell for command line scripting. – Jesper M Mar 9 '10 at 20:42
  • 1
    Apart from the general "O.S. wars" feeling of your answer, I'd like to point out that the two statements "anybody can drive a GUI" and "configuration is made up of painstaking right-clicks and clickity-clicks everywhere" are just plainly WRONG. The Windows platform today is nothing similar to what it was in Windows NT time: you need to actually know what you're doing in order to manage it, and there are lots and lots of centralized management technologies and automation/scripting solutions. – Massimo Mar 5 '11 at 19:00
  • @Jesper Mortensen, Massimo. Just because you worship Microsoft doesn't make you right. I would bet London to a brick you don't understand the first thing about OS fundamentals. I would bet neither of you have written task switching code in assembler. I would also bet that you think you're pretty smart using "Microsoft Powershell" while not getting super basic software engineering concepts like "variable scope" and "coupling". Still. Whatever you think, "experts". At least someone thinks you're smart, i.e. you. – PP. Mar 23 '11 at 12:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.