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.)
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.
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.
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.
What you try to do is illegal ;)
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.
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:
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.